[
  {
    "path": ".DEREK.yml",
    "content": "curators:\n - alexellis\n - welteki\n - rgee0\n\nfeatures:\n - dco_check\n - comments\n - pr_description_required\n - release_notes\n\ncustom_messages:\n  - name: k3s\n    value: |\n           --\n           Thank you for your interest in k3sup.\n           \n           This issue appears to be a problem with the upstream k3s project\n           which k3sup installs and automates.\n           \n           Please raise an issue on [Rancher's k3s repository](https://github.com/rancher/k3s/) and\n           link it back to this issue for tracking purposes. If Rancher determines that this is\n           actually an error with k3sup, then please feel free to return and re-open the issue, or\n           to comment again.\n\n  - name: template\n    value: |\n           This project uses Issue and PR templates and requires that all\n           users fill out the template in detail before help can be given.\n\n           To continue please edit your Issue/PR or open a new one, and \n           please provide all the fields requested.\n\n           Thank you for your contribution.\n\n  - name: propose\n    value: |\n           This project follows a contributing guide which states that all\n           changes must be proposed with an Issue before being worked on.\n           \n           Please raise an Issue and update your Pull Request to include\n           the ID or link as part of the description.\n\n           Thank you for your contribution.\n\n  - name: test\n    value: |\n           This project follows a contributing guide which requires that\n           all changes are tested before being merged. You should include\n           worked examples that a maintainer can run to prove that the\n           changes are good.\n\n           Screenshots and command line output are also accepted, but\n           must show the positive, and negative cases, not just that \n           what was added worked as you expected.\n\n           Thank you for your contribution.\n\ncontributing_url: https://github.com/alexellis/arkade/blob/master/CONTRIBUTING.md\n"
  },
  {
    "path": ".github/CODEOWNERS",
    "content": "@alexellis"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "custom: [\"https://slicervm.com\"]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/report-an-issue.md",
    "content": "---\nname: Report an issue\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Expected behaviour**\n\nWhat did you expect to happen?\n\n**Current behaviour**\n\nWhat happened?\n\n**To Reproduce**\n\nInclude full unabridged instructions that anyone can use to reproduce the problem\n\n\n**Screenshots / console output**\n\nAdd a screenshot or console output\n\n**Versions:**\n - OS:\n - K3sup Version:\n\n**Additional context**\n\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/request-a-feature.md",
    "content": "---\nname: Request a feature\nabout: Request a new feature or change in this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**What do you want?**\n\nFocus on the feature, not the technical approach or solution.\n\n**Why do you want this?**\n\nMake a case for why your request should be considered.\n\n**Recommended solution**\n\nIf you are aware of one, share your preferred solution here\n\n**Additional context**\n\nShare any other context you feel is relevant or adds to your case.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "content": "<!--- Provide a general summary of the issue in the Title above -->\n\n## Why do you need this?\n\n<!--- How has this issue affected you? What are you trying to accomplish? -->\n<!--- Providing context helps us come up with a solution that is most useful in the real world -->\n<!--- Is this request for work, a client, your employer or for fun? -->\n\n## Expected Behaviour\n<!--- If you're describing a bug, tell us what should happen -->\n<!--- If you're suggesting a change/improvement, tell us how it should work -->\n\n## Current Behaviour\n<!--- If describing a bug, tell us what happens instead of the expected behavior -->\n<!--- If suggesting a change/improvement, explain the difference from current behavior -->\n\n## Possible Solution\n<!--- Not obligatory, but suggest a fix/reason for the bug, -->\n<!--- or ideas how to implement the addition or change -->\n\n\n## Steps to Reproduce\n<!--- Provide a link to a live example, or an unambiguous set of steps to -->\n<!--- reproduce this bug. Include code to reproduce, if relevant -->\n1.\n2.\n3.\n4.\n\n## Your Environment\n\n* k3sup version:\n\n```\nk3sup version\n```\n\n* What Kubernetes distribution, client and server version are you using?\n\n```\nkubectl version\n```\n\n* What OS or type or VM are you using for your cluster? Where is it hosted? (for `k3sup install/join`):\n\n* Operating System and version (e.g. Linux, Windows, MacOS):\n\n```\nuname -a\n\ncat /etc/os-release\n```\n\n## Do you want to work on this?\n\nSubject to design approval, are you willing to work on a Pull Request for this issue or feature request?\n\n- [ ] Yes\n- [ ] No\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "<!--- Provide a general summary of the issue in the Title above -->\n\n## Why do you need this?\n<!--- Why is this change required? What problem does it solve? -->\n<!--- If it fixes an open issue, please link to the issue here. -->\n- [ ] I have raised an issue to propose this change ([required](https://github.com/openfaas/faas/blob/master/CONTRIBUTING.md))\n\nIf you have no approval from a maintainer, close this PR and raise an issue.\n\n## Description\n<!--- Describe your changes in detail -->\n\n## How Has This Been Tested?\n<!--- Please describe in detail how you tested your changes. -->\n<!--- Include details of your testing environment, and the tests you ran to -->\n<!--- see how your change affects other areas of the code, etc. -->\n\n## Types of changes\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\n- [ ] Bug fix (non-breaking change which fixes an issue)\n- [ ] New feature (non-breaking change which adds functionality)\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\n\n## Checklist:\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\n- [ ] My code follows the code style of this project.\n- [ ] My change requires a change to the documentation.\n- [ ] I have updated the documentation accordingly.\n- [ ] I've read the [CONTRIBUTION](https://github.com/alexellis/arkade/blob/master/CONTRIBUTING.md) guide\n- [ ] I have signed-off my commits with `git commit -s`\n- [ ] I have added tests to cover my changes.\n- [ ] All new and existing tests passed.\n"
  },
  {
    "path": ".github/workflows/build.yaml",
    "content": "name: build\n\non:\n  push:\n    branches:\n    - '*'\n  pull_request:\n    branches:\n    - '*'\n\njobs:\n  build:\n    concurrency: \n      group: ${{ github.ref }}\n      cancel-in-progress: true\n\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 1\n      - name: Install Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: \"1.26.x\"\n      - name: Make all\n        run: make all\n"
  },
  {
    "path": ".github/workflows/publish.yaml",
    "content": "name: publish\n\non:\n  push:\n    tags:\n      - '*'\n\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 1\n      - name: Install Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: \"1.26.x\"\n      - name: Make all\n        run: make all\n      - name: Upload release binaries\n        uses: alexellis/upload-assets@0.4.1\n        env:\n          GITHUB_TOKEN: ${{ github.token }}\n        with:\n          asset_paths: '[\"./bin/k3sup*\"]'\n"
  },
  {
    "path": ".gitignore",
    "content": "k3sup\nbin/**\nkubeconfig\n.DS_Store\n.idea/\nmc\n/install.sh\n/*.json\n*.txt\n/bootstrap.sh\n"
  },
  {
    "path": "EULA.md",
    "content": "End User License Agreement (EULA) for K3sup Pro\n\nNote: K3sup CE is licensed under the MIT license, see LICENSE for details.\n\n1. Licensed Software\n\n1.1 K3sup Pro (the “Licensed Software”) is licensed as commercial software and must not be used without a valid license key issued by OpenFaaS Ltd.\n\n1.2 K3sup Pro may be offered in different editions or variants from time to time. The term “K3sup Pro” in this Agreement refers to any commercially licensed edition or variant of K3sup Pro provided by OpenFaaS Ltd.\n\n1.3 OpenFaaS Ltd (“Supplier”) is a company registered in England & Wales, company number: 11076587, registered address: Peterborough, UK.\n\n2. Your Agreement\n\n2.1 By accessing, executing, or otherwise using the Licensed Software, you (“Customer”) acknowledge that you have read this Agreement, understand it, and agree to be bound by its terms and conditions. If you are not willing to be bound by the terms of this Agreement, do not access or use the Licensed Software.\n\n2.2 If you are using the Licensed Software in your capacity as employee or agent of a company or organization, then any references to “you” in this Agreement shall refer to such entity and not to you in your personal capacity. You warrant that you are authorized to legally bind the company or organization on whose behalf you are accessing the Licensed Software. If you are not so authorized, then neither you nor your company or organization may use the Licensed Software in any manner whatsoever.\n\n2.3 This Agreement, including any supplemental terms, is between you (“Customer”) and OpenFaaS Ltd (“Supplier”).\n\n2.4 Governing law. This Agreement is entered into under the jurisdiction of the Courts of England and Wales and shall be governed by, and construed in accordance with, the laws of England and Wales, exclusive of its choice of law rules.\n\n3. No Free Trial\n\n3.1 No free trial is offered or available for K3sup Pro. Access to and use of the Licensed Software requires a valid, paid license at all times.\n\n3.2 Any evaluation use of K3sup Pro may only occur under a separate, written evaluation agreement executed by Supplier in its sole discretion. In the absence of such a written evaluation agreement, you must not use the Licensed Software for any evaluation or trial purposes.\n\n4. Grant of License; Ownership; Restrictions; Feedback\n\n4.1 License Grant. Subject to the terms and conditions of this Agreement and any applicable order form, invoice, quote, or checkout confirmation (each an “Order Form”), Supplier grants to Customer a limited, non-exclusive, non-transferable, revocable license to install and use the Licensed Software solely for Customer’s internal purposes and only for the term and in accordance with the conditions and limitations set forth herein and in the applicable Order Form.\n\n4.2 Third-Party and Open Source Software. To the extent that there is any third-party software embedded in, bundled with, or otherwise provided to Customer in connection with the Licensed Software (“Third Party Software”), such Third Party Software shall be used solely with the operation of the Licensed Software and not as a standalone application or for any other purpose. Certain Third Party Software may be subject to an open source license (“OSS License”). Customer’s rights with respect to such components are governed by the applicable OSS License; nothing in this Agreement shall restrict, limit, or otherwise affect any rights or obligations Customer may have under such OSS License. This includes, without limitation, the Apache License, Version 2.0 and the MIT License.\n\n4.3 Ownership. As between the parties, Supplier retains all right, title, and interest in and to the Licensed Software and all related materials, including all intellectual property rights therein, whether now existing or later arising.\n\n4.4 Intellectual Property Rights. Copyright for samples, code, logos, trademarks, diagrams, and documentation rests with Supplier. All pre-existing intellectual property remains the property of the originating party; no intellectual property is transferred from Customer to Supplier under this Agreement.\n\n4.5 Restrictions. Except to the extent expressly permitted by applicable law and only to the extent Supplier is not permitted by that applicable law to exclude or limit such rights, Customer shall not (and shall not permit any third party to) distribute, display, sublicense, rent, lease, lend, timeshare, use in a service bureau, modify, translate, reverse engineer, decompile, disassemble, create derivative works based on, or copy the Licensed Software or related documentation. Customer shall not remove, alter, or obscure any proprietary notices or labels on the Licensed Software.\n\n4.6 Feedback. Customer may provide feedback to Supplier about the Licensed Software (including suggestions or enhancement requests). Supplier may develop, modify, and improve the Licensed Software based on Customer’s feedback without obligation to Customer, and Customer irrevocably assigns to Supplier all right, title, and interest in such feedback.\n\n5. Licensing and Use Rights\n\n5.1 Personal Use via GitHub Sponsorship. Personal use is permitted through an active GitHub Sponsorship to either @alexellis or @openfaas on GitHub at a minimum of 25 USD per month. Termination, lapse, or downgrade of Sponsorship below this minimum immediately terminates the license. Personal use counts only for installation to privately owned hardware, or rented cloud hosts, which are in no way connected to or operated for or on the behalf of a business. Personal licenses are for a single named individual, non-transferable, and may not be used to provide services to, or on behalf of, any business, organization, or client.\n\n5.2 Commercial Use. Commercial use requires a paid license per user (seat). A minimum of five (5) seats is required and licenses are paid annually via ACH in USD or SWIFT in GBP. To request a commercial license, email [contact@openfaas.com](mailto:contact@openfaas.com). Contractors, consultants, managed service providers, and any use on infrastructure connected to or operated for or on behalf of a business require a commercial license.\n\n5.3 Priority of Terms. If there is any conflict between this Section 5 and any Order Form, the Order Form shall prevail solely with respect to the quantities, term, and pricing stated therein.\n\n6. Termination and Continuing Obligations; Renewal Responsibility\n\n6.1 Term. This Agreement is effective from the first date you install, access, or use the Licensed Software and continues until terminated as set forth below.\n\n6.2 By Customer. Customer may terminate this Agreement at any time by permanently deleting the Licensed Software, destroying all copies, and ceasing all use.\n\n6.3 By Supplier. Supplier may terminate this Agreement immediately upon written notice if Customer fails to comply with any terms or conditions herein, including use without a valid license (including a lapsed Sponsorship for personal use) or use beyond the scope or term of the license granted.\n\n6.4 Automatic Termination. This Agreement terminates automatically without notice upon expiry of the license term, failure to renew, or termination of the qualifying GitHub Sponsorship for personal use.\n\n6.5 Effect of Termination. Upon termination, Customer must immediately stop using the Licensed Software, delete all copies in its possession or control, and confirm in writing to Supplier that these actions have been completed. Sections 1, 2, 4, 5, 7, 8, and 9 survive termination.\n\n6.6 Renewal Responsibility. It is the sole responsibility of Customer to renew and remit payment for any licenses in a timely manner to maintain uninterrupted access and compliance. Supplier recommends requesting a renewal quote at least thirty (30) days prior to the expiry of the current term. Supplier bears no costs, liabilities, or obligations related to Customer’s failure to renew or remit payment; any interruption due to non-renewal or non-payment does not entitle Customer to any remedies or compensation.\n\n7. Customer Data; Audit\n\n7.1 Account Data. To use the Licensed Software, Customer may need to provide contact and billing information (“Account Data”). Customer must provide complete and accurate Account Data and keep it up to date. By providing Account Data, Customer consents to receive communications from Supplier regarding the Licensed Software and other Supplier products. Customer may opt out of marketing communications by contacting [contact@openfaas.com](mailto:contact@openfaas.com).\n\n7.2 Audit. Supplier may audit Customer’s use of the Licensed Software to assess compliance with this Agreement. Customer agrees to cooperate and provide reasonable assistance and access to relevant records (including, for example, purchase records, deployment records, and license key usage logs). Any audit shall not unreasonably interfere with Customer’s normal business operations.\n\n8. Co-Marketing\n\n8.1 At the request of Supplier, Customer agrees to participate in reasonable marketing activities that promote the benefits of the Licensed Software to other potential customers, which may include providing testimonials, case studies, and references.\n\n8.2 Customer grants Supplier the right to use Customer’s name and logo on Supplier’s websites and in Supplier’s promotional materials.\n\n8.3 Customer agrees that Supplier may disclose Customer as a customer of the Licensed Software.\n\n9. Limitation of Liability; Disclaimer\n\n9.1 Warranty Disclaimer. The Licensed Software and documentation are provided “as is” and “as available” without warranty of any kind, express or implied. Customer uses the Licensed Software at its own risk. Customer assumes all responsibility for selecting the Licensed Software to achieve its intended results and for the installation of, and results obtained from, the Licensed Software.\n\n9.2 No Consequential Damages. IN NO EVENT SHALL SUPPLIER BE LIABLE HEREUNDER FOR SPECIAL, PUNITIVE, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES, INCLUDING, BUT NOT LIMITED TO, LOSS OF PROFITS, LOSS OF REVENUE, LOSS OF USE, OR LOSS OF DATA, EVEN IF ADVISED OF THE POSSIBILITY THEREOF OR, IF REASONABLY FORESEEABLE, INCURRED BY CUSTOMER OR END USERS, OR CLAIMED AGAINST CUSTOMER BY ANY OTHER PARTY (WHETHER ANY SUCH CLAIMS ARISE UNDER THEORY OF CONTRACT, TORT, OR OTHERWISE).\n\n9.3 Liability Cap. To the extent permitted by applicable law, the aggregate liability of Supplier and its licensors, personnel, subcontractors, and suppliers arising out of or related to this Agreement shall not exceed the license fees paid by Customer hereunder in the twelve (12) months immediately preceding the event giving rise to the claim.\n\n10. Contact\n\nIf you have any questions about these terms or the Licensed Software, contact Supplier at [contact@openfaas.com](mailto:contact@openfaas.com).\n"
  },
  {
    "path": "LICENSE",
    "content": "There are two editions of K3sup.\n\nK3sup Pro\n\nCopyright (c) 2025 Alex Ellis, OpenFaaS Ltd\n\nLicense: Proprietary - K3sup Pro EULA.\n\nK3sup CE\n\nMIT License\n\nCopyright (c) 2025 Alex Ellis\n\nExclusions: assets, images and logos.\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": "Makefile",
    "content": "Version := $(shell git describe --tags --dirty)\n# Version := \"dev\"\nGitCommit := $(shell git rev-parse HEAD)\nLDFLAGS := \"-s -w -X github.com/alexellis/k3sup/cmd.Version=$(Version) -X github.com/alexellis/k3sup/cmd.GitCommit=$(GitCommit)\"\nexport GO111MODULE=on\nSOURCE_DIRS = main.go cmd pkg\n\n.PHONY: all\nall: gofmt test dist hash\n\n.PHONY: test\ntest:\n\tCGO_ENABLED=0 go test $(shell go list ./... | grep -v /vendor/|xargs echo) -cover\n\n.PHONY: gofmt\ngofmt:\n\t@test -z $(shell gofmt -l $(SOURCE_DIRS) ./ | grep -v vendor/| tee /dev/stderr) || (echo \"[WARN] Fix formatting issues with 'make gofmt'\" && exit 1)\n\n.PHONY: dist\ndist:\n\tmkdir -p bin/\n\trm -rf bin/k3sup*\n\tCGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags $(LDFLAGS) -o bin/k3sup\n\tGOARM=7 GOARCH=arm CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -o bin/k3sup-armhf\n\tGOARCH=arm64 CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -o bin/k3sup-arm64\n\tCGO_ENABLED=0 GOOS=darwin go build -ldflags $(LDFLAGS) -o bin/k3sup-darwin\n\tGOARCH=arm64 CGO_ENABLED=0 GOOS=darwin go build -ldflags $(LDFLAGS) -o bin/k3sup-darwin-arm64\n\tGOOS=windows CGO_ENABLED=0 go build -ldflags $(LDFLAGS) -o bin/k3sup.exe\n\n.PHONY: hash\nhash:\n\trm -rf bin/*.sha256 && ./hack/hashgen.sh\n"
  },
  {
    "path": "README.md",
    "content": "# k3sup 🚀 (said 'ketchup')\n\n<img src=\"docs/assets/k3sup.png\" width=\"20%\" alt=\"k3sup logo\">\n\nk3sup is a light-weight utility to get from zero to KUBECONFIG with [k3s](https://k3s.io/) on any local or remote VM. All you need is `ssh` access and the `k3sup` binary to get `kubectl` access immediately.\n\nThe tool is written in Go and is cross-compiled for Linux, Windows, MacOS and even on Raspberry Pi.\n\nHow do you say it? Ketchup, as in tomato.\n\n**Introducing K3sup Pro 🎉**\n\nWhilst the CE edition is ideal for experimentation, [`k3sup-pro`](#k3sup-pro) was built to satisfy long standing requests for an IaaC/GitOps experience.\n\n`k3sup-pro` adds a `plan` and `apply` command to automate installations both small and large - running in parallel. The plan file can be customised and retained in Git for maintenance and updates.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![build](https://github.com/alexellis/k3sup/actions/workflows/build.yaml/badge.svg)](https://github.com/alexellis/k3sup/actions/workflows/build.yaml)\n[![Github All Releases](https://img.shields.io/github/downloads/alexellis/k3sup/total.svg)]()\n\n## Contents:\n\n- [k3sup 🚀 (said 'ketchup')](#k3sup--said-ketchup)\n  - [Contents:](#contents)\n  - [What's this for? 💻](#whats-this-for-)\n    - [Use-cases](#use-cases)\n    - [Bootstrapping Kubernetes](#bootstrapping-kubernetes)\n    - [Download `k3sup` CE (tl;dr)](#download-k3sup-ce-tldr)\n  - [Demo of K3sup CE📼](#demo-of-k3sup-ce)\n  - [Usage ✅](#usage-)\n    - [Pre-requisites for k3sup servers and agents](#pre-requisites-for-k3sup-servers-and-agents)\n  - [K3sup Pro](#k3sup-pro)\n    - [Getting `k3sup-pro`](#getting-k3sup-pro)\n    - [Activating K3sup Pro](#activating-k3sup-pro)\n    - [K3sup `plan` / `apply` for automation and large installations](#k3sup-plan--apply-for-automation-and-large-installations)\n    - [Rapid uninstallation / reset with `k3sup-pro uninstall`](#rapid-uninstallation--reset-with-k3sup-pro-uninstall)\n    - [K3sup `pro exec` - run a command everywhere](#k3sup-pro-exec---run-a-command-everywhere)\n    - [K3sup `pro get-config` - work with an existing cluster](#k3sup-pro-get-config---work-with-an-existing-cluster)\n  - [K3sup Community Edition (CE)](#k3sup-community-edition-ce)\n    - [👑 Setup a Kubernetes *server* with `k3sup`](#-setup-a-kubernetes-server-with-k3sup)\n    - [Checking if a cluster is ready](#checking-if-a-cluster-is-ready)\n    - [Merging clusters into your KUBECONFIG](#merging-clusters-into-your-kubeconfig)\n    - [😸 Join some agents to your Kubernetes server](#-join-some-agents-to-your-kubernetes-server)\n    - [Use your hardware authentication / 2FA or SSH Agent](#use-your-hardware-authentication--2fa-or-ssh-agent)\n    - [Create a multi-master (HA) setup with external SQL](#create-a-multi-master-ha-setup-with-external-sql)\n    - [Create a multi-master (HA) setup with embedded etcd](#create-a-multi-master-ha-setup-with-embedded-etcd)\n    - [👨‍💻 Micro-tutorial for Raspberry Pi (2, 3, or 4) 🥧](#-micro-tutorial-for-raspberry-pi-2-3-or-4-)\n  - [Caveats on security](#caveats-on-security)\n  - [Contributing](#contributing)\n    - [Blog posts & tweets](#blog-posts--tweets)\n    - [Contributing via GitHub](#contributing-via-github)\n    - [License](#license)\n  - [📢 What are people saying about `k3sup`?](#-what-are-people-saying-about-k3sup)\n  - [Similar tools & glossary](#similar-tools--glossary)\n  - [Troubleshooting and support](#troubleshooting-and-support)\n    - [Maybe the problem is with K3s?](#maybe-the-problem-is-with-k3s)\n    - [Common issues](#common-issues)\n    - [Getting access to your KUBECONFIG](#getting-access-to-your-kubeconfig)\n    - [Smart cards and 2FA](#smart-cards-and-2fa)\n    - [Misc note on `iptables`](#misc-note-on-iptables)\n\n## What's this for? 💻\n\nThis tool uses `ssh` to install `k3s` to a remote Linux host. You can also use it to join existing Linux hosts into a k3s cluster as `agents`. First, `k3s` is installed using the utility script from Rancher, along with a flag for your host's public IP so that TLS works properly. The `kubeconfig` file on the server is then fetched and updated so that you can connect from your laptop using `kubectl`.\n\nYou may wonder why a tool like this needs to exist when you can do this sort of thing with bash.\n\nk3sup was developed to automate what can be a very manual and confusing process for many developers, who are already short on time. Once you've provisioned a VM with your favourite tooling, `k3sup` means you are only 60 seconds away from running `kubectl get pods` on your own computer. If you are a local computer, you can bypass SSH with `k3sup install --local`\n\n**How does k3sup work?**\n\n```\n                          k3sup install\n +---------------------+                  +-----------------------------+\n |                      |    1. SSH       |                             |\n |   Your Laptop /      +---------------->|   Remote Server (VM/RPi)    |\n |   Workstation        |                 |                             |\n |                      |    2. Install   |   +---------------------+   |\n |  +----------------+  |    k3s -------->|   |  k3s (server/agent) |   |\n |  | kubectl        |  |                 |   +---------------------+   |\n |  +----------------+  |    3. Fetch     |                             |\n |  | kubeconfig     |<-+    kubeconfig   |                             |\n |  +----------------+  |                 +-----------------------------+\n |                      |\n +---------------------+        k3sup join\n                          +-------------------->+-----------+\n                          |                     | Agent 1   |\n                          +-------------------->+-----------+\n                          |                     | Agent 2   |\n                          +-------------------->+-----------+\n                                                | Agent n   |\n                                                +-----------+\n```\n\n * Step 1: k3sup install  → SSH into server, install k3s\n * Step 2: kubeconfig     → Fetched to your laptop automatically\n * Step 3: k3sup join     → Add agents to the cluster via SSH\n * Step 4: kubectl        → Ready to use from your laptop 🚀\n \n> **Tip:** Create clusters on Mac, Linux + WSL2 with K3sup and [SlicerVM](https://slicervm.com)\n\n### Use-cases\n\nK3sup runs from your local machine, without ever having to log into a remote server.\n\n* Bootstrap Kubernetes with k3s onto any VM with `k3sup install` - either manually, during CI or through `cloud-init`\n* Get from zero to `kubectl` with `k3s` on bare-metal, Raspberry Pi (RPi), VMs, AWS EC2, Google Cloud, DigitalOcean, Civo, Linode, Scaleway, and others\n* Build a Highly-Available (HA), multi-master (server) cluster\n* Fetch the KUBECONFIG from an existing cluster with `k3sup-pro get-config`\n* Join nodes into an existing `k3s` cluster with `k3sup join`\n* Build a massive cluster for automation and scale-out testing using `k3sup plan` and a JSON file with IP addresses\n\n### Bootstrapping Kubernetes\n\n![Conceptual architecture](./docs/k3sup-cloud.png)\n*Conceptual architecture, showing `k3sup` running locally against any VM such as AWS EC2 or a VPS such as DigitalOcean.*\n\n### Download `k3sup` CE (tl;dr)\n\n`k3sup` is distributed as a static Go binary. You can use the installer on MacOS and Linux, or visit the [Releases page](https://github.com/alexellis/k3sup/releases) to download the executable for Windows.\n\n```sh\ncurl -sLS https://get.k3sup.dev | sh\nsudo install k3sup /usr/local/bin/\n\nk3sup --help\n```\n\n> A note for Windows users. Windows users can use `k3sup install` and `k3sup join` with a normal \"Windows command prompt\".\n\n## Demo of K3sup CE📼\n\nIn the demo I install Kubernetes (`k3s`) onto two separate machines and get my `kubeconfig` downloaded to my laptop each time in around one minute.\n\n1) Ubuntu 18.04 VM created on DigitalOcean with ssh key copied automatically\n2) Raspberry Pi 4 with my ssh key copied over via `ssh-copy-id`\n\nWatch the demo:\n\n[![asciicast](https://asciinema.org/a/262630.svg)](https://asciinema.org/a/262630)\n\n## Usage ✅\n\nThe `k3sup` tool is a client application which you can run on your own computer. It uses SSH to connect to remote servers and creates a local KUBECONFIG file on your disk. Binaries are provided for MacOS, Windows, and Linux (including ARM).\n\n### Pre-requisites for k3sup servers and agents\n\nSome Linux hosts are configured to allow `sudo` to run without having to repeat your password. For those which are not already configured that way, you'll need to make the following changes if you wish to use `k3sup`:\n\n```bash\n# sudo visudo\n\n# Then add to the bottom of the file\n# replace \"alex\" with your username i.e. \"ubuntu\"\nalex ALL=(ALL) NOPASSWD: ALL\n```\n\nIn most circumstances, cloud images for Ubuntu and other distributions will not require this step.\n\nAs an alternative, if you only need a single server you can log in interactively and run `k3sup install --local` instead of using SSH.\n\n## K3sup Pro\n\nK3sup Pro is available for individuals via a [GitHub Sponsorship of 25+ USD / mo](https://github.com/sponsors/alexellis) and separately for commercial use. Review the [EULA](/EULA.md) before downloading or using the software.\n\n> K3sup Pro is free with your [SlicerVM](https://slicervm.com) subscription. Slicer makes it quick and easy to spin up single or multi-node K3s clusters directly on your own computer, cloud, or homelab environments.\n\nSupport for all K3sup Pro users is provided by the Issue Tracker for the [K3sup CE repository](https://github.com/alexellis/k3sup-pro/).\n\n* `activate` - obtain/refresh a license key. Commercial users just place your key at `~/.k3sup/LICENSE`\n* `plan` - take one or more JSON files and generate a YAML plan for a HA installation of K3s\n* `apply` - run the installation in parallel, optionally pre-downloading the K3s binary and copying it via SSH beforehand\n* `exec` - run a command on all nodes in the cluster\n* `get-config` - get a kubeconfig from an existing installation\n* `uninstall` - uninstall k3s from all nodes in the cluster in parallel\n\nClassic K3sup CE commands are also available within the single binary, for backwards compatibility and for quick testing.\n\n* `install` - install K3s to a single node imperatively\n* `join` - join a single node to an existing K3s server\n\nThe `--predownload` flag for `k3sup-pro apply` is the first step towards a fully airgapped solution, and reduces bandwidth whilst speeding up installation.\n\nWalkthrough of `plan`, `apply`, `get-config` and `exec`:\n\n[![asciicast](https://asciinema.org/a/725554.svg)](https://asciinema.org/a/725554)\n\n### K3sup Pro roadmap\n\nThe initial version of K3sup Pro is largely feature-complete, however there are some additional features planned for commercial users:\n\n* Use K3sup Pro Plan/Apply via bastion hosts\n* Airgapped installation via initial download of packages on a local machine\n\n### Getting `k3sup-pro`\n\nThe `k3sup-pro` binary is packaged in a container image, rather than being downloaded via GitHub Releases.\n\nThe recommended option is to use K3sup CE to obtain K3sup Pro:\n\n```bash\nPRO=1 curl -sLS https://get.k3sup.dev | sudo -E sh\n```\n\nOr, if you already have the latest K3sup CE version, it can replace itself:\n\n```bash\nsudo k3sup get pro\n```\n\nFor the `k3sup get pro` command, you can omit `sudo` by passing a `--path` variable to a writeable location by your user.\n\nYou can browse specific versions at [ghcr.io/openfaasltd/k3sup-pro](https://ghcr.io/openfaasltd/k3sup-pro) then pass the `--version` flag accordingly.\n\n### Activating K3sup Pro\n\nRun `k3sup-pro activate` to verify your identity using GitHub.com. You'll only need to do this on your laptop/workstation - machines which will host K3s do not need any additional steps.\n\nCommercial users can place their license key at `$HOME/.k3sup/LICENSE` and do not need to run `k3sup-pro activate`.\n\n### K3sup `plan` / `apply` for automation and large installations\n\nThe `k3sup-pro plan` command reads a set of JSON files containing your hosts, and will generate a YAML plan file that you can edit to customize the installation.\n\nExample input file:\n\n```json\n[\n  {\n    \"hostname\": \"k3s-server-1\",\n    \"ip\": \"192.168.129.138\"\n  },\n  {\n    \"hostname\": \"k3s-server-2\",\n    \"ip\": \"192.168.129.128\"\n  },\n  {\n    \"hostname\": \"k3s-server-3\",\n    \"ip\": \"192.168.129.131\"\n  },\n  {\n    \"hostname\": \"k3s-agent-1\",\n    \"ip\": \"192.168.129.130\"\n  },\n  {\n    \"hostname\": \"k3s-agent-2\",\n    \"ip\": \"192.168.129.127\"\n  }\n]\n```\n\nThe following will create 1x primary server, with 2x additional servers within a HA etcd cluster, the last two nodes will be added as agents.\n\n```bash\nk3sup pro plan ./n100.json ./n200.json \\\n  --user ubuntu \\\n  --servers 3 \\\n  --svclb=false \\\n  --server-extra-args \"--disable traefik\" \\\n  --agent-extra-args \"--node-label worker=true\"\n```\n\nExample plan.yaml file:\n\n```yaml\nversion:\n    k3s_channel: stable\nserver_options:\n    user: ubuntu\n    ssh_port: 22\n    k3s_extra_args: --disable traefik\n    parallel: 5\n    traefik: true\nagent_options:\n    k3s_extra_args: --node-label worker=true\nhosts:\n    - name: k3s-1\n      role: server\n      host: 192.168.138.2\n      architecture: x86_64\n    - name: k3s-2\n      role: server\n      host: 192.168.138.3\n      architecture: x86_64\n    - name: k3s-3\n      role: server\n      host: 192.168.138.4\n      architecture: x86_64\n    - name: k3s-agent-1\n      role: agent\n      host: 192.168.137.2\n      architecture: x86_64\n    - name: k3s-agent-2\n      role: agent\n      host: 192.168.137.3\n      architecture: x86_64\n    - name: k3s-agent-3\n      role: agent\n      host: 192.168.137.4\n      architecture: x86_64\n\n```\n\nThe YAML plan file can be edited and committed to Git for maintenance and future upgrades.\n\nThen when you're ready to install, you can run `k3sup-pro apply` to install in parallel.\n\nThe `--predownload` flag will download the k3s binary to your local machine, then copy it over SSH to each host to speed up the installation.\n\nThe `--parallel` flag sets how many installation steps to run at the same time.\n\n```bash\nk3sup pro apply \\\n  --predownload \\\n  --parallel 10\n```\n\nYou can also get hold of your kubeconfig with `k3sup-pro get-config` and then use `kubectl` to access your cluster.\n\nMerge it into your main KUBECONFIG file:\n\n```bash\nk3sup pro get-config \\\n  --local-path $HOME/.kube/config \\\n  --context my-k3s \\\n  --merge\n```\n\nOr set up a local file:\n\n```bash\nk3sup pro get-config \\\n  --local-path ./kubeconfig\n\nexport KUBECONFIG=`pwd`/kubeconfig\n```\n\nWatch a demo with dozens of Firecracker VMs: [Testing Kubernetes at Scale with bare-metal](https://youtu.be/o4UxRw-Cc8c)\n\n### Rapid uninstallation / reset with `k3sup-pro uninstall`\n\nThe `k3sup-pro uninstall` command will uninstall k3s from all nodes in the cluster.\n\nIf you have a plan YAML file, the username, SSH ports, and key files will all be read from the file, and the uninstallation will be performed in order and in parallel. Removing the agents first, then any additional servers, and finally the primary server.\n```bash\nk3sup pro uninstall\n```\n\nIf you only have devices JSON files, you may also need a `--user` and / or `--ssh-key` flag.\n\n```bash\nk3sup pro uninstall \\\n  --user ubuntu \\\n  --ssh-key ~/.ssh/id_rsa\n```\n\n### K3sup `pro exec` - run a command everywhere\n\nThe `k3sup-pro exec` command allows you to run a command on all nodes in the cluster. You can specify `--servers` or `--agents` to run the command on only the servers or agents.\n\nRun on all nodes:\n\n```bash\nk3sup pro exec \\\n  \"free -h\"\n```\n\nOnly on servers:\n\n```bash\nk3sup pro exec \\\n  --servers \\\n  \"sudo journalctl -u k3s -n 100\"\n```\n\nOnly on agents:\n\n```bash\nk3sup pro exec \\\n  --agents \\\n  \"sudo journalctl -u k3s-agent -n 100\"\n```\n\n### K3sup `pro get-config` - work with an existing cluster\n\nThe `k3sup-pro get-config` command allows you to retrieve kubeconfig files from existing K3s installations without performing any installation steps. This is useful when you already have K3s running and just need to access the cluster configuration.\n\nYou can also use it if you initially created a local `./kubeconfig` file but now want to merge it under a meaningful context name to your main `$HOME/.kube/config` file.\n\nGet kubeconfig from a remote server:\n\n```bash\nk3sup pro get-config \\\n  --host 192.168.0.100 \\\n  --user ubuntu \\\n  --local-path ./kubeconfig\n```\n\nGet kubeconfig from a local installation:\n\n```bash\nk3sup pro get-config --local\n```\n\nMerge kubeconfig into your main KUBECONFIG file:\n\n```bash\nk3sup pro get-config \\\n  --host 192.168.0.100 \\\n  --user ubuntu \\\n  --merge \\\n  --local-path $HOME/.kube/config \\\n  --context my-remote-cluster\n```\n\nUse a custom SSH key:\n\n```bash\nk3sup pro get-config \\\n  --host 192.168.0.100 \\\n  --user ubuntu \\\n  --ssh-key $HOME/.ssh/my-key \\\n  --local-path ./kubeconfig\n```\n\nIf you do not have `k3sup-pro` yet, you can also use `k3sup install` with the `--skip-install` flag.\n\n## K3sup Community Edition (CE)\n\nThe CE edition of K3sup is available to all users for free, and the code is licensed under the MIT license so you can also adapt it for your own use, or contribute back to the project.\n\nThe CE edition has been available since 2019 and has been used by many different people to learn about Kubernetes, and to build their own clusters using imperative bash commands.\n\n### 👑 Setup a Kubernetes *server* with `k3sup`\n\nYou can setup a server and stop here, or go on to use the `join` command to add some \"agents\" aka `nodes` or `workers` into the cluster to expand its compute capacity.\n\nProvision a new VM running a compatible operating system such as Ubuntu, Debian, Raspbian, or something else. Make sure that you opt-in to copy your registered SSH keys over to the new VM or host automatically.\n\n> Note: You can copy ssh keys to a remote VM with `ssh-copy-id user@IP`.\n\nImagine the IP was `192.168.0.1` and the username was `ubuntu`, then you would run this:\n\n* Run `k3sup`:\n\n```sh\nexport IP=192.168.0.1\nk3sup install --ip $IP --user ubuntu\n\n# Or use a hostname and SSH key for EC2\nexport HOST=\"ec2-3-250-131-77.eu-west-1.compute.amazonaws.com\"\nk3sup install --host $HOST --user ubuntu \\\n  --ssh-key $HOME/ec2-key.pem\n```\n\nOther options for `install`:\n\n* `--cluster` - start this server in clustering mode using embedded etcd (embedded HA)\n* `--skip-install` - if you already have k3s installed, you can just run this command to get the `kubeconfig`\n* `--ssh-key` - specify a specific path for the SSH key for remote login\n* `--local` - Perform a local install without using ssh\n* `--local-path` - default is `./kubeconfig` - set the file where you want to save your cluster's `kubeconfig`.  By default this file will be overwritten.\n* `--merge` - Merge config into existing file instead of overwriting (e.g. to add config to the default kubectl config, use `--local-path ~/.kube/config --merge`).\n* `--context` - default is `default` - set the name of the kubeconfig context.\n* `--ssh-port` - default is `22`, but you can specify an alternative port i.e. `2222`\n* `--no-extras` - disable \"servicelb\" and \"traefik\"\n* `--k3s-extra-args` - Optional extra arguments to pass to k3s installer, wrapped in quotes, i.e. `--k3s-extra-args '--disable traefik'` or `--k3s-extra-args '--docker'`. For multiple args combine then within single quotes `--k3s-extra-args '--disable traefik --docker'`.\n* `--k3s-version` - set the specific version of k3s, i.e. `v1.21.1`\n* `--k3s-channel` - set a specific version of k3s based upon a channel i.e. `stable`\n- `--ipsec` - Enforces the optional extra argument for k3s: `--flannel-backend` option: `ipsec`\n* `--print-command` - Prints out the command, sent over SSH to the remote computer\n* `--datastore` - used to pass a SQL connection-string to the `--datastore-endpoint` flag of k3s. You must use [the format required by k3s in the Rancher docs](https://rancher.com/docs/k3s/latest/en/installation/ha/).\n\nSee even more install options by running `k3sup install --help`.\n\n* Now try the access:\n\n```bash\nexport KUBECONFIG=`pwd`/kubeconfig\nkubectl get node\n```\n\nNote that you should always use `pwd/` so that a full path is set, and you can change directory if you wish.\n\n### Checking if a cluster is ready\n\nThere are various ways to confirm whether a cluster is ready to use.\n\nK3sup runs the \"kubectl get nodes\" command using a KUBECONFIG file, and looks for the \"Ready\" status on each node, including agents/workers.\n\nInstall K3s directly on the node and then check if it's ready:\n\n```bash\nk3sup install \\\n  --local \\\n  --context localk3s\n\nk3sup ready \\\n  --context localk3s \\\n  --kubeconfig ./kubeconfig\n```\n\nCheck a remote server saved to a local file:\n\n```bash\nk3sup install \\\n  --ip 192.168.0.101 \\\n  --user pi\n\nk3sup ready \\\n  --context default \\\n  --kubeconfig ./kubeconfig\n```\n\nCheck a merged context in your default KUBECONFIG:\n\n```bash\nk3sup install \\\n  --ip 192.168.0.101 \\\n  --user pi \\\n  --context pik3s \\\n  --merge \\\n  --local-path $HOME/.kube/config\n\n# $HOME/.kube/config is a default for kubeconfig\nk3sup ready --context pik3s\n```\n\n### Merging clusters into your KUBECONFIG\n\nYou can also merge the remote config into your main KUBECONFIG file `$HOME/.kube/config`, then use `kubectl config get-contexts` or `kubectx` to manage it.\n\nThe default \"context\" name for the remote k3s cluster is `default`, however you can override this as below.\n\nFor example:\n\n```bash\nk3sup install \\\n  --ip $IP \\\n  --user $USER \\\n  --merge \\\n  --local-path $HOME/.kube/config \\\n  --context my-k3s\n```\n\nHere we set a context of `my-k3s` and also merge into our main local `KUBECONFIG` file, so we could run `kubectl config use-context my-k3s` or `kubectx my-k3s`.\n\n### 😸 Join some agents to your Kubernetes server\n\nLet's say that you have a server, and have already run the following:\n\n```sh\nexport SERVER_IP=192.168.0.100\nexport USER=root\n\nk3sup install --ip $SERVER_IP --user $USER\n```\n\nNext join one or more `agents` to the cluster:\n\n```sh\nexport AGENT_IP=192.168.0.101\n\nexport SERVER_IP=192.168.0.100\nexport USER=root\n\nk3sup join --ip $AGENT_IP --server-ip $SERVER_IP --user $USER\n```\n\nPlease note that if you are using different usernames for SSH'ing to the agent and the server that you must provide the username for the server via the `--server-user` parameter.\n\nThat's all, so with the above command you can have a two-node cluster up and running, whether that's using VMs on-premises, using Raspberry Pis, 64-bit ARM or even cloud VMs on EC2.\n\n### Use your hardware authentication / 2FA or SSH Agent\n\nYou may wish to use the `ssh-agent` utility if:\n\n* Your SSH key is protected by a password, and you don't want to type it in for each k3sup command\n* You use a hardware authentication device key like a [Yubico YubiKey](https://amzn.to/3ApXR82) to authenticate SSH sessions\n\nRun the following to set `SSH_AUTH_SOCK`:\n\n```\n$ eval $(ssh-agent)\nAgent pid 2641757\n```\n\nOptionally, if your key is encrypted, run: `ssh-add ~/.ssh/id_rsa`\n\nNow run any `k3sup` command, and your SSH key will be requested from the ssh-agent instead of from the usual location.\n\nYou can also specify an SSH key with `--ssh-key` if you want to use a specific key-pair.\n\n### Create a multi-master (HA) setup with external SQL\n\nThe easiest way to test out k3s' multi-master (HA) mode with external storage, is to set up a Mysql server using DigitalOcean's managed service.\n\n* Get the connection string from your DigitalOcean dashboard, and adapt it\n\nBefore:\n```\nmysql://doadmin:80624d3936dfc8d2e80593@db-mysql-lon1-90578-do-user-6456202-0.a.db.ondigitalocean.com:25060/defaultdb?ssl-mode=REQUIRED\n\n```\n\nAfter:\n```\nmysql://doadmin:80624d3936dfc8d2e80593@tcp(db-mysql-lon1-90578-do-user-6456202-0.a.db.ondigitalocean.com:25060)/defaultdb\n```\n\nNote that we've removed `?ssl-mode=REQUIRED` and wrapped the host/port in `tcp()`.\n\n```bash\nexport DATASTORE=\"mysql://doadmin:80624d3936dfc8d2e80593@tcp(db-mysql-lon1-90578-do-user-6456202-0.a.db.ondigitalocean.com:25060)/defaultdb\n```\n\nYou can prefix this command with `  ` two spaces, to prevent it being cached in your bash history.\n\nGenerate a token used to encrypt data (If you already have a running node this can be retrieved by logging into a running node and looking in `/var/lib/rancher/k3s/server/token`)\n\n```bash\n# Best option for a token:\nexport TOKEN=$(openssl rand -base64 64)\n\n# Fallback for no openssl, on a Linux host:\nexport TOKEN=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 64)\n\n# Failing that, then try:\nexport TOKEN=$(head -c 64 /dev/urandom|shasum| cut -d - -f 1)\n```\n\n\n* Create three VMs\n\nImagine we have the following three VMs, two will be servers, and one will be an agent.\n\n```bash\nexport SERVER1=104.248.135.109\nexport SERVER2=104.248.25.221\nexport AGENT1=104.248.137.25\n```\n\n* Install the first server\n\n```bash\nk3sup install --user root --ip $SERVER1 --datastore=\"${DATASTORE}\" --token=${TOKEN}\n```\n\n* Install the second server\n\n```bash\nk3sup install --user root --ip $SERVER2 --datastore=\"${DATASTORE}\" --token=${TOKEN}\n```\n\n* Join the first agent\n\nYou can join the agent to either server, the datastore is not required for this step.\n\n```bash\nk3sup join --user root --server-ip $SERVER1 --ip $AGENT1\n```\n\nPlease note that if you are using different usernames for SSH'ing to the agent and the server that you must provide the username for the server via the `--server-user` parameter.\n\n* Additional steps\n\nIf you run `kubectl get node`, you'll now see two masters/servers and one agent, however, we joined the agent to the first server. If the first server goes down, the agent will effectively also go offline.\n\n```bash\nkubectl get node\n\nNAME              STATUS                        ROLES    AGE     VERSION\nk3sup-1           Ready                         master   73s     v1.19.6+k3s1\nk3sup-2           Ready                         master   2m31s   v1.19.6+k3s1\nk3sup-3           Ready                         <none>   14s     v1.19.6+k3s1\n```\n\nThere are two ways to prevent a dependency on the IP address of any one host. The first is to create a TCP load-balancer in the cloud of your choice, the second is for you to create a DNS round-robbin record, which contains all of the IPs of your servers.\n\nIn your DigitalOcean dashboard, go to the Networking menu and click \"Load Balancer\", create one in the same region as your Droplets and SQL server. Select your two Droplets, i.e. `104.248.34.61` and `142.93.175.203`, and use `TCP` with port `6443`.\n\nIf you want to run `k3sup join` against the IP of the LB, then you should also add `TCP` port `22`\n\nMake sure that the health-check setting is also set to `TCP` and port `6443`. Wait to get your IP, mine was: `174.138.101.83`\n\nSave the LB into an environment variable:\n\n```bash\nexport LB=174.138.101.83\n```\n\nNow use `ssh` to log into both of your servers, and edit their config files at `/etc/systemd/system/k3s.service`, update the lines `--tls-san` and the following address, to that of your LB:\n\n```\nExecStart=/usr/local/bin/k3s \\\n    server \\\n        '--tls-san' \\\n        '104.248.135.109' \\\n```\n\nBecomes:\n\n```\nExecStart=/usr/local/bin/k3s \\\n    server \\\n        '--tls-san' \\\n        '174.138.101.83' \\\n```\n\nNow run:\n\n```bash\nsudo systemctl daemon-reload && \\\n  sudo systemctl restart k3s-agent\n```\n\nAnd repeat these steps on the other server.\n\nYou can update the agent manually, via ssh and edit `/etc/systemd/system/k3s-agent.service.env` on the host, or use `k3sup join` again, but only if you added port `22` to your LB:\n\n```bash\nk3sup join --user root --server-ip $LB --ip $AGENT1\n```\n\nFinally, regenerate your KUBECONFIG file with the LB's IP, instead of one of the servers:\n\n```bash\nk3sup install --skip-install --ip $LB\n```\n\nLog into the first server, and stop k3s `sudo systemctl stop k3s`, then check that kubectl still functions as expected:\n\n```bash\nexport KUBECONFIG=`pwd`/kubeconfig\nkubectl get node -o wide\n\nNAME              STATUS                        ROLES    AGE   VERSION\nk3sup-1           NotReady                      master   23m   v1.19.6+k3s1\nk3sup-2           Ready                         master   25m   v1.19.6+k3s1\nk3sup-3           Ready                         <none>   22m   v1.19.6+k3s1\n```\n\nYou've just simulated a failure of one of your masters/servers, and you can still access kubectl. Congratulations on building a resilient k3s cluster.\n\n### Create a multi-master (HA) setup with embedded etcd\n\nIn k3s `v1.19.5+k3s1` a HA multi-master (multi-server in k3s terminology) configuration is available called \"embedded etcd\". A quorum of servers will be required, which means having an odd number of nodes and least three. [See more](https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/)\n\n* Initialize the cluster with the first server\n\nNote the `--cluster` flag\n\n```sh\nexport SERVER_IP=192.168.0.100\nexport USER=root\n\nk3sup install \\\n  --ip $SERVER_IP \\\n  --user $USER \\\n  --cluster \\\n  --k3s-version v1.19.1+k3s1\n```\n\n* Join each additional server\n\n> Note the new `--server` flag\n\n```sh\nexport USER=root\nexport SERVER_IP=192.168.0.100\nexport NEXT_SERVER_IP=192.168.0.101\n\nk3sup join \\\n  --ip $NEXT_SERVER_IP \\\n  --user $USER \\\n  --server-user $USER \\\n  --server-ip $SERVER_IP \\\n  --server \\\n  --k3s-version v1.19.1+k3s1\n```\n\nNow check `kubectl get node`:\n\n```sh\nkubectl get node\nNAME              STATUS   ROLES    AGE     VERSION\npaprika-gregory   Ready    master   8m27s   v1.19.2-k3s\ncave-sensor       Ready    master   27m     v1.19.2-k3s\n```\n\nIf you used `--no-extras` on the initial installation you will also need to provide it on each join:\n\n```sh\nexport USER=root\nexport SERVER_IP=192.168.0.100\nexport NEXT_SERVER_IP=192.168.0.101\n\nk3sup join \\\n  --ip $NEXT_SERVER_IP \\\n  --user $USER \\\n  --server-user $USER \\\n  --server-ip $SERVER_IP \\\n  --server \\\n  --no-extras \\\n  --k3s-version v1.19.1+k3s1\n```\n\n### 👨‍💻 Micro-tutorial for Raspberry Pi (2, 3, or 4) 🥧\n\nIn a few moments you will have Kubernetes up and running on your Raspberry Pi 2, 3 or 4. Stand by for the fastest possible install. At the end you will have a KUBECONFIG file on your local computer that you can use to access your cluster remotely.\n\n![](./docs/k3sup-rpi.png)\n*Conceptual architecture, showing `k3sup` running locally against bare-metal ARM devices.*\n\n* [Download etcher.io](https://www.balena.io/etcher/) for your OS\n\n* Flash an SD card using [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/)\n\n* Enable SSH by creating an empty file named `ssh` in the boot partition\n\n* Generate an ssh-key if you don't already have one with `ssh-keygen` (hit enter to all questions)\n\n* Find the RPi IP with `ping -c raspberrypi.local`, then set `export SERVER_IP=\"\"` with the IP\n\n* Enable container features in the kernel, by editing `/boot/cmdline.txt` (or `/boot/firmware/cmdline.txt` on Ubuntu)\n\n* Add the following to the end of the line: ` cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory`\n\n* Copy over your ssh key with: `ssh-copy-id pi@raspberrypi.local`\n\n* Run `k3sup install --ip $SERVER_IP --user pi`\n\n* Point at the config file and get the status of the node:\n\n```sh\nexport KUBECONFIG=`pwd`/kubeconfig\nkubectl get node -o wide\n```\n\nYou now have `kubectl` access from your laptop to your Raspberry Pi running k3s.\n\nIf you want to join some nodes, run `export IP=\"\"` for each additional RPi, followed by:\n\n* `k3sup join --ip $IP --server-ip $SERVER_IP --user pi`\n\n> Remember all these commands are run from your computer, not the RPi.\n\nNow where next? I would recommend my detailed tutorial where I spend time looking at how to flash the SD card, deploy k3s, deploy OpenFaaS (for some useful microservices), and then get incoming HTTP traffic.\n\nTry it now: [Will it cluster? K3s on Raspbian](https://blog.alexellis.io/test-drive-k3s-on-raspberry-pi/)\n\n## Caveats on security\n\nIf you are using public cloud, then make sure you see the notes from the Rancher team on setting up a Firewall or Security Group.\n\nk3s docs: [k3s configuration / open ports](https://rancher.com/docs/k3s/latest/en/installation/installation-requirements/#networking)\n\n## Contributing\n\n### Blog posts & tweets\n\nBlogs posts, tutorials, and Tweets about k3sup (`#k3sup`) are appreciated. Please send a PR to the README.md file to add yours.\n\n### Contributing via GitHub\n\nBefore contributing code, please see the [CONTRIBUTING guide](https://github.com/alexellis/arkade/blob/master/CONTRIBUTING.md). Note that k3sup uses the same guide [arkade](https://arkade.dev)\n\nBoth Issues and PRs have their own templates. Please fill out the whole template.\n\nAll commits must be signed-off as part of the [Developer Certificate of Origin (DCO)](https://developercertificate.org)\n\n### License\n\nMIT\n\n## 📢 What are people saying about `k3sup`?\n\n* [Five years of Raspberry Pi clusters](https://www.raspberrypi.org/blog/five-years-of-raspberry-pi-clusters/) - raspberrypi.org\n\n* [Multi-master HA Kubernetes in < 5 minutes](https://blog.alexellis.io/multi-master-ha-kubernetes-in-5-minutes/) by Alex Ellis\n\n* [Kubernetes Homelab with Raspberry Pi and k3sup](https://blog.alexellis.io/raspberry-pi-homelab-with-k3sup/)\n\n* [Building a Kubernetes cluster on Raspberry Pi running Ubuntu server](https://medium.com/icetek/building-a-kubernetes-cluster-on-raspberry-pi-running-ubuntu-server-8fc4edb30963) by Jakub Czapliński\n\n* [Multi-node Kubernetes on Civo in 5 minutes flat with k3sup!](https://www.civo.com/learn/kubernetes-on-civo-in-5-minutes-flat) - Civo Learn guide\n\n* [Zero to k3s Kubeconfig in seconds on AWS EC2 with k3sup](https://rancher.com/blog/2019/k3s-kubeconfig-in-seconds) by Saiyam Pathak\n\n* [Create a 3-node k3s cluster with k3sup & DigitalOcean](https://blog.alexellis.io/create-a-3-node-k3s-cluster-with-k3sup-digitalocean/)\n\n* [Cheap k3s cluster using Amazon Lightsail](https://eamonbauman.com/2020/05/09/cheap-k3s-cluster-using-amazon-lightsail/)\n\n* [k3sup mentioned on Kubernetes Podcast episode 67](https://kubernetespodcast.com/episode/067-orka/) by Craig Box & Adam Glick\n\n* [Scheduling Kubernetes workloads to Raspberry Pi using Inlets and Crossplane](https://github.com/crossplaneio/tbs/blob/master/episodes/9/assets/README.md) by [Daniel Mangum](https://github.com/hasheddan)\n  * Also checkout the live [demo](https://youtu.be/RVAFEAnirZA)\n\n* Blog post by Ruan Bekker:\n\n    > Provision k3s to all the places with a awesome utility called \"k3sup\" by @alexellisuk. Definitely worth checking it out, its epic!\n\n    [Provision k3s on the fly with k3sup](https://sysadmins.co.za/provision-k3s-on-the-fly-with-k3sup/)\n\n* [Dave Cadwallader (@geek_dave)](https://twitter.com/geek_dave/status/1162386683200851969?s=20):\n\n    > Alex - Thanks so much for all the effort you put into your tools and tutorials.  My rpi homelab has been a valuable learning playground for CNCF tech thanks to you!\n\n* [k3sup in KubeWeekly #181](https://kubeweekly.io/2019/08/22/kubeweekly-181/)\n\n* [Will it cluster? K3s on Raspbian](https://blog.alexellis.io/test-drive-k3s-on-raspberry-pi/)\n\n* [Kubernetes the Easy Way with k3sup – Cisco DevOps Series](https://blogs.cisco.com/developer/kubernetes-the-easy-way-devops-14)\n\n* [Trying tiny k3s on Google Cloud with k3sup](https://starkandwayne.com/blog/trying-tiny-k3s-on-google-cloud-with-k3sup/) by Stark & Wayne\n\n* [Setting up a Raspberry Pi Kubernetes Cluster with Blinkt! Strips that Show Number of Pods per Node](https://pleasereleaseme.net/setting-up-a-raspberry-pi-kubernetes-cluster-with-blinkt-strips-that-show-number-of-pods-per-node-using-k3sup/)\n\n* [From Zero to Kubernetes Dashboard within Minutes with k3sup and Kontena Lens](https://medium.com/@laurinevala/from-zero-to-kubernetes-dashboard-within-minutes-with-k3sup-and-kontena-lens-84f881400b10) - by Lauri Nevala\n\n* [BYOK - Build your Own Kubernetes Cluster with Raspberry Pis, k3s, and k3sup](https://speakerdeck.com/mikesir87/byok-build-your-own-kubernetes-cluster-with-raspberry-pis-k3s-and-k3sup) by Michael Irwin\n\n* [Run Kubernetes On Your Machine with k3sup](https://itnext.io/run-kubernetes-on-your-machine-7ee463af21a2) by Luc Juggery\n\n* [Trying out k3sup](https://blog.baeke.info/2019/10/25/trying-out-k3sup/) by Geert Baeke\n\n* [Creating your first Kubernetes cluster with k3sup](https://dev.to/kalaspuffar/creating-your-first-kubernetes-cluster-3kp2) by Daniel Persson\n\n* [My 2019 In Review - Hello Open Source](https://blog.heyal.co.uk/My-2019/) by Alistair Hey\n\n* [Kubernetes 104: Create a 2-node k3s cluster with k3sup](https://ahmed-abdelsamad.blogspot.com/2019/09/kubernetes-104-create-2-node-k3s.html) by Ahmed Abelsamad\n\n* [My home Kubernetes cluster driven by GitOps and k3sup](https://github.com/onedr0p/k3s-gitops) - by Devin Buhl\n\n* [Raspberry Pi: From 0 to k3s cluster in 5 min with k3sup and Ansible](https://blog.cloudgsx.es/topic/10/raspberry-pi-from-0-to-k3s-cluster-in-5-min-with-k3sup-and-ansible) - by Pablo Caderno\n\n* [Kubernetes: from Zero to Hero with Kompose, Minikube, k3sup and Helm](https://blog.mi.hdm-stuttgart.de/index.php/2020/02/29/image-editor-on-kubernetes-with-kompose-minikube-k3s-k3sup-and-helm-part-2/) by Leon Klingele, Alexander Merker & Florian Wintel\n\n* [Deploying a highly-available K3s with k3sup](https://ma.ttias.be/deploying-highly-available-k3s-k3sup/) by Dmitriy Akulov\n\n* [Multi-master HA Kubernetes using K3Sup on Windows10/Server 2019](https://github.com/TechGuyTN/K3Sup-Windows10/blob/d7ad4f642ae6ebf441b8137bd71111c9c2890add/README.md) by Aaron Holt\n\n* [Ansible Role: k3sup](https://github.com/vandot/ansible-role-k3sup) by Ivan Vandot\n\n* [HashiCorp Vault on K3s on RPi4](https://github.com/colin-mccarthy/k3s-pi-vault/tree/d5e616de9048da8b990dc7b99a6d2d96bd9e9cc5) by Colin McCarthy\n\n* [Raspberry Pi Cluster Part 2: ToDo API running on Kubernetes with k3s](https://www.dinofizzotti.com/blog/2020-05-09-raspberry-pi-cluster-part-2-todo-api-running-on-kubernetes-with-k3s/) by Dino Fizzotti\n\n* [Cloud Native Tools for Developers Webinar Recap](https://www.openfaas.com/blog/cloud-native-tools-webinar/) by Alex Ellis & Alistair Hey\n\n* [Unobtrusive local development with kubernetes, k3s, traefik2](https://www.codementor.io/@slavko/unobtrusive-local-development-with-kubernetes-k3s-traefik2-15uq596oja) by Vyacheslav\n\n* [Cómo desplegar un clúster de Kubernetes en 60 segundos con k3sup](https://www.cduser.com/como-desplegar-un-cluster-de-kubernetes-en-60-segundos-con-k3sup/) by Ignacio Van Droogenbroeck\n\n* [Raspberry Kubernetes cluster for my homlab with k3sup](https://hybridhacker.com/homelab-raspberry-kubernetes-cluster-with-k3sup.html) by Nicola Ballotta\n\n* [k3sup On MacOS Catalina](https://gizmo.codes/k3sup-on-macos-catalina/) by John Doyle\n\n* [Provision k3s on Google Cloud with Terraform and k3sup — Nimble](https://medium.com/nimble/provision-k3s-on-google-cloud-with-terraform-and-k3sup-nimble-38fa3167b4c3) by Carlos Herrera\n\n* [K3s: Edge Kubernetes](https://redmonk.com/jgovernor/2020/01/31/k3s-edge-kubernetes/) by James Governor\n\n* [OpenStack sur LXD avec Juju et k3sup dans phoenixNAP](https://deep75.medium.com/openstack-sur-lxd-avec-juju-et-k3sup-dans-phoenixnap-e5867a487497)\n\n* [Creating a k3s Cluster with k3sup & Multipass 💻☸️](https://dev.to/tomowatt/creating-a-k3s-cluster-with-k3sup-multipass-h26) by Tom Watt\n\n* [How I've set up my highly-available Kubernetes cluster](https://jmac.ph/2021/01/25/how-ive-set-up-my-highly-available-kubernetes-cluster/) by JJ Macalinao\n\n* [Creating a K3S Raspberry PI Cluster with K3Sup to fire up nightscout with MongoDB](https://h3rmanns.medium.com/creating-a-k3s-raspberry-pi-cluster-with-k3sup-to-fire-up-a-nightscout-backend-service-based-on-a-27c1f5727e5b)\n\n* [Kubernetes Cluster with Rancher on Windows using K3s](https://adyanth.site/posts/kubernetes-cluster-on-windows/) by Adyanth H\n\n* [k3s in LXC on Proxmox with k3sup by Todd Edwards](https://gist.github.com/triangletodd/02f595cd4c0dc9aac5f7763ca2264185)\n\nCheckout the [Announcement tweet](https://twitter.com/alexellisuk/status/1162272786250735618?s=20)\n\n## Similar tools & glossary\n\nGlossary:\n\n* Kubernetes: master/slave\n* k3s: server/agent\n\nRelated tools:\n\n* [k3s](https://github.com/rancher/k3s) - Kubernetes as installed by `k3sup`. k3s is a compliant, light-weight, multi-architecture distribution of Kubernetes. It can be used to run Kubernetes locally or remotely for development, or in edge locations.\n* [k3d](https://github.com/rancher/k3d) - this tool runs a Docker container on your local laptop with k3s inside\n* [kind](https://github.com/kubernetes-sigs/kind) - kind can run a Kubernetes cluster within a Docker container for local development. k3s is also suitable for this purpose through `k3d`. KinD is not suitable for running a remote cluster for development.\n* [kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) - a tool to create fully-loaded, production-ready Kubernetes clusters with or without high-availability (HA). Tends to be heavier-weight and slower than k3s. It is aimed at cloud VMs or bare-metal computers which means it doesn't always work well with low-powered ARM devices.\n* [k3v](https://github.com/ibuildthecloud/k3v) - \"virtual kubernetes\" - a very early PoC from the author of k3s aiming to slice up a single cluster for multiple tenants\n* [k3sup-multipass](https://github.com/matti/k3sup-multipass) - a helper to launch single node k3s cluster with one command using a [multipass](https://multipass.run) VM and optionally proxy the ingress to localhost for easier development.\n\n## Troubleshooting and support\n\n### Maybe the problem is with K3s?\n\nIf you're having issues, it's likely that this is a problem with K3s, and not with k3sup. How do we know that? K3sup is a very mature project and has a few use-cases that it generally performs very well.\n\nRancher provides support for K3s [on their Slack](https://slack.rancher.io/) in the `#k3s` channel. This should be your first port of call. Your second port of call is to raise an issue with the K3s maintainers in the [K3s repo](https://github.com/k3s-io/k3s/issues)\n\nDo you want to install a specific version of K3s? See `k3sup install --help` and the `--k3s-version` and `--k3s-channel` flags.\n\nIs your system ready to run Kubernetes? K3s requires certain Kernel modules to be available, run `k3s check-config` and check the output. Alex tests K3sup with Raspberry Pi OS and Ubuntu LTS on a regular basis.\n\n### Common issues\n\nThe most common problem is that you missed a step, fortunately it's relatively easy to get the logs from the K3s service and it should tell you what's wrong.\n\n* For the Raspberry Pi you probably haven't updated `cmdline.txt` to enable cgroups for CPU and memory. Update it as per the instructions in this file.\n* You ran `kubectl` on a node. Don't do this. k3sup copies the file to your local workstation. Don't log into agents or servers other than to check logs / upgrade the system.\n* `sudo: a terminal is required to read the password` - setup password-less `sudo` on your hosts, see also:[Pre-requisites for k3sup agents and servers](#pre-requisites-for-k3sup-servers-and-agents)\n* You want to install directly on a server, without using SSH. See also: `k3sup install --local` which doesn't use SSH, but executes the commands directly on a host.\n\n* K3s server didn't start. Log in and run `sudo systemctl status k3s` or `sudo journalctl -u k3s` to see the logs for the service.\n* The K3s agent didn't start. Log in and run `sudo systemctl status k3s-agent`\n* You tried to remove and re-add a server in an etcd cluster and it failed. This is a known issue, see the [K3s issue tracker](https://github.com/k3s-io/k3s/issues).\n* You tried to use an unsupported version of a database for HA. See [this list from Rancher](https://rancher.com/docs/k3s/latest/en/installation/datastore/)\n* Your tried to join a node to the cluster and got an error \"ssh: handshake failed\". This is probably one of three possibilities:\n  - You did not run `ssh-copy-id`. Try to run it and check if you can log in to the server and the new node without a password prompt using regular `ssh`.\n  - You have an RSA public key. There is an [underlying issue in a Go library](https://github.com/golang/go/issues/39885) which is [referred here](https://github.com/alexellis/k3sup/issues/63). Please provide the additional parameter `--ssh-key ~/.ssh/id_rsa` (or wherever your private key lives) until the issue is resolved.\n  - You are using different usernames for SSH'ing to the server and the node to be added. In that case, playe provide the username for the server via the `--server-user` parameter.\n* Your `.ssh/config` file isn't being used by K3sup. K3sup does not use the config file used by the `ssh` command-line, but instead uses CLI flags, run `k3sup install/join --help` to learn which are supported.\n\n> Note: Passing `--no-deploy` to `--k3s-extra-args` was deprecated by the K3s installer in K3s 1.17. Use `--disable` instead or `--no-extras`.\n\n### Getting access to your KUBECONFIG\n\nYou may have run into an issue where `sudo` access is required for `kubectl` access.\n\nYou should not run `kubectl` directly on hosts where K3s is installed. k3sup is designed to rewrite and/or merge your cluster's config to your local KUBECONFIG file.\n\nYou should only run `kubectl` on your laptop / client machine.\n\nIf you've lost your kubeconfig, you can use `k3sup get-config`. See also the various flags for merging and setting a context name.\n\n### Smart cards and 2FA\n\n> Warning: issues requesting support for smart cards / 2FA will be closed immediately. The feature has been proven to work, and is provided as-is.\n\nYou can use a smart card or 2FA security key such as a Yubikey. You must have your ssh-agent configured correctly, at that point k3sup will defer to the agent to make connections on MacOS and Linux. [Find out more](https://github.com/alexellis/k3sup/pull/312)\n\n### Misc note on `iptables`\n\n> Note added by Eduardo Minguez Perez\n\nCurrently there is an issue in k3s involving `iptables >= 1.8` that can affect the network communication. See the [k3s issue](https://github.com/rancher/k3s/issues/703) and the corresponding [kubernetes one](https://github.com/kubernetes/kubernetes/issues/71305) for more information and workarounds. The issue has been observed in Debian Buster but it can affect other distributions as well.\n"
  },
  {
    "path": "cmd/get-config.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\toperator \"github.com/alexellis/k3sup/pkg/operator\"\n\n\t\"github.com/spf13/cobra\"\n)\n\n// MakeGetConfig creates the get-config command\nfunc MakeGetConfig() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"get-config\",\n\t\tShort: \"Get kubeconfig from an existing K3s installation\",\n\t\tLong: `Create a local kubeconfig for use with kubectl from your local machine.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Get the kubeconfig and save it to ./kubeconfig in the local\n  # directory under the default context\n  k3sup get-config --host HOST \\\n    --local-path ./kubeconfig\n\n  # Merge kubeconfig into local file under custom context\n  k3sup get-config \\\n    --host HOST \\\n    --merge \\\n    --local-path $HOME/.kube/kubeconfig \\\n    --context k3s-prod-eu-1\n\n  # Get kubeconfig from local installation directly on a server\n  # where you ran \"k3sup install --local\"\n  k3sup get-config --local`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().IP(\"ip\", net.ParseIP(\"127.0.0.1\"), \"Public IP of node\")\n\tcommand.Flags().String(\"user\", \"root\", \"Username for SSH login\")\n\tcommand.Flags().String(\"host\", \"\", \"Public hostname of node\")\n\tcommand.Flags().String(\"ssh-key\", \"~/.ssh/id_rsa\", \"The ssh key to use for remote login\")\n\tcommand.Flags().Int(\"ssh-port\", 22, \"The port on which to connect for ssh\")\n\tcommand.Flags().Bool(\"sudo\", true, \"Use sudo for kubeconfig retrieval. e.g. set to false when using the root user and no sudo is available.\")\n\tcommand.Flags().String(\"local-path\", \"kubeconfig\", \"Local path to save the kubeconfig file\")\n\tcommand.Flags().String(\"context\", \"default\", \"Set the name of the kubeconfig context.\")\n\tcommand.Flags().Bool(\"merge\", false, `Merge the config with existing kubeconfig if it already exists.\nProvide the --local-path flag with --merge if a kubeconfig already exists in some other directory`)\n\tcommand.Flags().Bool(\"print-command\", false, \"Print a command that you can use with SSH to manually recover from an error\")\n\tcommand.Flags().Bool(\"local\", false, \"Perform a local get-config without using ssh\")\n\n\tcommand.PreRunE = func(command *cobra.Command, args []string) error {\n\t\tlocal, err := command.Flags().GetBool(\"local\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !local {\n\t\t\t_, err = command.Flags().GetString(\"host\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetIP(\"ip\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetInt(\"ssh-port\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tcommand.RunE = func(command *cobra.Command, args []string) error {\n\t\tlocalKubeconfig, _ := command.Flags().GetString(\"local-path\")\n\t\tuseSudo, err := command.Flags().GetBool(\"sudo\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tsudoPrefix := \"\"\n\t\tif useSudo {\n\t\t\tsudoPrefix = \"sudo \"\n\t\t}\n\n\t\tlocal, _ := command.Flags().GetBool(\"local\")\n\n\t\tip, err := command.Flags().GetIP(\"ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\thost, err := command.Flags().GetString(\"host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(host) == 0 {\n\t\t\thost = ip.String()\n\t\t}\n\n\t\tlog.Println(host)\n\n\t\tprintCommand, err := command.Flags().GetBool(\"print-command\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tmerge, err := command.Flags().GetBool(\"merge\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontext, err := command.Flags().GetString(\"context\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tgetConfigcommand := fmt.Sprintf(\"%scat /etc/rancher/k3s/k3s.yaml\\n\", sudoPrefix)\n\n\t\tif local {\n\t\t\toperator := operator.ExecOperator{}\n\n\t\t\tif err = obtainKubeconfig(operator, getConfigcommand, host, context, localKubeconfig, merge); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\t\tfmt.Println(\"Public IP: \" + host)\n\n\t\tport, _ := command.Flags().GetInt(\"ssh-port\")\n\t\tuser, _ := command.Flags().GetString(\"user\")\n\t\tsshKey, _ := command.Flags().GetString(\"ssh-key\")\n\n\t\tsshKeyPath := expandPath(sshKey)\n\t\taddress := fmt.Sprintf(\"%s:%d\", host, port)\n\n\t\tsshOperator, sshOperatorDone, errored, err := connectOperator(user, address, sshKeyPath)\n\t\tif errored {\n\t\t\treturn err\n\t\t}\n\n\t\tif sshOperatorDone != nil {\n\t\t\tdefer sshOperatorDone()\n\t\t}\n\n\t\tif printCommand {\n\t\t\tfmt.Printf(\"ssh: %s\\n\", getConfigcommand)\n\t\t}\n\n\t\tif err = obtainKubeconfig(sshOperator, getConfigcommand, host, context, localKubeconfig, merge); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn command\n}\n"
  },
  {
    "path": "cmd/get.go",
    "content": "package cmd\n\nimport (\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/spf13/cobra\"\n)\n\n// MakeGet creates the get parent command\nfunc MakeGet() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"get\",\n\t\tShort: \"Helper for downloading K3sup Pro\",\n\t\tLong: `Helper for downloading K3sup Pro.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tSilenceUsage: true,\n\t}\n\n\treturn command\n}\n"
  },
  {
    "path": "cmd/get_pro.go",
    "content": "// Copyright Alex Ellis, OpenFaaS Ltd 2025\n// Inspired by update command in openfaas/faas-cli\npackage cmd\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"runtime\"\n\t\"strings\"\n\n\t\"github.com/alexellis/arkade/pkg/archive\"\n\t\"github.com/alexellis/arkade/pkg/env\"\n\tgoexecute \"github.com/alexellis/go-execute/v2\"\n\t\"github.com/google/go-containerregistry/pkg/crane\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\n\t\"github.com/spf13/cobra\"\n)\n\n// MakeGetPro creates the 'get pro' command\nfunc MakeGetPro() *cobra.Command {\n\tc := &cobra.Command{\n\t\tUse:   \"pro\",\n\t\tShort: \"Download the latest k3sup pro binary\",\n\t\tLong: `The latest release version of k3sup-pro will be downloaded from a remote \ncontainer registry.\n\nThis command will download and install k3sup-pro to /usr/local/bin by default.`,\n\t\tExample: `  # Download to the default location\n  k3sup get pro\n\n  # Download a specific version of k3sup pro\n  k3sup get pro --version v0.10.0\n\n  # Download to a custom location\n  k3sup get pro --path /tmp/`,\n\t\tRunE:    runGetProE,\n\t\tPreRunE: preRunGetProE,\n\t}\n\n\tc.Flags().Bool(\"verbose\", false, \"Enable verbose output\")\n\tc.Flags().String(\"path\", \"/usr/local/bin/\", \"Custom installation path\")\n\tc.Flags().String(\"version\", \"latest\", \"Specific version to download\")\n\n\treturn c\n}\n\nfunc preRunGetProE(cmd *cobra.Command, args []string) error {\n\tversion, _ := cmd.Flags().GetString(\"version\")\n\n\tif len(version) == 0 {\n\t\treturn fmt.Errorf(`version must be specified, or use \"latest\"`)\n\t}\n\n\treturn nil\n}\n\nfunc runGetProE(cmd *cobra.Command, args []string) error {\n\tverbose, _ := cmd.Flags().GetBool(\"verbose\")\n\tcustomPath, _ := cmd.Flags().GetString(\"path\")\n\tversion, _ := cmd.Flags().GetString(\"version\")\n\n\t// Use the provided path or default to /usr/local/bin/\n\tvar binaryPath string\n\tif customPath != \"/usr/local/bin/\" {\n\t\tbinaryPath = customPath\n\t\tif verbose {\n\t\t\tfmt.Printf(\"Using custom binary path: %s\\n\", binaryPath)\n\t\t}\n\t} else {\n\t\tbinaryPath = \"/usr/local/bin/\"\n\t\tif verbose {\n\t\t\tfmt.Printf(\"Using default binary path: %s\\n\", binaryPath)\n\t\t}\n\t}\n\n\tarch, operatingSystem := getClientArch()\n\tdownloadArch, downloadOS := getDownloadArch(arch, operatingSystem)\n\n\timageRef := fmt.Sprintf(\"ghcr.io/openfaasltd/k3sup-pro:%s\", version)\n\n\tfmt.Printf(\"Downloading: %s (%s/%s)\\n\", imageRef, downloadOS, downloadArch)\n\n\ttmpTarDir, err := os.MkdirTemp(os.TempDir(), \"k3sup-*\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create temp directory: %w\", err)\n\t}\n\tdefer os.RemoveAll(tmpTarDir)\n\n\ttmpTar := path.Join(tmpTarDir, \"k3sup-pro.tar\")\n\n\tf, err := os.Create(tmpTar)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to open %s: %w\", tmpTar, err)\n\t}\n\tdefer f.Close()\n\n\timg, err := crane.Pull(imageRef, crane.WithPlatform(&v1.Platform{Architecture: downloadArch, OS: downloadOS}))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"pulling %s: %w\", imageRef, err)\n\t}\n\n\tif err := crane.Export(img, f); err != nil {\n\t\treturn fmt.Errorf(\"exporting %s: %w\", imageRef, err)\n\t}\n\n\tif verbose {\n\t\tfmt.Printf(\"Wrote OCI filesystem to: %s\\n\", tmpTar)\n\t}\n\n\ttarFile, err := os.Open(tmpTar)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to open %s: %w\", tmpTar, err)\n\t}\n\tdefer tarFile.Close()\n\n\t// Extract to temporary directory first\n\ttmpExtractDir, err := os.MkdirTemp(os.TempDir(), \"k3sup-extract-*\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create extract directory: %w\", err)\n\t}\n\tdefer os.RemoveAll(tmpExtractDir)\n\n\tgzipped := false\n\tif err := archive.Untar(tarFile, tmpExtractDir, gzipped, true); err != nil {\n\t\treturn fmt.Errorf(\"failed to untar %s: %w\", tmpTar, err)\n\t}\n\n\tbinaryName := \"k3sup-pro\"\n\tif runtime.GOOS == \"windows\" {\n\t\tbinaryName = \"k3sup-pro.exe\"\n\t}\n\n\tnewBinary := path.Join(tmpExtractDir, binaryName)\n\tif err := os.Chmod(newBinary, 0755); err != nil {\n\t\treturn fmt.Errorf(\"failed to chmod %s: %w\", newBinary, err)\n\t}\n\n\t// Verify the extracted binary works\n\tif verbose {\n\t\tfmt.Println(\"Verifying extracted binary..\")\n\t}\n\ttask := goexecute.ExecTask{\n\t\tCommand: newBinary,\n\t\tArgs:    []string{\"version\"},\n\t}\n\n\tres, err := task.Execute(context.Background())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to execute extracted binary: %w\", err)\n\t}\n\n\tif res.ExitCode != 0 {\n\t\treturn fmt.Errorf(\"extracted binary test failed: %s\", res.Stderr)\n\t}\n\n\tif verbose {\n\t\tfmt.Printf(\"New binary version check:\\n%s\", res.Stdout)\n\t}\n\n\t// Install to target path\n\ttargetBinary := path.Join(binaryPath, binaryName)\n\n\t// Ensure target directory exists\n\tif err := os.MkdirAll(binaryPath, 0755); err != nil {\n\t\treturn fmt.Errorf(\"failed to create target directory %s: %w\", binaryPath, err)\n\t}\n\n\tif err := copyFile(newBinary, targetBinary); err != nil {\n\t\treturn fmt.Errorf(\"failed to copy binary to %s: %w\", targetBinary, err)\n\t}\n\tif err := os.Chmod(targetBinary, 0755); err != nil {\n\t\treturn fmt.Errorf(\"failed to chmod %s: %w\", targetBinary, err)\n\t}\n\tfmt.Printf(\"Installed: %s.. OK.\\n\", targetBinary)\n\n\t// Final version check\n\tfinalTask := goexecute.ExecTask{\n\t\tCommand: targetBinary,\n\t\tArgs:    []string{\"version\"},\n\t}\n\n\tfinalRes, err := finalTask.Execute(context.Background())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to execute updated binary: %w\", err)\n\t}\n\n\tif finalRes.ExitCode == 0 {\n\t\tfmt.Println(\"Installation completed successfully!\")\n\t\tif !verbose {\n\t\t\tfmt.Print(finalRes.Stdout)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc getClientArch() (arch string, os string) {\n\tif runtime.GOOS == \"windows\" {\n\t\treturn runtime.GOARCH, runtime.GOOS\n\t}\n\n\treturn env.GetClientArch()\n}\n\nfunc getDownloadArch(clientArch, clientOS string) (arch string, os string) {\n\tdownloadArch := strings.ToLower(clientArch)\n\tdownloadOS := strings.ToLower(clientOS)\n\n\tif downloadArch == \"x86_64\" {\n\t\tdownloadArch = \"amd64\"\n\t} else if downloadArch == \"aarch64\" {\n\t\tdownloadArch = \"arm64\"\n\t}\n\n\treturn downloadArch, downloadOS\n}\n\n// copyFile copies a file from src to dst\nfunc copyFile(src, dst string) error {\n\tsf, err := os.Open(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer sf.Close()\n\n\tdf, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer df.Close()\n\n\t_, err = io.Copy(df, sf)\n\treturn err\n}\n"
  },
  {
    "path": "cmd/install.go",
    "content": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\toperator \"github.com/alexellis/k3sup/pkg/operator\"\n\n\t\"errors\"\n\n\thomedir \"github.com/mitchellh/go-homedir\"\n\t\"github.com/spf13/cobra\"\n\t\"golang.org/x/crypto/ssh\"\n\t\"golang.org/x/crypto/ssh/agent\"\n\t\"golang.org/x/term\"\n)\n\nvar kubeconfig []byte\n\ntype k3sExecOptions struct {\n\tDatastore    string\n\tToken        string\n\tExtraArgs    string\n\tFlannelIPSec bool\n\tNoExtras     bool\n}\n\n// PinnedK3sChannel will track the stable channel of the K3s API,\n// so for production use, you should pin to a specific version\n// such as v1.19\n// Channels API available at:\n// https://update.k3s.io/v1-release/channels\nconst PinnedK3sChannel = \"stable\"\n\nconst getScript = \"curl -sfL https://get.k3s.io\"\n\n// MakeInstall creates the install command\nfunc MakeInstall() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"install\",\n\t\tShort: \"Install k3s on a server via SSH\",\n\t\tLong: `Install k3s on a server via SSH.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Simple installation of stable version, outputting a\n  # kubeconfig to the working directory\n  k3sup install --ip IP --user USER\n\n  # Merge kubeconfig into local file under custom context\n  k3sup install \\\n    --host HOST \\\n    --merge \\\n    --local-path $HOME/.kube/kubeconfig \\\n    --context k3s-prod-eu-1\n\n  # Only download kubeconfig\n  k3sup install --ip IP \\\n    --user USER \\\n    --skip-install\n\n  # Install a specific version on local machine without using SSH\n  k3sup install --local --k3s-version v1.25.1\n\n  # Install, passing extra args to K3s\n  k3sup install --local --k3s-extra-args=\"--data-dir /mnt/ssd/k3s\"\n\n  # Start a cluster with embedded etcd\n  k3sup install --host HOST --cluster\n\n  # Install from a specific channel\n  k3sup install --host HOST --k3s-channel [latest|stable]\n\n  # Use a custom path to your SSH key\n  k3sup install --host HOST \\\n    --ssh-key $HOME/ec2-key.pem`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().IP(\"ip\", net.ParseIP(\"127.0.0.1\"), \"Public IP of node\")\n\tcommand.Flags().String(\"user\", \"root\", \"Username for SSH login\")\n\n\tcommand.Flags().String(\"host\", \"\", \"Public hostname of node on which to install agent\")\n\n\tcommand.Flags().String(\"ssh-key\", \"~/.ssh/id_rsa\", \"The ssh key to use for remote login\")\n\tcommand.Flags().Int(\"ssh-port\", 22, \"The port on which to connect for ssh\")\n\tcommand.Flags().Bool(\"sudo\", true, \"Use sudo for installation. e.g. set to false when using the root user and no sudo is available.\")\n\tcommand.Flags().Bool(\"skip-install\", false, \"Skip the k3s installer\")\n\n\tcommand.Flags().String(\"local-path\", \"kubeconfig\", \"Local path to save the kubeconfig file\")\n\tcommand.Flags().String(\"context\", \"default\", \"Set the name of the kubeconfig context.\")\n\tcommand.Flags().Bool(\"no-extras\", false, `Disable \"servicelb\" and \"traefik\"`)\n\n\tcommand.Flags().Bool(\"ipsec\", false, \"Enforces and/or activates optional extra argument for k3s: flannel-backend option: ipsec\")\n\tcommand.Flags().Bool(\"merge\", false, `Merge the config with existing kubeconfig if it already exists.\nProvide the --local-path flag with --merge if a kubeconfig already exists in some other directory`)\n\tcommand.Flags().Bool(\"local\", false, \"Perform a local install without using ssh\")\n\tcommand.Flags().Bool(\"cluster\", false, \"Form a cluster using embedded etcd (requires K8s >= 1.19)\")\n\n\tcommand.Flags().Bool(\"print-command\", false, \"Print a command that you can use with SSH to manually recover from an error\")\n\tcommand.Flags().String(\"datastore\", \"\", \"connection-string for the k3s datastore to enable HA - i.e. \\\"mysql://username:password@tcp(hostname:3306)/database-name\\\"\")\n\tcommand.Flags().String(\"token\", \"\", \"the token used to encrypt the datastore, must be the same token for all nodes\")\n\n\tcommand.Flags().String(\"k3s-version\", \"\", \"Set a version to install, overrides k3s-channel\")\n\tcommand.Flags().String(\"k3s-extra-args\", \"\", \"Additional arguments to pass to k3s installer, wrapped in quotes (e.g. --k3s-extra-args '--disable servicelb')\")\n\tcommand.Flags().String(\"k3s-channel\", PinnedK3sChannel, \"Release channel: stable, latest, or pinned v1.19\")\n\n\tcommand.Flags().String(\"tls-san\", \"\", \"Use an additional IP or hostname for the API server\")\n\n\tcommand.PreRunE = func(command *cobra.Command, args []string) error {\n\n\t\tlocal, err := command.Flags().GetBool(\"local\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !local {\n\t\t\t_, err = command.Flags().GetString(\"host\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetIP(\"ip\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetInt(\"ssh-port\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tcommand.RunE = func(command *cobra.Command, args []string) error {\n\n\t\tfmt.Printf(\"Running: k3sup install\\n\")\n\n\t\tlocalKubeconfig, _ := command.Flags().GetString(\"local-path\")\n\n\t\tskipInstall, err := command.Flags().GetBool(\"skip-install\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ttlsSAN, _ := command.Flags().GetString(\"tls-san\")\n\n\t\tuseSudo, err := command.Flags().GetBool(\"sudo\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tsudoPrefix := \"\"\n\t\tif useSudo {\n\t\t\tsudoPrefix = \"sudo \"\n\t\t}\n\n\t\tk3sVersion, err := command.Flags().GetString(\"k3s-version\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk3sExtraArgs, err := command.Flags().GetString(\"k3s-extra-args\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk3sChannel, err := command.Flags().GetString(\"k3s-channel\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk3sNoExtras, err := command.Flags().GetBool(\"no-extras\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tflannelIPSec, _ := command.Flags().GetBool(\"ipsec\")\n\n\t\tlocal, _ := command.Flags().GetBool(\"local\")\n\n\t\tip, err := command.Flags().GetIP(\"ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\thost, err := command.Flags().GetString(\"host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(host) == 0 {\n\t\t\thost = ip.String()\n\t\t}\n\n\t\tlog.Println(host)\n\n\t\tcluster, _ := command.Flags().GetBool(\"cluster\")\n\t\tdatastore, _ := command.Flags().GetString(\"datastore\")\n\t\tprintCommand, err := command.Flags().GetBool(\"print-command\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tmerge, err := command.Flags().GetBool(\"merge\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontext, err := command.Flags().GetString(\"context\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ttoken, err := command.Flags().GetString(\"token\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(datastore) > 0 {\n\t\t\tif strings.Index(datastore, \"ssl-mode=REQUIRED\") > -1 {\n\t\t\t\treturn fmt.Errorf(\"remove ssl-mode=REQUIRED from your datastore string, it is not supported by the k3s syntax\")\n\t\t\t}\n\t\t\tif strings.Index(datastore, \"mysql\") > -1 && strings.Index(datastore, \"tcp\") == -1 {\n\t\t\t\treturn fmt.Errorf(\"you must specify the mysql host as tcp(host:port) or tcp(ip:port), see the k3s docs for more: https://rancher.com/docs/k3s/latest/en/installation/ha\")\n\t\t\t}\n\n\t\t\tif token == \"\" {\n\t\t\t\treturn fmt.Errorf(\"you must provide the token when using an external datastore. Make sure to use the same token as other nodes\")\n\t\t\t}\n\t\t}\n\n\t\tinstallk3sExec := makeInstallExec(cluster, host, tlsSAN,\n\t\t\tk3sExecOptions{\n\t\t\t\tDatastore:    datastore,\n\t\t\t\tToken:        token,\n\t\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\t\tNoExtras:     k3sNoExtras,\n\t\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t\t})\n\n\t\tif len(k3sVersion) == 0 && len(k3sChannel) == 0 {\n\t\t\treturn fmt.Errorf(\"give a value for --k3s-version or --k3s-channel\")\n\t\t}\n\n\t\tinstallStr := createVersionStr(k3sVersion, k3sChannel)\n\n\t\tinstallK3scommand := fmt.Sprintf(\"%s | %s %s sh -\\n\", getScript, installk3sExec, installStr)\n\n\t\tgetConfigcommand := fmt.Sprintf(\"%scat /etc/rancher/k3s/k3s.yaml\\n\", sudoPrefix)\n\n\t\tif local {\n\t\t\toperator := operator.ExecOperator{}\n\n\t\t\tif !skipInstall {\n\t\t\t\tfmt.Printf(\"Executing: %s\\n\", installK3scommand)\n\n\t\t\t\tres, err := operator.Execute(installK3scommand)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif res.ExitCode != 0 {\n\t\t\t\t\tif len(res.StdErr) > 0 {\n\t\t\t\t\t\tfmt.Printf(\"stderr: %q\", res.StdErr)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif len(res.StdOut) > 0 {\n\t\t\t\t\tfmt.Printf(\"stdout: %q\", res.StdOut)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfmt.Printf(\"Skipping local installation\\n\")\n\t\t\t}\n\n\t\t\tif err = obtainKubeconfig(operator, getConfigcommand, host, context, localKubeconfig, merge); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\n\t\tfmt.Println(\"Public IP: \" + host)\n\n\t\tport, _ := command.Flags().GetInt(\"ssh-port\")\n\t\tuser, _ := command.Flags().GetString(\"user\")\n\t\tsshKey, _ := command.Flags().GetString(\"ssh-key\")\n\n\t\tsshKeyPath := expandPath(sshKey)\n\t\taddress := fmt.Sprintf(\"%s:%d\", host, port)\n\n\t\tsshOperator, sshOperatorDone, errored, err := connectOperator(user, address, sshKeyPath)\n\t\tif errored {\n\t\t\treturn err\n\t\t}\n\n\t\tif sshOperatorDone != nil {\n\n\t\t\tdefer sshOperatorDone()\n\t\t}\n\n\t\tif !skipInstall {\n\n\t\t\tif printCommand {\n\t\t\t\tfmt.Printf(\"ssh: %s\\n\", installK3scommand)\n\t\t\t}\n\n\t\t\tres, err := sshOperator.Execute(installK3scommand)\n\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error received processing command: %s\", err)\n\t\t\t}\n\n\t\t\tfmt.Printf(\"Result: %s %s\\n\", string(res.StdOut), string(res.StdErr))\n\t\t}\n\n\t\tif printCommand {\n\t\t\tfmt.Printf(\"ssh: %s\\n\", getConfigcommand)\n\t\t}\n\n\t\tif err = obtainKubeconfig(sshOperator, getConfigcommand, host, context, localKubeconfig, merge); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn command\n}\n\ntype DoneFunc func()\n\n// connectOperator\n//\n// Try SSH agent without parsing key files, will succeed if the user\n// has already added a key to the SSH Agent, or if using a configured\n// smartcard.\n//\n// If the initial connection attempt fails fall through to the using\n// the supplied/default private key file\n// DoneFunc should be called by the caller to close the SSH connection when done\nfunc connectOperator(user string, address string, sshKeyPath string) (*operator.SSHOperator, DoneFunc, bool, error) {\n\tvar sshOperator *operator.SSHOperator\n\tvar initialSSHErr error\n\tvar closeSSHAgentFunc func() error\n\n\tdoneFunc := func() {\n\t\tif sshOperator != nil {\n\t\t\tsshOperator.Close()\n\t\t}\n\t\tif closeSSHAgentFunc != nil {\n\t\t\tcloseSSHAgentFunc()\n\t\t}\n\t}\n\n\tif runtime.GOOS != \"windows\" {\n\t\tvar sshAgentAuthMethod ssh.AuthMethod\n\t\tsshAgentAuthMethod, initialSSHErr = sshAgentOnly()\n\t\tif initialSSHErr == nil {\n\n\t\t\tconfig := &ssh.ClientConfig{\n\t\t\t\tUser:            user,\n\t\t\t\tAuth:            []ssh.AuthMethod{sshAgentAuthMethod},\n\t\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t\t}\n\n\t\t\tsshOperator, initialSSHErr = operator.NewSSHOperator(address, config)\n\t\t}\n\t} else {\n\t\tinitialSSHErr = errors.New(\"ssh-agent unsupported on windows\")\n\t}\n\n\tif initialSSHErr != nil {\n\t\tpublicKeyFileAuth, closeSSHAgent, err := loadPublickey(sshKeyPath)\n\t\tif err != nil {\n\t\t\treturn nil, nil, true, fmt.Errorf(\"unable to load the ssh key with path %q: %w\", sshKeyPath, err)\n\t\t}\n\n\t\tdefer closeSSHAgent()\n\n\t\tconfig := &ssh.ClientConfig{\n\t\t\tUser:            user,\n\t\t\tAuth:            []ssh.AuthMethod{publicKeyFileAuth},\n\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t}\n\n\t\tsshOperator, err = operator.NewSSHOperator(address, config)\n\t\tif err != nil {\n\t\t\treturn nil, nil, true, fmt.Errorf(\"unable to connect to %s over ssh: %w\", address, err)\n\t\t}\n\t}\n\n\treturn sshOperator, doneFunc, false, nil\n}\n\nfunc sshAgentOnly() (ssh.AuthMethod, error) {\n\tsshAgent, err := net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn ssh.PublicKeysCallback(agent.NewClient(sshAgent).Signers), nil\n}\n\nfunc obtainKubeconfig(operator operator.CommandOperator, getConfigcommand, host, context, localKubeconfig string, merge bool) error {\n\tres, err := operator.ExecuteStdio(getConfigcommand, false)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error received processing command: %s\", err)\n\t}\n\n\tabsPath, _ := filepath.Abs(expandPath(localKubeconfig))\n\n\tkubeconfig := rewriteKubeconfig(string(res.StdOut), host, context)\n\n\tif merge {\n\t\t// Create a merged kubeconfig\n\t\tkubeconfig, err = mergeConfigs(absPath, context, []byte(kubeconfig))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Create a new kubeconfig\n\tif err := writeConfig(absPath, []byte(kubeconfig), context, false); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Generates config files give the path to file: string and the data: []byte\nfunc writeConfig(path string, data []byte, context string, suppressMessage bool) error {\n\tabsPath, _ := filepath.Abs(path)\n\tif !suppressMessage {\n\t\tfmt.Printf(`Saving file to: %s\n\n# Test your cluster with:\nexport KUBECONFIG=%s\nkubectl config use-context %s\nkubectl get node -o wide\n\n%s\n`,\n\t\t\tabsPath,\n\t\t\tabsPath,\n\t\t\tcontext,\n\t\t\tpkg.SupportMessageShort)\n\t}\n\n\tif err := os.WriteFile(absPath, []byte(data), 0600); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc mergeConfigs(localKubeconfigPath, context string, k3sconfig []byte) ([]byte, error) {\n\t// Create a temporary kubeconfig to store the config of the newly create k3s cluster\n\tfile, err := os.CreateTemp(os.TempDir(), \"k3s-temp-*\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not generate a temporary file to store the kubeconfig: %w\", err)\n\t}\n\n\tdefer func() {\n\t\t// Remove the temporarily generated file, even if there is an error and the\n\t\t// function returns early\n\t\tif err = os.Remove(file.Name()); err != nil {\n\t\t\tlog.Printf(\"could not remove temporary kubeconfig file: %s %s\", file.Name(), err)\n\t\t}\n\t}()\n\n\tif err := writeConfig(file.Name(), []byte(k3sconfig), context, true); err != nil {\n\t\treturn nil, err\n\t}\n\n\tfmt.Printf(\"Merging config into file: %s\\n\", localKubeconfigPath)\n\n\t// Pick between ; or : for path concatenation\n\tvar joinChar string\n\tif runtime.GOOS == \"windows\" {\n\t\tjoinChar = \";\"\n\t} else {\n\t\tjoinChar = \":\"\n\t}\n\n\tappendKubeConfigENV := fmt.Sprintf(\"KUBECONFIG=%s%s%s\",\n\t\tlocalKubeconfigPath,\n\t\tjoinChar,\n\t\tfile.Name())\n\n\t// Merge the two kubeconfigs and read the output into 'data'\n\tcmd := exec.Command(\"kubectl\", \"config\", \"view\", \"--merge\", \"--flatten\")\n\tcmd.Env = append(os.Environ(), appendKubeConfigENV)\n\tdata, err := cmd.Output()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not merge kubeconfig: %w\", err)\n\t}\n\n\tif err := file.Close(); err != nil {\n\t\treturn nil, fmt.Errorf(\"could not close temporary kubeconfig file: %s %w\",\n\t\t\tfile.Name(), err)\n\t}\n\n\treturn data, nil\n}\n\nfunc expandPath(path string) string {\n\tres, _ := homedir.Expand(path)\n\treturn res\n}\n\nfunc sshAgent(publicKeyPath string) (ssh.AuthMethod, func() error) {\n\tif sshAgentConn, err := net.Dial(\"unix\", os.Getenv(\"SSH_AUTH_SOCK\")); err == nil {\n\t\tsshAgent := agent.NewClient(sshAgentConn)\n\n\t\tkeys, _ := sshAgent.List()\n\t\tif len(keys) == 0 {\n\t\t\treturn nil, sshAgentConn.Close\n\t\t}\n\n\t\tpubkey, err := os.ReadFile(publicKeyPath)\n\t\tif err != nil {\n\t\t\treturn nil, sshAgentConn.Close\n\t\t}\n\n\t\tauthkey, _, _, _, err := ssh.ParseAuthorizedKey(pubkey)\n\t\tif err != nil {\n\t\t\treturn nil, sshAgentConn.Close\n\t\t}\n\t\tparsedkey := authkey.Marshal()\n\n\t\tfor _, key := range keys {\n\t\t\tif bytes.Equal(key.Blob, parsedkey) {\n\t\t\t\treturn ssh.PublicKeysCallback(sshAgent.Signers), sshAgentConn.Close\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, func() error { return nil }\n}\n\nfunc loadPublickey(path string) (ssh.AuthMethod, func() error, error) {\n\tnoopCloseFunc := func() error { return nil }\n\n\tkey, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn nil, noopCloseFunc, fmt.Errorf(\"unable to read file: %s, %s\", path, err)\n\t}\n\n\tsigner, err := ssh.ParsePrivateKey(key)\n\tif err != nil {\n\t\tif _, ok := err.(*ssh.PassphraseMissingError); !ok {\n\t\t\treturn nil, noopCloseFunc, fmt.Errorf(\"unable to parse private key: %s\", err.Error())\n\t\t}\n\n\t\tagent, close := sshAgent(path + \".pub\")\n\t\tif agent != nil {\n\t\t\treturn agent, close, nil\n\t\t}\n\n\t\tdefer close()\n\n\t\tfmt.Printf(\"Enter passphrase for '%s': \", path)\n\t\tSTDIN := int(os.Stdin.Fd())\n\t\tbytePassword, _ := term.ReadPassword(STDIN)\n\n\t\t// Ignore any error from reading stdin to retain existing behaviour for unit test in\n\t\t// install_test.go\n\n\t\t// if err != nil {\n\t\t// \treturn nil, noopCloseFunc, fmt.Errorf(\"reading password from stdin failed: %s\", err.Error())\n\t\t// }\n\n\t\tfmt.Println()\n\n\t\tsigner, err = ssh.ParsePrivateKeyWithPassphrase(key, bytePassword)\n\t\tif err != nil {\n\t\t\treturn nil, noopCloseFunc, fmt.Errorf(\"parse private key with passphrase failed: %s\", err)\n\t\t}\n\t}\n\n\treturn ssh.PublicKeys(signer), noopCloseFunc, nil\n}\n\n// rewriteKubeconfig replaces the IP address of the server with the IP address\n// it also changes the context from \"default\" to the value of the --context flag\nfunc rewriteKubeconfig(kubeconfig string, host string, context string) []byte {\n\tif context == \"\" {\n\t\tcontext = \"default\"\n\t}\n\n\tkubeconfigReplacer := strings.NewReplacer(\n\t\t\"127.0.0.1\", host,\n\t\t\"localhost\", host,\n\t\t\"default\", context,\n\t)\n\n\treturn []byte(kubeconfigReplacer.Replace(kubeconfig))\n}\n\nfunc makeInstallExec(cluster bool, host, tlsSAN string, options k3sExecOptions) string {\n\textraArgs := []string{}\n\tif len(options.Datastore) > 0 {\n\t\textraArgs = append(extraArgs, fmt.Sprintf(\"--datastore-endpoint %s\", options.Datastore))\n\t\textraArgs = append(extraArgs, fmt.Sprintf(\"--token %s\", options.Token))\n\t}\n\tif options.FlannelIPSec {\n\t\textraArgs = append(extraArgs, \"--flannel-backend ipsec\")\n\t}\n\n\tif options.NoExtras {\n\t\textraArgs = append(extraArgs, \"--disable servicelb\")\n\t\textraArgs = append(extraArgs, \"--disable traefik\")\n\t}\n\n\textraArgs = append(extraArgs, options.ExtraArgs)\n\textraArgsCmdline := \"\"\n\tfor _, a := range extraArgs {\n\t\textraArgsCmdline += a + \" \"\n\t}\n\n\tinstallExec := \"INSTALL_K3S_EXEC='server\"\n\tif cluster {\n\t\tinstallExec += \" --cluster-init\"\n\t}\n\n\tsan := host\n\tif len(tlsSAN) > 0 {\n\t\tsan = tlsSAN\n\t}\n\tinstallExec += fmt.Sprintf(\" --tls-san %s\", san)\n\n\tif trimmed := strings.TrimSpace(extraArgsCmdline); len(trimmed) > 0 {\n\t\tinstallExec += fmt.Sprintf(\" %s\", trimmed)\n\t}\n\n\tinstallExec += \"'\"\n\n\treturn installExec\n}\n"
  },
  {
    "path": "cmd/install_test.go",
    "content": "package cmd\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"regexp\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// To regenerate:\n// openssl genrsa -des3 -out /tmp/id_rsa_encrypted 2048\nconst privateKey = `-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info: DES-EDE3-CBC,4FA02C824DA7DA35\n\n0MxJJqh8FGEciV4fkZzq7bCfKmPy5a3x9eJ+8sY+ssNGG8cLMdV2uDPMrarssjBK\nQtaEFUMu2f2lxuXYvPzZtSQNkcUUj2kBJCxgdrs7mGLgqnLOYkbkWA3rUiiNYf2S\nUofpsAO4gVWcQ4HBtnWW6skQp4fa0fdfg8elKlOrM0wcRX890attpyCCbfEAtn/v\n6z31ezObnGQOFSZ9kM7icbAM8pPgjex3kno5kxzVfpyL+5pq36AyFoFBN1wzYzMf\ngpwtr/m+Kw/KUWVGFKXLKgFSe9aF/dIXisdVCJze+2uQEBDXZo1OiJ3rflrTKwlB\nt2NNLPdd23MOHK8B8dBWhitppBqloy68Thfw0cFq2E4qtUIl9SqtBhcQ118E0Z/7\nUGVg6Ki+sgBO5fHcQUnDn7DGV8/Gawl+ZOhvGkD9C2Q/vK/SaKEg3X7ap4Oo2/em\nNGVVnxCpgd3GfVHsZFHjRvt/YYQtBHdAhH8cU45WlRaLbUyKSyfq7TIAzDa04bl+\nVMytKkfwYoPG8E3POABZ2lOgDWeBQeK3eP7EkxTkv3sSahWIwFE1HaBZmhoL27vH\nnecstfLEHqKkONvaXzqSbKk7e0GXKooSgZS2NJP7wJSX4e5CbOBrM4hf69CIG5bm\nrPPYs9mhxsa+iP4X5EVxdr1IEUTzwqeLB+/e/C/+mbs37L7tv3yvKC8UG8gXr1jC\nqzm+V3SSH9W5tgqDx97ljuDqLXgZl158W5NbYIwXB7FazU1DEJAOGSgu21w8XqlF\nSmxKXJHAjLwGzkygNGZYRGllq8GppZxLeUZHmlL+F490BclIdxCaOir//Bqd+a8a\nbs3Q7D57kuo003x9z0e044anmANdmEFSjfPG7ajHUfm7EqsQ4pZOYp4twllOJkY5\nYffoe94wdYbMGtrBKY9xeZPgecDZpjMv1g6pB5Gt6p4VLz/U2rstTkjqiHTZfIej\ntphVIzOTpsfVNMG4As3WOapz+9MH2kzEKORAHpQpZenyvcAfhJJa404riZ3HJ++O\nNmc7ASSirGNty1BTJKKQtN/QDvVbM011jUpuQxbEwfUDAUlQU4g5YElfMw3l9tDo\njWM4jimYxGaeaTI2C6hjy7pLMWCywkOGrKVKuii8EI8vd4Mw9jTIMRQzBotzEBFn\nqAy3PMlnGd/CDs/HPAWqPWEloU9bcY8oP954EEfNZoNz95u6VMJkqfM/ynu1yBEl\nFjG6pf31NEqjYTeFmJROozLGLxdPTrchn/MYU60oG/eJfY+eZ02h8J58yC67aG/f\n7tCUfB8UrQH1s16BY2j9EM6KPbX3Hh8VXiKb7/UzIPtD9aD5HKzl7K3fIbi+aQcX\nySQXENXiPpieDZj7kKp9VskNjpLyXyR1BN7Tf3eIZ6N1gK1d6esZMhXhPR5S4LT9\nF8ZD5KeHVWB6hOaodWr/bhfEVb8E67/OcnLQM8iKdBfqkoPDInVIXGkt8FXQfiB0\nI+rSXfppnf7bhQK3HLeU27Ca6zxQYZ7TI6bXTRBjozFakKkQ+8xcfCVzZ/0/oZgu\nkfFJfrUjElq6Bx9oPPxc2vD40gqnYL57A+Y+X+A0kL4fO7pfh2VxOw==\n-----END RSA PRIVATE KEY-----\n`\n\nfunc Test_loadPublickeyEncrypted(t *testing.T) {\n\twant := &ssh.PassphraseMissingError{}\n\n\ttmpfile, err := os.CreateTemp(\"\", \"key\")\n\tif err != nil {\n\t\tt.Error(err)\n\t}\n\n\tfileName := tmpfile.Name()\n\tdefer os.Remove(fileName)\n\tif _, err := tmpfile.Write([]byte(privateKey)); err != nil {\n\t\tt.Fatalf(\"unable to write test file %s, %s\", fileName, err)\n\t}\n\n\ttmpfile.Close()\n\t_, _, err = loadPublickey(fileName)\n\tif errors.Is(err, want) {\n\t\tt.Fatalf(\"want: %q, but got: %q\", want, err.Error())\n\t}\n}\n\nconst kubeconfigExample = `\napiVersion: v1\nclusters:\n- cluster:\n    certificate-authority-data: DATA+OMITTED\n    server: https://localhost:6443\n  name: default\ncontexts:\n- context:\n    cluster: default\n    user: default\n  name: default\ncurrent-context: default\nkind: Config\npreferences: {}\nusers:\n- name: default\n  user:\n    password: 5ceb3a3e93621d265fd147929f3ace84\n    username: admin\n`\n\nfunc Test_RewriteKubeconfig(t *testing.T) {\n\tvar ip = \"192.168.0.25\"\n\tvar context = \"context-test\"\n\n\t// Test master ip rewrite\n\tkubeconfig = rewriteKubeconfig(kubeconfigExample, ip, context)\n\n\tre := regexp.MustCompile(`server:\\s?https://(.*):\\d+`)\n\tgroup := re.FindSubmatch(kubeconfig)\n\n\tif len(group) == 0 || string(group[1]) != ip {\n\t\tt.Fatalf(\"unexpected error, got: %q, want: %q.\", string(group[1]), ip)\n\t}\n\n\tkubeconfigExampleIPLocal := strings.Replace(kubeconfigExample, \"localhost\", \"127.0.0.1\", -1)\n\tkubeconfig = rewriteKubeconfig(kubeconfigExampleIPLocal, ip, context)\n\n\tgroup = re.FindSubmatch(kubeconfig)\n\tif len(group) == 0 || string(group[1]) != ip {\n\t\tt.Fatalf(\"unexpected error, got: %q, want: %q.\", string(group[1]), ip)\n\t}\n\n\t// Test context\n\tre = regexp.MustCompile(`default`)\n\texpectedContextsToReplace := re.FindAllStringIndex(kubeconfigExample, -1)\n\n\tkubeconfig = rewriteKubeconfig(kubeconfigExample, ip, \"\")\n\tmatch := re.FindAllIndex(kubeconfig, -1)\n\n\tif len(match) != len(expectedContextsToReplace) {\n\t\tt.Fatalf(\"unexpected error, got: %q, want: %q.\", len(match), len(expectedContextsToReplace))\n\t}\n\n\tkubeconfig = rewriteKubeconfig(kubeconfigExample, ip, context)\n\n\tre = regexp.MustCompile(`context-test`)\n\tmatch = re.FindAllIndex(kubeconfig, -1)\n\n\tif len(match) != len(expectedContextsToReplace) {\n\t\tt.Fatalf(\"unexpected error, got: %q, want: %q.\", len(match), len(expectedContextsToReplace))\n\t}\n}\n\nfunc Test_makeInstallExec(t *testing.T) {\n\tcluster := false\n\tdatastore := \"\"\n\tflannelIPSec := false\n\tk3sNoExtras := false\n\tk3sExtraArgs := \"\"\n\tip := \"raspberrypi.local\"\n\ttlsSAN := \"\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --tls-san raspberrypi.local'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n\nfunc Test_makeInstallExec_Cluster(t *testing.T) {\n\tcluster := true\n\tdatastore := \"\"\n\tflannelIPSec := false\n\tk3sNoExtras := false\n\tk3sExtraArgs := \"\"\n\tip := \"127.0.0.1\"\n\ttlsSAN := \"\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --cluster-init --tls-san 127.0.0.1'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n\nfunc Test_makeInstallExec_SAN(t *testing.T) {\n\tcluster := false\n\tdatastore := \"\"\n\tflannelIPSec := false\n\tk3sNoExtras := false\n\tk3sExtraArgs := \"\"\n\tip := \"127.0.0.1\"\n\ttlsSAN := \"192.168.0.1\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --tls-san 192.168.0.1'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n\nfunc Test_makeInstallExec_IPSec(t *testing.T) {\n\tcluster := false\n\tdatastore := \"\"\n\tflannelIPSec := true\n\tk3sNoExtras := false\n\tk3sExtraArgs := \"\"\n\tip := \"127.0.0.1\"\n\ttlsSAN := \"\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --tls-san 127.0.0.1 --flannel-backend ipsec'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n\nfunc Test_makeInstallExec_Datastore(t *testing.T) {\n\tcluster := false\n\tdatastore := \"mysql://doadmin:show-password@tcp(db-mysql-lon1-40939-do-user-2197152-0.b.db.ondigitalocean.com:25060)/defaultdb\"\n\tflannelIPSec := false\n\tk3sNoExtras := false\n\tk3sExtraArgs := \"\"\n\ttoken := \"this-token\"\n\tip := \"127.0.0.1\"\n\ttlsSAN := \"192.168.0.1\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tToken:        token,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --tls-san 192.168.0.1 --datastore-endpoint mysql://doadmin:show-password@tcp(db-mysql-lon1-40939-do-user-2197152-0.b.db.ondigitalocean.com:25060)/defaultdb --token this-token'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n\nfunc Test_makeInstallExec_Datastore_NoExtras(t *testing.T) {\n\tcluster := false\n\tdatastore := \"mysql://doadmin:show-password@tcp(db-mysql-lon1-40939-do-user-2197152-0.b.db.ondigitalocean.com:25060)/defaultdb\"\n\tflannelIPSec := false\n\tk3sNoExtras := true\n\ttoken := \"this-token\"\n\tk3sExtraArgs := \"\"\n\tip := \"raspberrypi.local\"\n\ttlsSAN := \"192.168.0.1\"\n\tgot := makeInstallExec(cluster, ip, tlsSAN,\n\t\tk3sExecOptions{\n\t\t\tDatastore:    datastore,\n\t\t\tToken:        token,\n\t\t\tFlannelIPSec: flannelIPSec,\n\t\t\tNoExtras:     k3sNoExtras,\n\t\t\tExtraArgs:    k3sExtraArgs,\n\t\t})\n\twant := \"INSTALL_K3S_EXEC='server --tls-san 192.168.0.1 --datastore-endpoint mysql://doadmin:show-password@tcp(db-mysql-lon1-40939-do-user-2197152-0.b.db.ondigitalocean.com:25060)/defaultdb --token this-token --disable servicelb --disable traefik'\"\n\tif got != want {\n\t\tt.Errorf(\"want: %q, got: %q\", want, got)\n\t}\n}\n"
  },
  {
    "path": "cmd/join.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"path\"\n\t\"runtime\"\n\t\"strings\"\n\n\t\"errors\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\toperator \"github.com/alexellis/k3sup/pkg/operator\"\n\t\"github.com/spf13/cobra\"\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// MakeJoin creates the join command\nfunc MakeJoin() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"join\",\n\t\tShort: \"Install the k3s agent on a remote host and join it to an existing server\",\n\t\tLong: `Install the k3s agent on a remote host and join it to an existing server\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Install K3s joining a cluster as an agent\n  k3sup join \\\n    --user AGENT_USER \\\n    --ip AGENT_IP \\\n    --server-ip IP \\\n    --server-user SERVER_USER\n\n  # Install K3s joining a cluster as another server\n  k3sup join \\\n    --user AGENT_USER \\\n    --ip AGENT_IP \\\n    --server \\\n    --server-ip IP \\\n    --server-user SERVER_USER\n\n  # Join whilst specifying a channel for the k3sup version\n  k3sup join --user pi \\\n    --server-host HOST \\\n    --host HOST \\\n    --k3s-channel latest`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().IP(\"ip\", net.ParseIP(\"127.0.0.1\"), \"Public IP of node on which to install agent\")\n\tcommand.Flags().IP(\"server-ip\", net.ParseIP(\"127.0.0.1\"), \"Public IP of an existing k3s server\")\n\n\tcommand.Flags().String(\"host\", \"\", \"Public hostname of node on which to install agent\")\n\tcommand.Flags().String(\"server-host\", \"\", \"Public hostname of an existing k3s server\")\n\tcommand.Flags().String(\"server-url\", \"\", \"If different from server-ip or server-host, the URL of the server to join\")\n\n\tcommand.Flags().String(\"user\", \"root\", \"Username for SSH login\")\n\tcommand.Flags().String(\"server-user\", \"root\", \"Server username for SSH login (Default to --user)\")\n\n\tcommand.Flags().String(\"ssh-key\", \"~/.ssh/id_rsa\", \"The ssh key to use for remote login\")\n\tcommand.Flags().Int(\"ssh-port\", 22, \"The port on which to connect for ssh\")\n\tcommand.Flags().Int(\"server-ssh-port\", 22, \"The port on which to connect to server for ssh (Default to --ssh-port)\")\n\tcommand.Flags().Bool(\"skip-install\", false, \"Skip the k3s installer\")\n\tcommand.Flags().Bool(\"sudo\", true, \"Use sudo for installation. e.g. set to false when using the root user and no sudo is available.\")\n\n\tcommand.Flags().Bool(\"server\", false, \"Join the cluster as a server rather than as an agent for the embedded etcd mode\")\n\tcommand.Flags().Bool(\"no-extras\", false, `Disable \"servicelb\" and \"traefik\", when using --server flag`)\n\tcommand.Flags().Bool(\"print-command\", false, \"Print a command that you can use with SSH to manually recover from an error\")\n\tcommand.Flags().String(\"node-token-path\", \"\", \"file containing --node-token\")\n\tcommand.Flags().String(\"node-token\", \"\", \"prefetched token used by nodes to join the cluster\")\n\n\tcommand.Flags().String(\"k3s-extra-args\", \"\", \"Additional arguments to pass to k3s installer, wrapped in quotes (e.g. --k3s-extra-args '--node-taint key=value:NoExecute')\")\n\tcommand.Flags().String(\"k3s-version\", \"\", \"Set a version to install, overrides k3s-channel\")\n\tcommand.Flags().String(\"k3s-channel\", PinnedK3sChannel, \"Release channel: stable, latest, or i.e. v1.19\")\n\n\tcommand.Flags().String(\"tls-san\", \"\", \"Use an additional IP or hostname for the API server, when using --server flag\")\n\n\tcommand.Flags().String(\"server-data-dir\", \"/var/lib/rancher/k3s/\", \"Override the path used to fetch the node-token from the server\")\n\n\tcommand.RunE = func(command *cobra.Command, args []string) error {\n\t\tfmt.Printf(\"Running: k3sup join\\n\")\n\n\t\tip, err := command.Flags().GetIP(\"ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tvar nodeToken string\n\n\t\tif command.Flags().Changed(\"node-token\") {\n\t\t\tnodeToken, _ = command.Flags().GetString(\"node-token\")\n\t\t} else if command.Flags().Changed(\"node-token-path\") {\n\t\t\tnodeTokenPath, _ := command.Flags().GetString(\"node-token-path\")\n\t\t\tif len(nodeTokenPath) > 0 {\n\t\t\t\tdata, err := os.ReadFile(nodeTokenPath)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tnodeToken = strings.TrimSpace(string(data))\n\t\t\t}\n\t\t}\n\n\t\thost, err := command.Flags().GetString(\"host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(host) == 0 {\n\t\t\thost = ip.String()\n\t\t}\n\n\t\tdataDir, err := command.Flags().GetString(\"server-data-dir\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(dataDir) == 0 {\n\t\t\treturn fmt.Errorf(\"--server-data-dir must be set\")\n\t\t}\n\n\t\tif !strings.HasPrefix(dataDir, \"/\") {\n\t\t\treturn fmt.Errorf(\"--server-data-dir must begin with /\")\n\t\t}\n\n\t\tserverIP, err := command.Flags().GetIP(\"server-ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tserverHost, err := command.Flags().GetString(\"server-host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(serverHost) == 0 {\n\t\t\tserverHost = serverIP.String()\n\t\t}\n\n\t\tserverURL, err := command.Flags().GetString(\"server-url\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfmt.Printf(\"Joining %s => %s\\n\", host, serverHost)\n\t\tif len(serverURL) > 0 {\n\t\t\tfmt.Printf(\"Server join URL: %s\\n\", serverURL)\n\t\t}\n\n\t\tuser, _ := command.Flags().GetString(\"user\")\n\n\t\tserverUser := user\n\t\tif command.Flags().Changed(\"server-user\") {\n\t\t\tserverUser, _ = command.Flags().GetString(\"server-user\")\n\t\t}\n\n\t\tsshKey, _ := command.Flags().GetString(\"ssh-key\")\n\t\tserver, err := command.Flags().GetBool(\"server\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tport, _ := command.Flags().GetInt(\"ssh-port\")\n\t\tserverPort := port\n\t\tif command.Flags().Changed(\"server-ssh-port\") {\n\t\t\tserverPort, _ = command.Flags().GetInt(\"server-ssh-port\")\n\t\t}\n\n\t\tk3sVersion, err := command.Flags().GetString(\"k3s-version\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk3sExtraArgs, err := command.Flags().GetString(\"k3s-extra-args\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk3sChannel, err := command.Flags().GetString(\"k3s-channel\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(k3sVersion) == 0 && len(k3sChannel) == 0 {\n\t\t\treturn fmt.Errorf(\"give a value for --k3s-version or --k3s-channel\")\n\t\t}\n\n\t\tprintCommand, err := command.Flags().GetBool(\"print-command\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tuseSudo, err := command.Flags().GetBool(\"sudo\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsudoPrefix := \"\"\n\t\tif useSudo {\n\t\t\tsudoPrefix = \"sudo \"\n\t\t}\n\t\tsshKeyPath := expandPath(sshKey)\n\n\t\tif len(nodeToken) == 0 {\n\t\t\taddress := fmt.Sprintf(\"%s:%d\", serverHost, serverPort)\n\n\t\t\tsshOperator, sshOperatorDone, errored, err := connectOperator(serverUser, address, sshKeyPath)\n\t\t\tif errored {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif sshOperatorDone != nil {\n\t\t\t\tdefer sshOperatorDone()\n\t\t\t}\n\n\t\t\tgetTokenCommand := fmt.Sprintf(\"%scat %s\\n\", sudoPrefix, path.Join(dataDir, \"/server/node-token\"))\n\t\t\tif printCommand {\n\t\t\t\tfmt.Printf(\"ssh: %s\\n\", getTokenCommand)\n\t\t\t}\n\n\t\t\tstreamToStdio := false\n\t\t\tres, err := sshOperator.ExecuteStdio(getTokenCommand, streamToStdio)\n\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"unable to get join-token from server: %w\", err)\n\t\t\t}\n\n\t\t\tif len(res.StdErr) > 0 {\n\t\t\t\tfmt.Printf(\"Error or warning getting node-token: %s\\n\", res.StdErr)\n\t\t\t} else {\n\t\t\t\tfmt.Printf(\"Received node-token from %s.. ok.\\n\", serverHost)\n\t\t\t}\n\n\t\t\t// Explicit close of the SSH connection as early as possible\n\t\t\t// which complements the defer\n\t\t\tif sshOperatorDone != nil {\n\t\t\t\tsshOperatorDone()\n\t\t\t}\n\n\t\t\tnodeToken = strings.TrimSpace(string(res.StdOut))\n\t\t}\n\n\t\tif server {\n\n\t\t\ttlsSan, _ := command.Flags().GetString(\"tls-san\")\n\t\t\tnoExtras, _ := command.Flags().GetBool(\"no-extras\")\n\n\t\t\terr = setupAdditionalServer(serverHost, host, port, user, sshKeyPath, nodeToken, k3sExtraArgs, k3sVersion, k3sChannel, tlsSan, printCommand, serverURL, noExtras)\n\t\t} else {\n\t\t\terr = setupAgent(serverHost, host, port, user, sshKeyPath, nodeToken, k3sExtraArgs, k3sVersion, k3sChannel, printCommand, serverURL)\n\t\t}\n\n\t\tif err == nil {\n\t\t\tfmt.Printf(\"\\n%s\\n\", pkg.SupportMessageShort)\n\t\t}\n\n\t\treturn err\n\t}\n\n\tcommand.PreRunE = func(command *cobra.Command, args []string) error {\n\n\t\t_, err := command.Flags().GetIP(\"ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_, err = command.Flags().GetIP(\"server-ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_, err = command.Flags().GetString(\"host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_, err = command.Flags().GetString(\"server-host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t_, err = command.Flags().GetInt(\"ssh-port\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ttlsSan, err := command.Flags().GetString(\"tls-san\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tnoExtras, err := command.Flags().GetBool(\"no-extras\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(tlsSan) > 0 || noExtras {\n\t\t\tserver, err := command.Flags().GetBool(\"server\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif !server {\n\t\t\t\tif noExtras {\n\t\t\t\t\treturn fmt.Errorf(\"--no-extras can only be used with --server\")\n\t\t\t\t}\n\t\t\t\treturn fmt.Errorf(\"--tls-san can only be used with --server\")\n\t\t\t}\n\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn command\n}\n\nfunc setupAdditionalServer(serverHost, host string, port int, user, sshKeyPath, joinToken, k3sExtraArgs, k3sVersion, k3sChannel, tlsSAN string, printCommand bool, serverURL string, noExtras bool) error {\n\taddress := fmt.Sprintf(\"%s:%d\", host, port)\n\n\tvar sshOperator *operator.SSHOperator\n\tvar initialSSHErr error\n\tif runtime.GOOS != \"windows\" {\n\n\t\tvar sshAgentAuthMethod ssh.AuthMethod\n\t\tsshAgentAuthMethod, initialSSHErr = sshAgentOnly()\n\t\tif initialSSHErr == nil {\n\t\t\t// Try SSH agent without parsing key files, will succeed if the user\n\t\t\t// has already added a key to the SSH Agent, or if using a configured\n\t\t\t// smartcard\n\t\t\tconfig := &ssh.ClientConfig{\n\t\t\t\tUser:            user,\n\t\t\t\tAuth:            []ssh.AuthMethod{sshAgentAuthMethod},\n\t\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t\t}\n\n\t\t\tsshOperator, initialSSHErr = operator.NewSSHOperator(address, config)\n\t\t}\n\t} else {\n\t\tinitialSSHErr = errors.New(\"ssh-agent unsupported on windows\")\n\t}\n\n\t// If the initial connection attempt fails fall through to the using\n\t// the supplied/default private key file\n\tif initialSSHErr != nil {\n\t\tpublicKeyFileAuth, closeSSHAgent, err := loadPublickey(sshKeyPath)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to load the ssh key with path %q: %w\", sshKeyPath, err)\n\t\t}\n\n\t\tdefer closeSSHAgent()\n\n\t\tconfig := &ssh.ClientConfig{\n\t\t\tUser: user,\n\t\t\tAuth: []ssh.AuthMethod{\n\t\t\t\tpublicKeyFileAuth,\n\t\t\t},\n\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t}\n\n\t\tsshOperator, err = operator.NewSSHOperator(address, config)\n\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to connect to %s over ssh as %s: %w\", address, user, err)\n\t\t}\n\t}\n\n\tinstallStr := createVersionStr(k3sVersion, k3sChannel)\n\tserverAgent := true\n\n\tdefer sshOperator.Close()\n\n\tif noExtras {\n\t\tk3sExtraArgs += \" --disable servicelb\"\n\t\tk3sExtraArgs += \" --disable traefik\"\n\t}\n\n\tinstallk3sExec := makeJoinExec(\n\t\tserverHost,\n\t\tstrings.TrimSpace(joinToken),\n\t\tinstallStr,\n\t\tk3sExtraArgs,\n\t\tserverAgent,\n\t\tserverURL,\n\t\ttlsSAN,\n\t)\n\n\tinstallAgentServerCommand := fmt.Sprintf(\"%s | %s\", getScript, installk3sExec)\n\n\tif printCommand {\n\t\tfmt.Printf(\"ssh: %s\\n\", installAgentServerCommand)\n\t}\n\n\tres, err := sshOperator.Execute(installAgentServerCommand)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to setup agent: %w\", err)\n\t}\n\n\tif len(res.StdErr) > 0 {\n\t\tfmt.Printf(\"Logs: %s\", res.StdErr)\n\t}\n\n\tjoinRes := string(res.StdOut)\n\tfmt.Printf(\"Output: %s\", string(joinRes))\n\n\treturn nil\n}\n\nfunc setupAgent(serverHost, host string, port int, user, sshKeyPath, joinToken, k3sExtraArgs, k3sVersion, k3sChannel string, printCommand bool, serverURL string) error {\n\n\taddress := fmt.Sprintf(\"%s:%d\", host, port)\n\n\tvar sshOperator *operator.SSHOperator\n\tvar initialSSHErr error\n\tif runtime.GOOS != \"windows\" {\n\n\t\tvar sshAgentAuthMethod ssh.AuthMethod\n\t\tsshAgentAuthMethod, initialSSHErr = sshAgentOnly()\n\t\tif initialSSHErr == nil {\n\t\t\t// Try SSH agent without parsing key files, will succeed if the user\n\t\t\t// has already added a key to the SSH Agent, or if using a configured\n\t\t\t// smartcard\n\t\t\tconfig := &ssh.ClientConfig{\n\t\t\t\tUser:            user,\n\t\t\t\tAuth:            []ssh.AuthMethod{sshAgentAuthMethod},\n\t\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t\t}\n\n\t\t\tsshOperator, initialSSHErr = operator.NewSSHOperator(address, config)\n\t\t}\n\t} else {\n\t\tinitialSSHErr = errors.New(\"ssh-agent unsupported on windows\")\n\t}\n\n\t// If the initial connection attempt fails fall through to the using\n\t// the supplied/default private key file\n\tif initialSSHErr != nil {\n\t\tpublicKeyFileAuth, closeSSHAgent, err := loadPublickey(sshKeyPath)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to load the ssh key with path %q: %w\", sshKeyPath, err)\n\t\t}\n\n\t\tdefer closeSSHAgent()\n\n\t\tconfig := &ssh.ClientConfig{\n\t\t\tUser: user,\n\t\t\tAuth: []ssh.AuthMethod{\n\t\t\t\tpublicKeyFileAuth,\n\t\t\t},\n\t\t\tHostKeyCallback: ssh.InsecureIgnoreHostKey(),\n\t\t}\n\n\t\tsshOperator, err = operator.NewSSHOperator(address, config)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to connect to %s over ssh: %w\", address, err)\n\t\t}\n\t}\n\n\tdefer sshOperator.Close()\n\n\tinstallStr := createVersionStr(k3sVersion, k3sChannel)\n\n\tserverAgent := false\n\n\t// Agents don't expose an API server so don't need a TLS SAN\n\ttlsSAN := \"\"\n\tinstallK3sExec := makeJoinExec(\n\t\tserverHost,\n\t\tstrings.TrimSpace(joinToken),\n\t\tinstallStr,\n\t\tk3sExtraArgs,\n\t\tserverAgent,\n\t\tserverURL,\n\t\ttlsSAN,\n\t)\n\n\tinstallAgentCommand := fmt.Sprintf(\"%s | %s\", getScript, installK3sExec)\n\n\tif printCommand {\n\t\tfmt.Printf(\"ssh: %s\\n\", installAgentCommand)\n\t}\n\n\tres, err := sshOperator.Execute(installAgentCommand)\n\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to setup agent: %w\", err)\n\t}\n\n\tif len(res.StdErr) > 0 {\n\t\tfmt.Printf(\"Logs: %s\", res.StdErr)\n\t}\n\n\tjoinRes := string(res.StdOut)\n\tfmt.Printf(\"Output: %s\", string(joinRes))\n\n\treturn nil\n}\n\nfunc createVersionStr(k3sVersion, k3sChannel string) string {\n\tinstallStr := \"\"\n\tif len(k3sVersion) > 0 {\n\t\tinstallStr = fmt.Sprintf(\"INSTALL_K3S_VERSION='%s'\", k3sVersion)\n\t} else {\n\t\tinstallStr = fmt.Sprintf(\"INSTALL_K3S_CHANNEL='%s'\", k3sChannel)\n\t}\n\treturn installStr\n}\n\nfunc makeJoinExec(serverIP, joinToken, installStr, k3sExtraArgs string, serverAgent bool, serverURL, tlsSan string) string {\n\n\tinstallEnvVar := []string{}\n\tremoteURL := fmt.Sprintf(\"https://%s:6443\", serverIP)\n\tif len(serverURL) > 0 {\n\t\tremoteURL = serverURL\n\t}\n\n\tinstallEnvVar = append(installEnvVar, fmt.Sprintf(\"K3S_URL='%s'\", remoteURL))\n\tinstallEnvVar = append(installEnvVar, fmt.Sprintf(\"K3S_TOKEN='%s'\", joinToken))\n\tinstallEnvVar = append(installEnvVar, installStr)\n\n\tif serverAgent {\n\t\ttlsSANValue := \"\"\n\t\tif len(tlsSan) > 0 {\n\t\t\ttlsSANValue = fmt.Sprintf(\" --tls-san %s\", tlsSan)\n\t\t}\n\t\tinstallEnvVar = append(installEnvVar, fmt.Sprintf(\"INSTALL_K3S_EXEC='server --server %s%s'\", remoteURL, tlsSANValue))\n\t}\n\n\tjoinExec := strings.Join(installEnvVar, \" \")\n\tjoinExec += \" sh -s -\"\n\n\tif len(k3sExtraArgs) > 0 {\n\t\t// AE: this doesn't seem to be used\n\t\t// installEnvVar = append(installEnvVar, k3sExtraArgs)\n\n\t\tjoinExec += fmt.Sprintf(\" %s\", k3sExtraArgs)\n\t}\n\n\treturn joinExec\n}\n"
  },
  {
    "path": "cmd/join_test.go",
    "content": "package cmd\n\nimport (\n\t\"testing\"\n)\n\ntype test struct {\n\ttitle          string\n\tserverIP       string\n\tjoinToken      string\n\tinstallStr     string\n\tk3sExtraArgs   string\n\tserverAgent    bool\n\tinstallk3sExec string\n\ttlsSAN         string\n}\n\nfunc Test_makeJoinServerExec(t *testing.T) {\n\ttests := []test{\n\t\t{\n\t\t\ttitle:          \"Join Server without k3sExtraArgs\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 INSTALL_K3S_EXEC='server --server https://172.27.251.164:6443' sh -s -\",\n\t\t\tk3sExtraArgs:   \"\",\n\t\t\tserverAgent:    true,\n\t\t},\n\n\t\t{\n\t\t\ttitle:          \"Join Server with K3sExtraArgs\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 INSTALL_K3S_EXEC='server --server https://172.27.251.164:6443' sh -s - --node-taint key=value:NoExecute\",\n\t\t\tk3sExtraArgs:   \"--node-taint key=value:NoExecute\",\n\t\t\tserverAgent:    true,\n\t\t},\n\n\t\t{\n\t\t\ttitle:          \"Join Server with K3sExtraArgs and TLS SAN\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 INSTALL_K3S_EXEC='server --server https://172.27.251.164:6443 --tls-san 127.0.0.1' sh -s - --node-taint key=value:NoExecute\",\n\t\t\tk3sExtraArgs:   \"--node-taint key=value:NoExecute\",\n\t\t\tserverAgent:    true,\n\t\t\ttlsSAN:         \"127.0.0.1\",\n\t\t},\n\t\t{\n\t\t\ttitle:          \"Join agent with K3sExtraArgs\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 sh -s - --node-ip=192.0.3.4 --node-external-ip=85.159.215.50\",\n\t\t\tk3sExtraArgs:   \"--node-ip=192.0.3.4 --node-external-ip=85.159.215.50\",\n\t\t\tserverAgent:    false,\n\t\t\ttlsSAN:         \"127.0.0.1\",\n\t\t},\n\t}\n\tfor _, tc := range tests {\n\t\tt.Run(tc.title, func(t *testing.T) {\n\t\t\tgot := makeJoinExec(tc.serverIP, tc.joinToken, tc.installStr, tc.k3sExtraArgs, tc.serverAgent, \"\", tc.tlsSAN)\n\n\t\t\tif got != tc.installk3sExec {\n\t\t\t\tt.Errorf(\"want:\\n%s\\n, got:\\n%s\\n\", tc.installk3sExec, got)\n\t\t\t}\n\t\t})\n\t}\n\n}\n\nfunc Test_makeJoinAgentExec(t *testing.T) {\n\ttests := []test{\n\t\t{\n\t\t\ttitle:          \"Join Agent without K3sExtraArgs\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tk3sExtraArgs:   \"\",\n\t\t\tserverAgent:    false,\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 sh -s -\",\n\t\t},\n\t\t{\n\t\t\ttitle:          \"Join Agent with K3sExtraArgs\",\n\t\t\tserverIP:       \"172.27.251.164\",\n\t\t\tjoinToken:      \"K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d\",\n\t\t\tinstallStr:     \"INSTALL_K3S_VERSION=1.18\",\n\t\t\tinstallk3sExec: \"K3S_URL='https://172.27.251.164:6443' K3S_TOKEN='K10c8bc21f68fef3f56d431a08df2e894481ab0a61a3c84cbd639b56449ad15523c::server:9d30861e1ba54177b8e4dd1426076e5d' INSTALL_K3S_VERSION=1.18 sh -s - --node-taint key=value:NoExecute\",\n\t\t\tk3sExtraArgs:   \"--node-taint key=value:NoExecute\",\n\t\t\tserverAgent:    false,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.title, func(t *testing.T) {\n\t\t\tgot := makeJoinExec(tc.serverIP, tc.joinToken, tc.installStr, tc.k3sExtraArgs, tc.serverAgent, \"\", \"\")\n\n\t\t\tif got != tc.installk3sExec {\n\t\t\t\tt.Errorf(\"want: %s, got: %s\", tc.installk3sExec, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "cmd/node-token.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\tssh \"github.com/alexellis/k3sup/pkg/operator\"\n\n\t\"github.com/spf13/cobra\"\n)\n\n// MakeNodeToken creates the node-token command\nfunc MakeNodeToken() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"node-token\",\n\t\tShort: \"Retrieve the node token from a server\",\n\t\tLong: `Retrieve the node token from a server required for a\nserver or agent to join the cluster.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Get the node token from the server and pipe it to a file\n  k3sup node-token --ip IP --user USER > token.txt\n`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().IP(\"ip\", net.ParseIP(\"127.0.0.1\"), \"Public IP of node\")\n\tcommand.Flags().String(\"user\", \"root\", \"Username for SSH login\")\n\n\tcommand.Flags().String(\"host\", \"\", \"Public hostname of node on which to install agent\")\n\n\tcommand.Flags().Bool(\"local\", false, \"Use local machine instead of ssh client\")\n\tcommand.Flags().String(\"ssh-key\", \"~/.ssh/id_rsa\", \"The ssh key to use for remote login\")\n\tcommand.Flags().Int(\"ssh-port\", 22, \"The port on which to connect for ssh\")\n\tcommand.Flags().Bool(\"sudo\", true, \"Use sudo for installation. e.g. set to false when using the root user and no sudo is available.\")\n\n\tcommand.Flags().Bool(\"print-command\", false, \"Print the command to be executed\")\n\tcommand.Flags().String(\"server-data-dir\", \"/var/lib/rancher/k3s/\", \"Override the path used to fetch the node-token from the server\")\n\n\tcommand.PreRunE = func(command *cobra.Command, args []string) error {\n\t\tlocal, err := command.Flags().GetBool(\"local\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !local {\n\t\t\t_, err = command.Flags().GetString(\"host\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetIP(\"ip\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif _, err := command.Flags().GetInt(\"ssh-port\"); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tcommand.RunE = func(command *cobra.Command, args []string) error {\n\n\t\tfmt.Fprintf(os.Stderr, \"Fetching: /etc/rancher/k3s/k3s.yaml\\n\")\n\n\t\tuseSudo, err := command.Flags().GetBool(\"sudo\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tsudoPrefix := \"\"\n\t\tif useSudo {\n\t\t\tsudoPrefix = \"sudo \"\n\t\t}\n\n\t\tlocal, _ := command.Flags().GetBool(\"local\")\n\n\t\tip, err := command.Flags().GetIP(\"ip\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\thost, err := command.Flags().GetString(\"host\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(host) == 0 {\n\t\t\thost = ip.String()\n\t\t}\n\n\t\tport, _ := command.Flags().GetInt(\"ssh-port\")\n\t\tuser, _ := command.Flags().GetString(\"user\")\n\t\tsshKey, _ := command.Flags().GetString(\"ssh-key\")\n\n\t\tdataDir, _ := command.Flags().GetString(\"server-data-dir\")\n\n\t\tsshKeyPath := expandPath(sshKey)\n\t\taddress := fmt.Sprintf(\"%s:%d\", host, port)\n\t\tif !local {\n\t\t\tfmt.Fprintf(os.Stderr, \"Remote: %s\\n\", address)\n\t\t}\n\n\t\tprintCommand := false\n\n\t\tgetTokenCommand := fmt.Sprintf(\"%scat %s\\n\", sudoPrefix, path.Join(dataDir, \"/server/node-token\"))\n\t\tif printCommand {\n\t\t\tfmt.Printf(\"ssh: %s\\n\", getTokenCommand)\n\t\t}\n\n\t\tvar operator ssh.CommandOperator\n\t\tif local {\n\t\t\toperator = ssh.ExecOperator{}\n\t\t} else {\n\t\t\tsshOperator, sshOperatorDone, errored, err := connectOperator(user, address, sshKeyPath)\n\t\t\tif errored {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\toperator = sshOperator\n\n\t\t\tif sshOperatorDone != nil {\n\t\t\t\tdefer sshOperatorDone()\n\t\t\t}\n\t\t}\n\n\t\tnodeToken, err := obtainNodeToken(operator, getTokenCommand, host)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(nodeToken) == 0 {\n\t\t\treturn fmt.Errorf(\"no node token found\")\n\t\t}\n\n\t\tfmt.Println(nodeToken)\n\t\treturn nil\n\t}\n\n\treturn command\n}\n\nfunc obtainNodeToken(operator ssh.CommandOperator, command, host string) (string, error) {\n\tres, err := operator.ExecuteStdio(command, false)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"error received processing command: %s\", err)\n\t}\n\n\treturn strings.TrimSpace(string(res.StdOut)), nil\n\n}\n"
  },
  {
    "path": "cmd/plan.go",
    "content": "package cmd\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc MakePlan() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"plan\",\n\t\tShort: \"Plan an installation of K3s.\",\n\t\tLong: `Generate a bash script or plan of installation commands for K3s for a \nHighly Available (HA) Kubernetes cluster.\n\nExamples JSON input file:\n\n[{\"hostname\": \"node-1\", \"ip\": \"192.168.128.102\"},\n{\"hostname\": \"node-2\", \"ip\": \"192.168.128.103\"},\n{\"hostname\": \"node-3\", \"ip\": \"192.168.128.104\"}]\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Generate an installation script where the first\n  # 3 available hosts are dedicated as servers, with a custom user.\n  # The remaining hosts are added as agents.\n  k3sup plan hosts.json --servers 3 --user ubuntu\n\n  # Override the TLS SAN, for HA with 5 servers specified\n  k3sup plan hosts.json --servers 5 --tls-san $SAN_IP\n`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().Int(\"servers\", 3, \"Number of servers to use from the devices file\")\n\tcommand.Flags().String(\"local-path\", \"kubeconfig\", \"Where to save the kubeconfig file\")\n\tcommand.Flags().String(\"context\", \"default\", \"Name of the kubeconfig context to use\")\n\tcommand.Flags().String(\"user\", \"root\", \"Username for SSH login\")\n\n\tcommand.Flags().String(\"ssh-key\", \"\", \"Path to the private key for SSH login\")\n\tcommand.Flags().String(\"tls-san\", \"\", \"SAN for TLS certificates, can be a comma-separated list\")\n\tcommand.Flags().String(\"server-k3s-extra-args\", \"\", \"Extra arguments to be passed into the k3s server\")\n\tcommand.Flags().String(\"agent-k3s-extra-args\", \"\", \"Extra arguments to be passed into the k3s agent\")\n\n\t// Background\n\tcommand.Flags().Bool(\"background\", false, \"Run the installation in the background for all agents/nodes after the first server is up\")\n\n\tcommand.Flags().Int(\"limit\", 0, \"Maximum number of nodes to use from the devices file, 0 to use all devices\")\n\n\tcommand.Flags().Bool(\"merge\", true, `Merge the config with existing kubeconfig if it already exists.\nProvide the --local-path flag with --merge if a kubeconfig already exists in some other directory`)\n\n\tcommand.RunE = func(cmd *cobra.Command, args []string) error {\n\n\t\tif len(args) == 0 {\n\t\t\treturn fmt.Errorf(\"give a path to a JSON file containing a list of devices\")\n\t\t}\n\n\t\tnodeLimit, _ := cmd.Flags().GetInt(\"limit\")\n\t\tname := args[0]\n\t\tdata, err := os.ReadFile(name)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tbackground, _ := cmd.Flags().GetBool(\"background\")\n\t\tmerge, _ := cmd.Flags().GetBool(\"merge\")\n\n\t\tvar hosts []Host\n\t\tif err = json.Unmarshal(data, &hosts); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tserverK3sExtraArgs, _ := cmd.Flags().GetString(\"server-k3s-extra-args\")\n\t\tagentK3sExtraArgs, _ := cmd.Flags().GetString(\"agent-k3s-extra-args\")\n\n\t\tservers, _ := cmd.Flags().GetInt(\"servers\")\n\t\tkubeconfig, _ := cmd.Flags().GetString(\"local-path\")\n\t\tcontextName, _ := cmd.Flags().GetString(\"context\")\n\t\tuser, _ := cmd.Flags().GetString(\"user\")\n\t\ttlsSan, _ := cmd.Flags().GetString(\"tls-san\")\n\n\t\ttlsSanStr := \"\"\n\t\tif len(tlsSan) > 0 {\n\t\t\ttlsSanStr = fmt.Sprintf(` \\\n--tls-san %s`, tlsSan)\n\t\t}\n\n\t\tsshKey, _ := cmd.Flags().GetString(\"ssh-key\")\n\n\t\tsshKeySt := \"\"\n\t\tif len(sshKey) > 0 {\n\t\t\tsshKeySt = fmt.Sprintf(` \\\n--ssh-key %s`, sshKey)\n\t\t}\n\n\t\tmergeStr := \"\"\n\t\tif merge {\n\t\t\tif _, err := os.Stat(kubeconfig); err == nil {\n\t\t\t\tmergeStr = \" \\n--merge\"\n\t\t\t}\n\t\t}\n\n\t\tbgStr := \"\"\n\t\tif background {\n\t\t\tbgStr = \" &\"\n\t\t}\n\n\t\tserversAdded := 0\n\t\tvar primaryServer Host\n\t\tscript := \"#!/bin/sh\\n\\n\"\n\n\t\tserverExtraArgsSt := \"\"\n\t\tif len(serverK3sExtraArgs) > 0 {\n\t\t\tserverExtraArgsSt = fmt.Sprintf(` \\\n--k3s-extra-args \"%s\"`, serverK3sExtraArgs)\n\t\t}\n\t\tagentExtraArgsSt := \"\"\n\t\tif len(agentK3sExtraArgs) > 0 {\n\t\t\tagentExtraArgsSt = fmt.Sprintf(` \\\n--k3s-extra-args \"%s\"`, agentK3sExtraArgs)\n\t\t}\n\n\t\tfor i, host := range hosts {\n\t\t\tif serversAdded == 0 {\n\n\t\t\t\tscript += `echo \"Setting up primary server 1\"\n`\n\n\t\t\t\tscript += fmt.Sprintf(`k3sup install --host %s \\\n--user %s \\\n--cluster \\\n--local-path %s \\\n--context %s%s%s%s%s\n`,\n\t\t\t\t\thost.IP,\n\t\t\t\t\tuser,\n\t\t\t\t\tkubeconfig,\n\t\t\t\t\tcontextName,\n\t\t\t\t\ttlsSanStr,\n\t\t\t\t\tserverExtraArgsSt,\n\t\t\t\t\tsshKeySt,\n\t\t\t\t\tmergeStr)\n\n\t\t\t\tscript += fmt.Sprintf(`\necho \"Fetching the server's node-token into memory\"\n\nexport NODE_TOKEN=$(k3sup node-token --host %s --user %s%s)\n`, host.IP, user, sshKeySt)\n\n\t\t\t\tserversAdded = 1\n\t\t\t\tprimaryServer = host\n\t\t\t} else if serversAdded < servers {\n\t\t\t\tscript += fmt.Sprintf(\"\\necho \\\"Setting up additional server: %d\\\"\\n\", serversAdded+1)\n\n\t\t\t\tscript += fmt.Sprintf(`k3sup join \\\n--host %s \\\n--server-host %s \\\n--server \\\n--node-token \"$NODE_TOKEN\" \\\n--user %s%s%s%s%s\n`, host.IP, primaryServer.IP, user, tlsSanStr, serverExtraArgsSt, sshKeySt, bgStr)\n\n\t\t\t\tserversAdded++\n\t\t\t} else {\n\t\t\t\tscript += fmt.Sprintf(\"\\necho \\\"Setting up worker: %d\\\"\\n\", (i+1)-serversAdded)\n\n\t\t\t\tscript += fmt.Sprintf(`k3sup join \\\n--host %s \\\n--server-host %s \\\n--node-token \"$NODE_TOKEN\" \\\n--user %s%s%s%s\n`, host.IP, primaryServer.IP, user, agentExtraArgsSt, sshKeySt, bgStr)\n\t\t\t}\n\n\t\t\tif nodeLimit > 0 && i+1 >= nodeLimit {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tfmt.Printf(\"%s\\n\", script)\n\n\t\treturn nil\n\t}\n\n\treturn command\n}\n\ntype Host struct {\n\tHostname string `json:\"hostname\"`\n\tIP       string `json:\"ip\"`\n}\n"
  },
  {
    "path": "cmd/pro.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nfunc MakePro() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"pro\",\n\t\tShort: \"Learn about K3sup Pro\",\n\t\tLong: `K3sup Pro is built for professionals, teams, and homelabs:\n\n  - IaaC/GitOps workflow with plan and apply commands\n  - Parallel installation across many nodes\n  - Rolling upgrades and day-2 operations\n  - Uninstall, exec, and get-config across your fleet\n  - Pre-download K3s binaries for efficient installations across many nodes\n  - Integrates directly with https://slicervm.com\n\nLearn more at https://github.com/alexellis/k3sup#k3sup-pro`,\n\t\tSilenceUsage: true,\n\t\tRun: func(cmd *cobra.Command, args []string) {\n\t\t\tfmt.Println(cmd.Long)\n\t\t},\n\t}\n\n\treturn command\n}\n"
  },
  {
    "path": "cmd/ready.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n\n\texecute \"github.com/alexellis/go-execute/v2\"\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc MakeReady() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"ready\",\n\t\tShort: \"Check if a cluster is ready using kubectl.\",\n\t\tLong: `Check if the K3s cluster is ready using kubectl to query the nodes.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample: `  # Check from a local file, with the context \"default\"\n  k3sup ready \\\n    --context default \\\n    --kubeconfig ./kubeconfig\n\n  # Check a merged kubeconfig with a custom context\n  k3sup ready \\\n    --context e2e \\\n    --kubeconfig $HOME/.kube/config\n`,\n\t\tSilenceUsage: true,\n\t}\n\n\tcommand.Flags().Int(\"attempts\", 25, \"Number of attempts to check for readiness\")\n\tcommand.Flags().Duration(\"pause\", time.Second*2, \"Pause between checking cluster for readiness\")\n\tcommand.Flags().String(\"kubeconfig\", \"$HOME/.kube/config\", \"Path to the kubeconfig file\")\n\tcommand.Flags().String(\"context\", \"default\", \"Name of the kubeconfig context to use\")\n\tcommand.Flags().Bool(\"quiet\", false, \"Suppress output from each attempt\")\n\n\tcommand.RunE = func(cmd *cobra.Command, args []string) error {\n\n\t\tattempts, _ := cmd.Flags().GetInt(\"attempts\")\n\t\tpause, _ := cmd.Flags().GetDuration(\"pause\")\n\t\tkubeconfig, _ := cmd.Flags().GetString(\"kubeconfig\")\n\t\tcontextName, _ := cmd.Flags().GetString(\"context\")\n\t\tquiet, _ := cmd.Flags().GetBool(\"quiet\")\n\n\t\tif len(kubeconfig) == 0 {\n\t\t\treturn fmt.Errorf(\"kubeconfig cannot be empty\")\n\t\t}\n\n\t\tif len(contextName) == 0 {\n\t\t\treturn fmt.Errorf(\"context cannot be empty\")\n\t\t}\n\n\t\tkubeconfig = os.ExpandEnv(kubeconfig)\n\n\t\t// Inspired by Kind: https://github.com/kubernetes-sigs/kind/blob/main/pkg/cluster/internal/create/actions/waitforready/waitforready.go\n\t\tfor i := 0; i < attempts; i++ {\n\t\t\tif !quiet {\n\t\t\t\tfmt.Printf(\"Checking for nodes to be ready: %d/%d \\n\", i+1, attempts)\n\t\t\t}\n\n\t\t\ttask := execute.ExecTask{\n\t\t\t\tCommand: \"kubectl\",\n\t\t\t\tArgs: []string{\n\t\t\t\t\t\"get\",\n\t\t\t\t\t\"nodes\",\n\t\t\t\t\t\"--kubeconfig=\" + kubeconfig,\n\t\t\t\t\t\"--context=\" + contextName,\n\t\t\t\t\t\"-o=jsonpath='{.items..status.conditions[-1:].status}'\",\n\t\t\t\t},\n\t\t\t\tStreamStdio: false,\n\t\t\t}\n\n\t\t\tres, err := task.Execute(cmd.Context())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif strings.Contains(res.Stderr, \"context was not found\") {\n\t\t\t\treturn fmt.Errorf(\"context %s not found in %s\", contextName, kubeconfig)\n\t\t\t}\n\n\t\t\tif res.ExitCode == 0 {\n\t\t\t\tparts := strings.Split(strings.TrimSpace(res.Stdout), \" \")\n\n\t\t\t\tready := true\n\t\t\t\tfor _, part := range parts {\n\t\t\t\t\ttrimmed := strings.TrimSpace(part)\n\t\t\t\t\ttrimmed = strings.Trim(trimmed, \"'\")\n\n\t\t\t\t\t// Note: The command is returning a single quoted string\n\t\t\t\t\tif len(trimmed) > 0 && trimmed != \"True\" {\n\t\t\t\t\t\tready = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ready {\n\t\t\t\t\tif !quiet {\n\t\t\t\t\t\tfmt.Printf(\"All node(s) are ready\\n\")\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\ttime.Sleep(pause)\n\t\t}\n\n\t\t// Wait until the default service account is created. This was causing a failure during CI.\n\t\tfor i := 0; i < attempts; i++ {\n\t\t\tif !quiet {\n\t\t\t\tfmt.Printf(\"Looking for default service account: %d/%d \\n\", i+1, attempts)\n\t\t\t}\n\n\t\t\ttask := execute.ExecTask{\n\t\t\t\tCommand: \"kubectl\",\n\t\t\t\tArgs: []string{\n\t\t\t\t\t\"get\",\n\t\t\t\t\t\"serviceaccount\",\n\t\t\t\t\t\"default\",\n\t\t\t\t\t\"--kubeconfig=\" + kubeconfig,\n\t\t\t\t\t\"--context=\" + contextName,\n\t\t\t\t},\n\t\t\t\tStreamStdio: false,\n\t\t\t}\n\n\t\t\tres, err := task.Execute(cmd.Context())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif res.ExitCode == 0 {\n\t\t\t\tif !quiet {\n\t\t\t\t\tfmt.Printf(\"Default service account is ready\\n\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ttime.Sleep(pause)\n\t\t}\n\n\t\treturn nil\n\t}\n\treturn command\n}\n"
  },
  {
    "path": "cmd/update.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc MakeUpdate() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"update\",\n\t\tShort: \"Print update instructions\",\n\t\tLong: `Print instructions for updating your version of k3sup.\n\n` + pkg.SupportMessageShort + `\n`,\n\t\tExample:      `  k3sup update`,\n\t\tSilenceUsage: false,\n\t}\n\tcommand.Run = func(cmd *cobra.Command, args []string) {\n\t\tfmt.Println(k3supUpdate)\n\t}\n\treturn command\n}\n\nconst k3supUpdate = `You can update k3sup with the following:\n\n# Use arkade, for a quick installation:\narkade get k3sup\n\n# Remove cached versions of tools\nrm -rf $HOME/.k3sup\n\n# For Linux/MacOS:\ncurl -SLfs https://get.k3sup.dev | sudo sh\n\n# For Windows (using Git Bash)\ncurl -SLfs https://get.k3sup.dev | sh\n\n# Or download from GitHub: https://github.com/alexellis/k3sup/releases\n\n` + pkg.SupportMessageShort\n"
  },
  {
    "path": "cmd/version.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/morikuni/aec\"\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\tVersion   string\n\tGitCommit string\n)\n\nfunc PrintK3supASCIIArt() {\n\tk3supLogo := aec.GreenF.Apply(k3supFigletStr)\n\n\tfmt.Print(k3supLogo)\n}\n\nfunc MakeVersion() *cobra.Command {\n\tvar command = &cobra.Command{\n\t\tUse:   \"version\",\n\t\tShort: \"Print the version\",\n\t\tExample: `  k3sup version\n` + pkg.SupportMessageShort + `\n`,\n\t\tSilenceUsage: false,\n\t}\n\tcommand.Run = func(cmd *cobra.Command, args []string) {\n\t\tPrintK3supASCIIArt()\n\t\tif len(Version) == 0 {\n\t\t\tfmt.Println(\"Version: dev\")\n\t\t} else {\n\t\t\tfmt.Println(\"Version:\", Version)\n\t\t}\n\t\tfmt.Println(\"Git Commit:\", GitCommit)\n\n\t}\n\treturn command\n}\n\nconst k3supFigletStr = ` _    _____                    ____ _____ \n| | _|___ / ___ _   _ _ __    / ___| ____|\n| |/ / |_ \\/ __| | | | '_ \\  | |   |  _|  \n|   < ___) \\__ \\ |_| | |_) | | |___| |___ \n|_|\\_\\____/|___/\\__,_| .__/   \\____|_____|\n                     |_|                  \n\nbootstrap K3s over SSH in < 60s 🚀\n`\n"
  },
  {
    "path": "docs/assets/README.md",
    "content": "The assets in this directory are not licensed under the MIT license. Please contact support@openfaas.com if you would like to use them."
  },
  {
    "path": "get.sh",
    "content": "#!/bin/bash\n\n# Copyright OpenFaaS Author(s) 2019\n#########################\n# Repo specific content #\n#########################\n\nexport VERIFY_CHECKSUM=0\nexport ALIAS=\"\"\nexport OWNER=alexellis\nexport REPO=k3sup\nexport BINLOCATION=\"/usr/local/bin\"\nexport SUCCESS_CMD=\"$BINLOCATION/$REPO version\"\n\nGET_PRO=false\n\nif [ \"$PRO\" = \"true\" ]; then\n    GET_PRO=true\nfi\n\nif [ \"$PRO\" = \"1\" ]; then\n   GET_PRO=true\nfi\n\nif [ \"$GET_PRO\" = \"true\" ]; then\n    echo \"PRO=true\"\n    echo \"\"\n    echo \"Plan: download K3sup CE then upgrade to K3sup Pro\"\n    echo \"\"\nfi\n\n###############################\n# Content common across repos #\n###############################\n\nversion=$(curl -sI https://github.com/$OWNER/$REPO/releases/latest | grep -i \"location:\" | awk -F\"/\" '{ printf \"%s\", $NF }' | tr -d '\\r')\nif [ ! $version ]; then\n    echo \"Failed while attempting to install $REPO. Please manually install:\"\n    echo \"\"\n    echo \"1. Open your web browser and go to https://github.com/$OWNER/$REPO/releases\"\n    echo \"2. Download the latest release for your platform. Call it '$REPO'.\"\n    echo \"3. chmod +x ./$REPO\"\n    echo \"4. mv ./$REPO $BINLOCATION\"\n    if [ -n \"$ALIAS_NAME\" ]; then\n        echo \"5. ln -sf $BINLOCATION/$REPO $BINLOCATION/$ALIAS_NAME\"\n    fi\n    exit 1\nfi\n\nhasCli() {\n\n    hasCurl=$(which curl)\n    if [ \"$?\" = \"1\" ]; then\n        echo \"You need curl to use this script.\"\n        exit 1\n    fi\n}\n\ncheckHash(){\n\n    sha_cmd=\"sha256sum\"\n\n    if [ ! -x \"$(command -v $sha_cmd)\" ]; then\n    sha_cmd=\"shasum -a 256\"\n    fi\n\n    if [ -x \"$(command -v $sha_cmd)\" ]; then\n\n    targetFileDir=${targetFile%/*}\n\n    (cd $targetFileDir && curl -sSL $url.sha256|$sha_cmd -c >/dev/null)\n   \n        if [ \"$?\" != \"0\" ]; then\n            rm $targetFile\n            echo \"Binary checksum didn't match. Exiting\"\n            exit 1\n        fi   \n    fi\n}\n\ngetPackage() {\n    uname=$(uname)\n    userid=$(id -u)\n\n    suffix=\"\"\n    case $uname in\n    \"Darwin\")\n        arch=$(uname -m)\n        echo $arch\n        case $arch in\n        \"x86_64\")\n        suffix=\"-darwin\"\n        ;;\n        esac\n        case $arch in\n        \"arm64\")\n        suffix=\"-darwin-arm64\"\n        ;;\n        esac\n    ;;\n    \"MINGW\"*)\n    suffix=\".exe\"\n    BINLOCATION=\"$HOME/bin\"\n    mkdir -p $BINLOCATION\n\n    ;;\n    \"Linux\")\n        arch=$(uname -m)\n        echo $arch\n        case $arch in\n        \"aarch64\")\n        suffix=\"-arm64\"\n        ;;\n        esac\n        case $arch in\n        \"armv6l\" | \"armv7l\")\n        suffix=\"-armhf\"\n        ;;\n        esac\n    ;;\n    esac\n\n    targetFile=\"/tmp/$REPO$suffix\"\n    \n    if [ \"$userid\" != \"0\" ]; then\n        targetFile=\"$(pwd)/$REPO$suffix\"\n    fi\n\n    if [ -e \"$targetFile\" ]; then\n        rm \"$targetFile\"\n    fi\n\n    url=https://github.com/$OWNER/$REPO/releases/download/$version/$REPO$suffix\n    echo \"Downloading package $url as $targetFile\"\n\n    curl -sSL $url --output \"$targetFile\"\n\n    if [ \"$?\" = \"0\" ]; then\n\n        if [ \"$VERIFY_CHECKSUM\" = \"1\" ]; then\n            checkHash\n        fi\n\n    chmod +x \"$targetFile\"\n\n    echo \"Download complete.\"\n       \n    if [ ! -w \"$BINLOCATION\" ]; then\n\n            echo\n            echo \"============================================================\"\n            echo \"  The script was run as a user who is unable to write\"\n            echo \"  to $BINLOCATION. To complete the installation the\"\n            echo \"  following commands may need to be run manually.\"\n            echo \"============================================================\"\n            echo\n            echo \"  sudo cp $REPO$suffix $BINLOCATION/$REPO\"\n            \n            if [ -n \"$ALIAS_NAME\" ]; then\n                echo \"  sudo ln -sf $BINLOCATION/$REPO $BINLOCATION/$ALIAS_NAME\"\n            fi\n            \n            echo\n\n        else\n\n            echo\n            echo \"Running with sufficient permissions to attempt to move $REPO to $BINLOCATION\"\n\n            if [ ! -w \"$BINLOCATION/$REPO\" ] && [ -f \"$BINLOCATION/$REPO\" ]; then\n\n            echo\n            echo \"================================================================\"\n            echo \"  $BINLOCATION/$REPO already exists and is not writeable\"\n            echo \"  by the current user.  Please adjust the binary ownership\"\n            echo \"  or run sh/bash with sudo.\" \n            echo \"================================================================\"\n            echo\n            exit 1\n\n            fi\n\n            mv $targetFile $BINLOCATION/$REPO\n        \n            if [ \"$?\" = \"0\" ]; then\n                echo \"New version of $REPO installed to $BINLOCATION\"\n            fi\n\n            if [ -e \"$targetFile\" ]; then\n                rm \"$targetFile\"\n            fi\n\n            if [ -n \"$ALIAS_NAME\" ]; then\n                if [ ! -L $BINLOCATION/$ALIAS_NAME ]; then\n                    ln -s $BINLOCATION/$REPO $BINLOCATION/$ALIAS_NAME\n                    echo \"Creating alias '$ALIAS_NAME' for '$REPO'.\"\n                fi\n            fi\n\n            ${SUCCESS_CMD}\n        fi\n    fi\n}\n\n\nthanks() {\n    echo\n    echo \"================================================================\"\n    echo \"  Tip: Create clusters on Mac, Linux + WSL2 with K3sup\"\n    echo \"\"\n    echo \"  https://slicervm.com\"\n    echo \"================================================================\"\n    echo\n}\n\nhasCli\ngetPackage\n\nif [ \"$GET_PRO\" = \"false\" ]; then\n    thanks\nelse\n    echo \"Upgrading to K3sup Pro\"\n\n    $BINLOCATION/$REPO get pro\nfi"
  },
  {
    "path": "go.mod",
    "content": "module github.com/alexellis/k3sup\n\ngo 1.25.6\n\nrequire (\n\tgithub.com/alexellis/arkade v0.0.0-20260304131458-e29d4142a4d5\n\tgithub.com/alexellis/go-execute/v2 v2.2.1\n\tgithub.com/google/go-containerregistry v0.21.2\n\tgithub.com/mitchellh/go-homedir v1.1.0\n\tgithub.com/morikuni/aec v1.1.0\n\tgithub.com/spf13/cobra v1.10.2\n\tgolang.org/x/crypto v0.48.0\n\tgolang.org/x/term v0.40.0\n)\n\nrequire (\n\tgithub.com/containerd/stargz-snapshotter/estargz v0.18.2 // indirect\n\tgithub.com/docker/cli v29.2.1+incompatible // indirect\n\tgithub.com/docker/distribution v2.8.3+incompatible // indirect\n\tgithub.com/docker/docker-credential-helpers v0.9.5 // indirect\n\tgithub.com/inconshreveable/mousetrap v1.1.0 // indirect\n\tgithub.com/klauspost/compress v1.18.4 // indirect\n\tgithub.com/opencontainers/go-digest v1.0.0 // indirect\n\tgithub.com/opencontainers/image-spec v1.1.1 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/sirupsen/logrus v1.9.4 // indirect\n\tgithub.com/spf13/pflag v1.0.10 // indirect\n\tgithub.com/vbatts/tar-split v0.12.2 // indirect\n\tgolang.org/x/sync v0.19.0 // indirect\n\tgolang.org/x/sys v0.41.0 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/alexellis/arkade v0.0.0-20250818095951-5f1a8a0d86df h1:2G+jZF9Wn1o8abf70sIKWWeOvhEoBDgzJ0bxWtECHno=\ngithub.com/alexellis/arkade v0.0.0-20250818095951-5f1a8a0d86df/go.mod h1:dDqIrbXxrj6BDvQIehG14v1ZqBZQJ5PIVffa+pYXM8M=\ngithub.com/alexellis/arkade v0.0.0-20260304131458-e29d4142a4d5 h1:cY1I3s7+xf6uy5Zrw5QHNuJ5pse1uszX76exlchoSQI=\ngithub.com/alexellis/arkade v0.0.0-20260304131458-e29d4142a4d5/go.mod h1:LyWSdkHrM/UJADQTNy8h2IEIi6GN8ouhUL/XDuzcRI0=\ngithub.com/alexellis/go-execute/v2 v2.2.1 h1:4Ye3jiCKQarstODOEmqDSRCqxMHLkC92Bhse743RdOI=\ngithub.com/alexellis/go-execute/v2 v2.2.1/go.mod h1:FMdRnUTiFAmYXcv23txrp3VYZfLo24nMpiIneWgKHTQ=\ngithub.com/containerd/stargz-snapshotter/estargz v0.17.0 h1:+TyQIsR/zSFI1Rm31EQBwpAA1ovYgIKHy7kctL3sLcE=\ngithub.com/containerd/stargz-snapshotter/estargz v0.17.0/go.mod h1:s06tWAiJcXQo9/8AReBCIo/QxcXFZ2n4qfsRnpl71SM=\ngithub.com/containerd/stargz-snapshotter/estargz v0.18.2 h1:yXkZFYIzz3eoLwlTUZKz2iQ4MrckBxJjkmD16ynUTrw=\ngithub.com/containerd/stargz-snapshotter/estargz v0.18.2/go.mod h1:XyVU5tcJ3PRpkA9XS2T5us6Eg35yM0214Y+wvrZTBrY=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/docker/cli v28.3.3+incompatible h1:fp9ZHAr1WWPGdIWBM1b3zLtgCF+83gRdVMTJsUeiyAo=\ngithub.com/docker/cli v28.3.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=\ngithub.com/docker/cli v29.2.1+incompatible h1:n3Jt0QVCN65eiVBoUTZQM9mcQICCJt3akW4pKAbKdJg=\ngithub.com/docker/cli v29.2.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=\ngithub.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=\ngithub.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=\ngithub.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8=\ngithub.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo=\ngithub.com/docker/docker-credential-helpers v0.9.5 h1:EFNN8DHvaiK8zVqFA2DT6BjXE0GzfLOZ38ggPTKePkY=\ngithub.com/docker/docker-credential-helpers v0.9.5/go.mod h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=\ngithub.com/google/go-containerregistry v0.20.6 h1:cvWX87UxxLgaH76b4hIvya6Dzz9qHB31qAwjAohdSTU=\ngithub.com/google/go-containerregistry v0.20.6/go.mod h1:T0x8MuoAoKX/873bkeSfLD2FAkwCDf9/HZgsFJ02E2Y=\ngithub.com/google/go-containerregistry v0.21.2 h1:vYaMU4nU55JJGFC9JR/s8NZcTjbE9DBBbvusTW9NeS0=\ngithub.com/google/go-containerregistry v0.21.2/go.mod h1:ctO5aCaewH4AK1AumSF5DPW+0+R+d2FmylMJdp5G7p0=\ngithub.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=\ngithub.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=\ngithub.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=\ngithub.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=\ngithub.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=\ngithub.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=\ngithub.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=\ngithub.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=\ngithub.com/morikuni/aec v1.1.0 h1:vBBl0pUnvi/Je71dsRrhMBtreIqNMYErSAbEeb8jrXQ=\ngithub.com/morikuni/aec v1.1.0/go.mod h1:xDRgiq/iw5l+zkao76YTKzKttOp2cwPEne25HDkJnBw=\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.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=\ngithub.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=\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/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=\ngithub.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=\ngithub.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=\ngithub.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=\ngithub.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=\ngithub.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=\ngithub.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=\ngithub.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=\ngithub.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=\ngithub.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=\ngithub.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=\ngithub.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/vbatts/tar-split v0.12.1 h1:CqKoORW7BUWBe7UL/iqTVvkTBOF8UvOMKOIZykxnnbo=\ngithub.com/vbatts/tar-split v0.12.1/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA=\ngithub.com/vbatts/tar-split v0.12.2 h1:w/Y6tjxpeiFMR47yzZPlPj/FcPLpXbTUi/9H7d3CPa4=\ngithub.com/vbatts/tar-split v0.12.2/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA=\ngo.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=\ngolang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=\ngolang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=\ngolang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=\ngolang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=\ngolang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=\ngolang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=\ngolang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=\ngolang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=\ngolang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=\ngolang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=\ngolang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=\ngolang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=\ngolang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=\ngolang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=\ngolang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=\ngolang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=\ngolang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=\ngolang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=\ngolang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=\ngolang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=\ngolang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "hack/hashgen.sh",
    "content": "#!/bin/sh\n\nfor f in bin/k3sup*; do shasum -a 256 $f > $f.sha256; done\n"
  },
  {
    "path": "hack/platform-tag.sh",
    "content": "#!/bin/sh\n\ngetPackage() {\n    suffix=\"\"\n    arch=$(uname -m)\n    case $arch in\n    \"aarch64\")\n    suffix=\"-arm64\"\n    ;;\n    esac\n    case $arch in\n    \"armv6l\" | \"armv7l\")\n    suffix=\"-armhf\"\n    ;;\n    esac\n}\n\ngetPackage\necho ${suffix}\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\nimport (\n\t\"os\"\n\n\t\"github.com/alexellis/k3sup/cmd\"\n\t\"github.com/alexellis/k3sup/pkg\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc main() {\n\n\tcmdInstall := cmd.MakeInstall()\n\tcmdVersion := cmd.MakeVersion()\n\tcmdJoin := cmd.MakeJoin()\n\tcmdUpdate := cmd.MakeUpdate()\n\tcmdReady := cmd.MakeReady()\n\tcmdPlan := cmd.MakePlan()\n\tcmdNodeToken := cmd.MakeNodeToken()\n\tcmdGetConfig := cmd.MakeGetConfig()\n\tcmdGet := cmd.MakeGet()\n\tcmdGetPro := cmd.MakeGetPro()\n\tcmdPro := cmd.MakePro()\n\n\tprintk3supASCIIArt := cmd.PrintK3supASCIIArt\n\n\tvar rootCmd = &cobra.Command{\n\t\tUse: \"k3sup\",\n\t\tRun: func(cmd *cobra.Command, args []string) {\n\t\t\tprintk3supASCIIArt()\n\t\t\tcmd.Help()\n\t\t},\n\t\tLong: pkg.SupportMessageShort,\n\t}\n\n\trootCmd.AddCommand(cmdInstall)\n\trootCmd.AddCommand(cmdVersion)\n\trootCmd.AddCommand(cmdJoin)\n\trootCmd.AddCommand(cmdUpdate)\n\trootCmd.AddCommand(cmdReady)\n\trootCmd.AddCommand(cmdPlan)\n\trootCmd.AddCommand(cmdNodeToken)\n\trootCmd.AddCommand(cmdGetConfig)\n\n\tcmdGet.AddCommand(cmdGetPro)\n\trootCmd.AddCommand(cmdGet)\n\trootCmd.AddCommand(cmdPro)\n\n\tif err := rootCmd.Execute(); err != nil {\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "pkg/operator/exec_operator.go",
    "content": "package ssh\n\nimport (\n\t\"context\"\n\n\tgoexecute \"github.com/alexellis/go-execute/v2\"\n)\n\n// ExecOperator executes commands on the local machine directly\ntype ExecOperator struct {\n}\n\nfunc (ex ExecOperator) ExecuteStdio(command string, stream bool) (CommandRes, error) {\n\ttask := goexecute.ExecTask{\n\t\tCommand:     command,\n\t\tShell:       true,\n\t\tStreamStdio: stream,\n\t}\n\n\tres, err := task.Execute(context.Background())\n\tif err != nil {\n\t\treturn CommandRes{}, err\n\t}\n\n\treturn CommandRes{\n\t\tStdErr:   []byte(res.Stderr),\n\t\tStdOut:   []byte(res.Stdout),\n\t\tExitCode: res.ExitCode,\n\t}, nil\n}\n\nfunc (ex ExecOperator) Execute(command string) (CommandRes, error) {\n\treturn ex.ExecuteStdio(command, true)\n}\n"
  },
  {
    "path": "pkg/operator/operator.go",
    "content": "package ssh\n\n// CommandOperator executes a command on a machine to install k3sup\ntype CommandOperator interface {\n\tExecute(command string) (CommandRes, error)\n\tExecuteStdio(command string, stream bool) (CommandRes, error)\n}\n\n// CommandRes contains the STDIO output from running a command\ntype CommandRes struct {\n\tStdOut   []byte\n\tStdErr   []byte\n\tExitCode int\n}\n"
  },
  {
    "path": "pkg/operator/ssh_operator.go",
    "content": "package ssh\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"os\"\n\t\"sync\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// SSHOperator executes commands on a remote machine over an SSH session\ntype SSHOperator struct {\n\tconn *ssh.Client\n}\n\nfunc NewSSHOperator(address string, config *ssh.ClientConfig) (*SSHOperator, error) {\n\tconn, err := ssh.Dial(\"tcp\", address, config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toperator := SSHOperator{\n\t\tconn: conn,\n\t}\n\n\treturn &operator, nil\n}\n\nfunc (s SSHOperator) ExecuteStdio(command string, stream bool) (CommandRes, error) {\n\n\tsess, err := s.conn.NewSession()\n\tif err != nil {\n\t\treturn CommandRes{}, err\n\t}\n\n\tdefer sess.Close()\n\n\tsessStdOut, err := sess.StdoutPipe()\n\tif err != nil {\n\t\treturn CommandRes{}, err\n\t}\n\n\toutput := bytes.Buffer{}\n\twg := sync.WaitGroup{}\n\n\tvar stdOutWriter io.Writer\n\tif stream {\n\t\tstdOutWriter = io.MultiWriter(os.Stdout, &output)\n\t} else {\n\t\tstdOutWriter = &output\n\t}\n\n\twg.Add(1)\n\tgo func() {\n\t\tio.Copy(stdOutWriter, sessStdOut)\n\t\twg.Done()\n\t}()\n\n\tsessStderr, err := sess.StderrPipe()\n\tif err != nil {\n\t\treturn CommandRes{}, err\n\t}\n\n\terrorOutput := bytes.Buffer{}\n\tvar stdErrWriter io.Writer\n\tif stream {\n\t\tstdErrWriter = io.MultiWriter(os.Stderr, &errorOutput)\n\t} else {\n\t\tstdErrWriter = &errorOutput\n\t}\n\n\twg.Add(1)\n\tgo func() {\n\t\tio.Copy(stdErrWriter, sessStderr)\n\t\twg.Done()\n\t}()\n\n\terr = sess.Run(command)\n\tif err != nil {\n\t\treturn CommandRes{}, err\n\t}\n\n\twg.Wait()\n\n\treturn CommandRes{\n\t\tStdErr: errorOutput.Bytes(),\n\t\tStdOut: output.Bytes(),\n\t}, nil\n}\n\nfunc (s SSHOperator) Execute(command string) (CommandRes, error) {\n\treturn s.ExecuteStdio(command, true)\n}\n\nfunc (s SSHOperator) Close() error {\n\treturn s.conn.Close()\n}\n"
  },
  {
    "path": "pkg/thanks.go",
    "content": "package pkg\n\n// SupportMessageShort is a tip shown to users after commands.\nconst SupportMessageShort = `Tip: Create clusters on Mac, Linux + WSL2 with K3sup and https://slicervm.com`\n"
  },
  {
    "path": "vendor/github.com/alexellis/arkade/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Alex Ellis\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."
  },
  {
    "path": "vendor/github.com/alexellis/arkade/pkg/archive/untar.go",
    "content": "package archive\n\nimport (\n\t\"archive/tar\"\n\tgzipc \"compress/gzip\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Untar reads the (gzip-compressed) tar file from r and writes it into dir.\n// 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// AE: Edited on 2019-10-11 to remove support for nested folders when un-taring\n// so that all files are placed in the same target directory\nfunc Untar(r io.Reader, dir string, gzip bool, quiet bool) error {\n\treturn untar(r, dir, gzip, quiet)\n}\n\nfunc untar(r io.Reader, dir string, gzip bool, quiet bool) (err error) {\n\tt0 := time.Now()\n\tnFiles := 0\n\tmadeDir := map[string]bool{}\n\tdefer func() {\n\t\ttd := time.Since(t0)\n\n\t\tif err == nil {\n\t\t\tif !quiet {\n\t\t\t\tlog.Printf(\"extracted tarball into %s: %d files, %d dirs (%v)\", dir, nFiles, len(madeDir), td)\n\t\t\t}\n\t\t} else {\n\t\t\tlog.Printf(\"error extracting tarball into %s after %d files, %d dirs, %v: %v\", dir, nFiles, len(madeDir), td, err)\n\t\t}\n\n\t}()\n\n\tif gzip {\n\t\tr, err = gzipc.NewReader(r)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"requires gzip-compressed body: %v\", err)\n\t\t}\n\t}\n\n\ttr := tar.NewReader(r)\n\tloggedChtimesError := false\n\tfor {\n\t\tf, err := tr.Next()\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\tlog.Printf(\"tar reading error: %v\", err)\n\t\t\treturn fmt.Errorf(\"tar error: %v\", err)\n\t\t}\n\t\tif !validRelPath(f.Name) {\n\t\t\treturn fmt.Errorf(\"tar contained invalid name error %q\", f.Name)\n\t\t}\n\t\tbaseFile := filepath.Base(f.Name)\n\t\tabs := path.Join(dir, baseFile)\n\t\tif !quiet {\n\t\t\tfmt.Printf(\"Extracting: %s to\\t%s\\n\", f.Name, abs)\n\t\t}\n\n\t\tfi := f.FileInfo()\n\t\tmode := fi.Mode()\n\t\tswitch {\n\t\tcase mode.IsDir():\n\n\t\t\tbreak\n\n\t\tcase mode.IsRegular():\n\n\t\t\twf, err := os.OpenFile(abs, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode.Perm())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tn, err := io.Copy(wf, tr)\n\t\t\tif closeErr := wf.Close(); closeErr != nil && err == nil {\n\t\t\t\terr = closeErr\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error writing to %s: %v\", abs, err)\n\t\t\t}\n\t\t\tif n != f.Size {\n\t\t\t\treturn fmt.Errorf(\"only wrote %d bytes to %s; expected %d\", n, abs, f.Size)\n\t\t\t}\n\t\t\tmodTime := f.ModTime\n\t\t\tif modTime.After(t0) {\n\t\t\t\t// Clamp modtimes at system time. See\n\t\t\t\t// golang.org/issue/19062 when clock on\n\t\t\t\t// buildlet was behind the gitmirror server\n\t\t\t\t// doing the git-archive.\n\t\t\t\tmodTime = t0\n\t\t\t}\n\t\t\tif !modTime.IsZero() {\n\t\t\t\tif err := os.Chtimes(abs, modTime, modTime); err != nil && !loggedChtimesError {\n\t\t\t\t\t// benign error. Gerrit doesn't even set the\n\t\t\t\t\t// modtime in these, and we don't end up relying\n\t\t\t\t\t// on it anywhere (the gomote push command relies\n\t\t\t\t\t// on digests only), so this is a little pointless\n\t\t\t\t\t// for now.\n\t\t\t\t\tlog.Printf(\"error changing modtime: %v (further Chtimes errors suppressed)\", err)\n\t\t\t\t\tloggedChtimesError = true // once is enough\n\t\t\t\t}\n\t\t\t}\n\t\t\tnFiles++\n\t\tdefault:\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validRelPath(p string) bool {\n\tif p == \"\" || strings.Contains(p, `\\`) || strings.HasPrefix(p, \"/\") || strings.Contains(p, \"../\") {\n\t\treturn false\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/alexellis/arkade/pkg/archive/untar_nested.go",
    "content": "package archive\n\nimport (\n\t\"archive/tar\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n)\n\n// UntarNested reads the gzip-compressed tar file from r and writes it into dir.\n// 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.\nfunc UntarNested(r io.Reader, dir string, gzipped, quiet bool) error {\n\treturn untarNested(r, dir, gzipped, quiet)\n}\n\nfunc untarNested(r io.Reader, dir string, gzipped, quiet bool) (err error) {\n\tt0 := time.Now()\n\tnFiles := 0\n\tmadeDir := map[string]bool{}\n\tdefer func() {\n\t\ttd := time.Since(t0)\n\t\tif err == nil {\n\t\t\tif !quiet {\n\t\t\t\tlog.Printf(\"extracted tarball into %s: %d files, %d dirs (%v)\", dir, nFiles, len(madeDir), td)\n\t\t\t}\n\t\t} else {\n\t\t\tlog.Printf(\"error extracting tarball into %s after %d files, %d dirs, %v: %v\", dir, nFiles, len(madeDir), td, err)\n\t\t}\n\t}()\n\n\treader := r\n\n\tif gzipped {\n\t\tzr, err := gzip.NewReader(r)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"requires gzip-compressed body: %v\", err)\n\t\t}\n\t\treader = zr\n\t}\n\n\ttr := tar.NewReader(reader)\n\tloggedChtimesError := false\n\tfor {\n\t\tf, err := tr.Next()\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\tlog.Printf(\"tar reading error: %v\", err)\n\t\t\treturn fmt.Errorf(\"tar error: %v\", err)\n\t\t}\n\t\tif !validRelPath(f.Name) {\n\t\t\treturn fmt.Errorf(\"tar contained invalid name error %q\", f.Name)\n\t\t}\n\t\trel := filepath.FromSlash(f.Name)\n\t\tabs := filepath.Join(dir, rel)\n\n\t\tfi := f.FileInfo()\n\t\tmode := fi.Mode()\n\t\tif !quiet {\n\t\t\tfmt.Printf(\"Extracting: %s\\n\", abs)\n\t\t}\n\t\tswitch {\n\t\tcase mode.IsRegular():\n\t\t\t// Make the directory. This is redundant because it should\n\t\t\t// already be made by a directory entry in the tar\n\t\t\t// beforehand. Thus, don't check for errors; the next\n\t\t\t// write will fail with the same error.\n\t\t\tdir := filepath.Dir(abs)\n\t\t\tif !madeDir[dir] {\n\t\t\t\tif err := os.MkdirAll(filepath.Dir(abs), 0755); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tmadeDir[dir] = true\n\t\t\t}\n\t\t\twf, err := os.OpenFile(abs, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode.Perm())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tn, err := io.Copy(wf, tr)\n\t\t\tif closeErr := wf.Close(); closeErr != nil && err == nil {\n\t\t\t\terr = closeErr\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error writing to %s: %v\", abs, err)\n\t\t\t}\n\t\t\tif n != f.Size {\n\t\t\t\treturn fmt.Errorf(\"only wrote %d bytes to %s; expected %d\", n, abs, f.Size)\n\t\t\t}\n\t\t\tmodTime := f.ModTime\n\t\t\tif modTime.After(t0) {\n\t\t\t\t// Clamp modtimes at system time. See\n\t\t\t\t// golang.org/issue/19062 when clock on\n\t\t\t\t// buildlet was behind the gitmirror server\n\t\t\t\t// doing the git-archive.\n\t\t\t\tmodTime = t0\n\t\t\t}\n\t\t\tif !modTime.IsZero() {\n\t\t\t\tif err := os.Chtimes(abs, modTime, modTime); err != nil && !loggedChtimesError {\n\t\t\t\t\t// benign error. Gerrit doesn't even set the\n\t\t\t\t\t// modtime in these, and we don't end up relying\n\t\t\t\t\t// on it anywhere (the gomote push command relies\n\t\t\t\t\t// on digests only), so this is a little pointless\n\t\t\t\t\t// for now.\n\t\t\t\t\tlog.Printf(\"error changing modtime: %v (further Chtimes errors suppressed)\", err)\n\t\t\t\t\tloggedChtimesError = true // once is enough\n\t\t\t\t}\n\t\t\t}\n\t\t\tnFiles++\n\t\tcase mode.IsDir():\n\t\t\tif err := os.MkdirAll(abs, 0755); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmadeDir[abs] = true\n\t\t\t// Introduced via\n\t\t\t// https://github.com/alexellis/arkade/pull/675/files\n\t\tcase os.ModeSymlink != 0:\n\t\t\tif err := os.Symlink(f.Linkname, abs); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"tar file entry %s contained unsupported file type %v\", f.Name, mode)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/alexellis/arkade/pkg/archive/unzip.go",
    "content": "// Copyright (c) arkade author(s) 2022. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\npackage archive\n\nimport (\n\t\"archive/zip\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"time\"\n)\n\n// Unzip reads the compressed zip file from reader and writes it into dir.\n// Unzip works similar to Untar where support for nested folders is removed\n// so that all files are placed in the same target directory\nfunc Unzip(reader io.ReaderAt, size int64, dir string, quiet bool) error {\n\tzipReader, err := zip.NewReader(reader, size)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error creating zip reader: %s\", err)\n\t}\n\n\treturn unzip(*zipReader, dir, quiet)\n}\n\nfunc unzip(r zip.Reader, dir string, quiet bool) (err error) {\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt0 := time.Now()\n\tnFiles := 0\n\tmadeDir := map[string]bool{}\n\tdefer func() {\n\t\ttd := time.Since(t0)\n\t\tif err == nil {\n\t\t\tif !quiet {\n\t\t\t\tlog.Printf(\"extracted zip into %s: %d files, %d dirs (%v)\", dir, nFiles, len(madeDir), td)\n\t\t\t}\n\t\t} else {\n\t\t\tlog.Printf(\"error extracting zip into %s after %d files, %d dirs, %v: %v\", dir, nFiles, len(madeDir), td, err)\n\t\t}\n\t}()\n\n\t// Closure to address file descriptors issue with all the deferred .Close() methods\n\textractAndWriteFile := func(f *zip.File) error {\n\t\trc, err := f.Open()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer func() {\n\t\t\tif err := rc.Close(); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}()\n\t\tbaseFile := filepath.Base(f.Name)\n\t\tabs := path.Join(dir, baseFile)\n\n\t\tif !quiet {\n\t\t\tfmt.Printf(\"Extracting: %s\\n\", abs)\n\t\t}\n\n\t\tfi := f.FileInfo()\n\t\tmode := fi.Mode()\n\n\t\tswitch {\n\t\tcase mode.IsDir():\n\t\t\tbreak\n\t\tcase mode.IsRegular():\n\t\t\tf, err := os.OpenFile(abs, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer func() {\n\t\t\t\tif err := f.Close(); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t_, err = io.Copy(f, rc)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t}\n\t\tnFiles++\n\t\treturn nil\n\t}\n\n\tfor _, f := range r.File {\n\t\terr := extractAndWriteFile(f)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/alexellis/arkade/pkg/env/env.go",
    "content": "// Copyright (c) arkade author(s) 2022. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\npackage env\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"os\"\n\t\"path\"\n\t\"runtime\"\n\t\"strings\"\n\n\texecute \"github.com/alexellis/go-execute/v2\"\n)\n\n// GetClientArch returns the architecture and OS of the client machine\n// on Windows, that's a direct passthrough from runtime.GOARCH and runtime.GOOS\n// On Linux and Darwin, it uses `uname -m` and `uname -s` to get more specific values\nfunc GetClientArch() (arch string, os string) {\n\tif runtime.GOOS == \"windows\" {\n\t\treturn runtime.GOARCH, runtime.GOOS\n\t}\n\n\treturn getClientArchFromUname()\n}\n\nfunc getClientArchFromUname() (arch string, os string) {\n\ttask := execute.ExecTask{\n\t\tCommand:     \"uname\",\n\t\tArgs:        []string{\"-m\"},\n\t\tStreamStdio: false}\n\tres, err := task.Execute(context.Background())\n\tif err != nil {\n\t\tlog.Println(err)\n\t}\n\n\tarchResult := strings.TrimSpace(res.Stdout)\n\n\ttaskOS := execute.ExecTask{Command: \"uname\",\n\t\tArgs:        []string{\"-s\"},\n\t\tStreamStdio: false}\n\tresOS, errOS := taskOS.Execute(context.Background())\n\tif errOS != nil {\n\t\tlog.Println(errOS)\n\t}\n\n\tosResult := strings.TrimSpace(resOS.Stdout)\n\n\treturn archResult, osResult\n}\n\nfunc LocalBinary(name, subdir string) string {\n\thome := os.Getenv(\"HOME\")\n\tval := path.Join(home, \".arkade/bin/\")\n\tif len(subdir) > 0 {\n\t\tval = path.Join(val, subdir)\n\t}\n\n\treturn path.Join(val, name)\n}\n"
  },
  {
    "path": "vendor/github.com/alexellis/go-execute/v2/.DEREK.yml",
    "content": "redirect: https://raw.githubusercontent.com/openfaas/faas/master/.DEREK.yml\n"
  },
  {
    "path": "vendor/github.com/alexellis/go-execute/v2/.gitignore",
    "content": "/go-execute\nmain.go\n"
  },
  {
    "path": "vendor/github.com/alexellis/go-execute/v2/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Alex Ellis\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/alexellis/go-execute/v2/Makefile",
    "content": "all:\n\tgo test -v ./...\n"
  },
  {
    "path": "vendor/github.com/alexellis/go-execute/v2/README.md",
    "content": "## go-execute\n\nA wrapper for Go's command execution packages.\n\n`go get github.com/alexellis/go-execute/v2`\n\n## Docs\n\nSee docs at pkg.go.dev: [github.com/alexellis/go-execute](https://pkg.go.dev/github.com/alexellis/go-execute)\n\n## go-execute users\n\n[Used by dozens of projects as identified by GitHub](https://github.com/alexellis/go-execute/network/dependents), notably:\n\n* [alexellis/arkade](https://github.com/alexellis/arkade)\n* [openfaas/faas-cli](https://github.com/openfaas/faas-cli)\n* [inlets/inletsctl](https://github.com/inlets/inletsctl)\n* [inlets/cloud-provision](https://github.com/inlets/cloud-provision)\n* [alexellis/k3sup](https://github.com/alexellis/k3sup)\n* [openfaas/connector-sdk](https://github.com/openfaas/connector-sdk)\n* [openfaas-incubator/ofc-bootstrap](https://github.com/openfaas-incubator/ofc-bootstrap)\n\nCommunity examples:\n\n* [dokku/lambda-builder](https://github.com/dokku/lambda-builder)\n* [027xiguapi/pear-rec](https://github.com/027xiguapi/pear-rec)\n* [cnrancher/autok3s](https://github.com/cnrancher/autok3s)\n* [ainsleydev/hupi](https://github.com/ainsleydev/hupi)\n* [andiwork/andictl](https://github.com/andiwork/andictl)\n* [tonit/rekind](https://github.com/tonit/rekind)\n* [lucasrod16/ec2-k3s](https://github.com/lucasrod16/ec2-k3s)\n* [seaweedfs/seaweed-up](https://github.com/seaweedfs/seaweed-up)\n* [jsiebens/inlets-on-fly](https://github.com/jsiebens/inlets-on-fly)\n* [jsiebens/hashi-up](https://github.com/jsiebens/hashi-up)\n* [edgego/ecm](https://github.com/edgego/ecm)\n* [ministryofjustice/cloud-platform-terraform-upgrade](https://github.com/ministryofjustice/cloud-platform-terraform-upgrade)\n* [mattcanty/go-ffmpeg-transcode](https://github.com/mattcanty/go-ffmpeg-transcode)\n* [Popoola-Opeyemi/meeseeks](https://github.com/Popoola-Opeyemi/meeseeks)\n* [aidun/minicloud](https://github.com/aidun/minicloud)\n\nFeel free to add a link to your own projects in a PR.\n\n## Main options\n\n* `DisableStdioBuffer` - Discard Stdio, rather than buffering into memory\n* `StreamStdio` - Stream stderr and stdout to the console, useful for debugging and testing\n* `Shell` - Use bash as a shell to execute the command, rather than exec a binary directly\n* `StdOutWriter` - an additional writer for stdout, useful for mutating or filtering the output\n* `StdErrWriter` - an additional writer for stderr, useful for mutating or filtering the output\n* `PrintCommand` - print the command to stdout before executing it\n\n## Example of exec without streaming to STDIO\n\nThis example captures the values from stdout and stderr without relaying to the console. This means the values can be inspected and used for automation.\n\n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\n\texecute \"github.com/alexellis/go-execute/v2\"\n\t\"context\"\n)\n\nfunc main() {\n\tcmd := execute.ExecTask{\n\t\tCommand:     \"docker\",\n\t\tArgs:        []string{\"version\"},\n\t\tStreamStdio: false,\n\t}\n\n\tres, err := cmd.Execute(context.Background())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif res.ExitCode != 0 {\n\t\tpanic(\"Non-zero exit code: \" + res.Stderr)\n\t}\n\n\tfmt.Printf(\"stdout: %s, stderr: %s, exit-code: %d\\n\", res.Stdout, res.Stderr, res.ExitCode)\n}\n```\n\n## Example with \"shell\" and exit-code 0\n\n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\n\texecute \"github.com/alexellis/go-execute/v2\"\n\t\"context\"\n)\n\nfunc main() {\n\tls := execute.ExecTask{\n\t\tCommand: \"ls\",\n\t\tArgs:    []string{\"-l\"},\n\t\tShell:   true,\n\t}\n\tres, err := ls.Execute(context.Background())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"stdout: %q, stderr: %q, exit-code: %d\\n\", res.Stdout, res.Stderr, res.ExitCode)\n}\n```\n\n## Example with \"shell\" and exit-code 1\n\n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"context\"\n\texecute \"github.com/alexellis/go-execute/v2\"\n)\n\nfunc main() {\n\tls := execute.ExecTask{\n\t\tCommand: \"exit 1\",\n\t\tShell:   true,\n\t}\n\tres, err := ls.Execute(context.Background())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"stdout: %q, stderr: %q, exit-code: %d\\n\", res.Stdout, res.Stderr, res.ExitCode)\n}\n```\n\n## Contributing\n\nCommits must be signed off with `git commit -s`\n\nLicense: MIT\n"
  },
  {
    "path": "vendor/github.com/alexellis/go-execute/v2/exec.go",
    "content": "package execute\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n)\n\ntype ExecTask struct {\n\t// Command is the command to execute. This can be the path to an executable\n\t// or the executable with arguments. The arguments are detected by looking for\n\t// a space.\n\t//\n\t// Any arguments must be given via Args\n\tCommand string\n\n\t// Args are the arguments to pass to the command. These are ignored if the\n\t// Command contains arguments.\n\tArgs []string\n\n\t// Shell run the command in a bash shell.\n\t// Note that the system must have `bash` installed in the PATH or in /bin/bash\n\tShell bool\n\n\t// Env is a list of environment variables to add to the current environment,\n\t// these are used to override any existing environment variables.\n\tEnv []string\n\n\t// Cwd is the working directory for the command\n\tCwd string\n\n\t// Stdin connect a reader to stdin for the command\n\t// being executed.\n\tStdin io.Reader\n\n\t// PrintCommand prints the command before executing\n\tPrintCommand bool\n\n\t// StreamStdio prints stdout and stderr directly to os.Stdout/err as\n\t// the command runs.\n\tStreamStdio bool\n\n\t// DisableStdioBuffer prevents any output from being saved in the\n\t// TaskResult, which is useful for when the result is very large, or\n\t// when you want to stream the output to another writer exclusively.\n\tDisableStdioBuffer bool\n\n\t// StdoutWriter when set will receive a copy of stdout from the command\n\tStdOutWriter io.Writer\n\n\t// StderrWriter when set will receive a copy of stderr from the command\n\tStdErrWriter io.Writer\n}\n\ntype ExecResult struct {\n\tStdout    string\n\tStderr    string\n\tExitCode  int\n\tCancelled bool\n}\n\nfunc (et ExecTask) Execute(ctx context.Context) (ExecResult, error) {\n\targsSt := \"\"\n\tif len(et.Args) > 0 {\n\t\targsSt = strings.Join(et.Args, \" \")\n\t}\n\n\tif et.PrintCommand {\n\t\tfmt.Println(\"exec: \", et.Command, argsSt)\n\t}\n\n\t// don't try to run if the context is already cancelled\n\tif ctx.Err() != nil {\n\t\treturn ExecResult{\n\t\t\t// the exec package returns -1 for cancelled commands\n\t\t\tExitCode:  -1,\n\t\t\tCancelled: ctx.Err() == context.Canceled,\n\t\t}, ctx.Err()\n\t}\n\n\tvar command string\n\tvar commandArgs []string\n\tif et.Shell {\n\n\t\t// On a NixOS system, /bin/bash doesn't exist at /bin/bash\n\t\t// the default behavior of exec.Command is to look for the\n\t\t// executable in PATH.\n\n\t\tcommand = \"bash\"\n\t\t// There is a chance that PATH is not populate or propagated, therefore\n\t\t// when bash cannot be resolved, set it to /bin/bash instead.\n\t\tif _, err := exec.LookPath(command); err != nil {\n\t\t\tcommand = \"/bin/bash\"\n\t\t}\n\n\t\tif len(et.Args) == 0 {\n\t\t\t// use Split and Join to remove any extra whitespace?\n\t\t\tstartArgs := strings.Split(et.Command, \" \")\n\t\t\tscript := strings.Join(startArgs, \" \")\n\t\t\tcommandArgs = append([]string{\"-c\"}, script)\n\n\t\t} else {\n\t\t\tscript := strings.Join(et.Args, \" \")\n\t\t\tcommandArgs = append([]string{\"-c\"}, fmt.Sprintf(\"%s %s\", et.Command, script))\n\t\t}\n\t} else {\n\n\t\tcommand = et.Command\n\t\tcommandArgs = et.Args\n\n\t\t// AE: This had to be removed to fix: #117 where Windows users\n\t\t// have spaces in their paths, which are misinterpreted as\n\t\t// arguments for the command.\n\t\t// if strings.Contains(et.Command, \" \") {\n\t\t// \tparts := strings.Split(et.Command, \" \")\n\t\t// \tcommand = parts[0]\n\t\t// \tcommandArgs = parts[1:]\n\t\t// }\n\t}\n\n\tcmd := exec.CommandContext(ctx, command, commandArgs...)\n\tcmd.Dir = et.Cwd\n\n\tif len(et.Env) > 0 {\n\t\toverrides := map[string]bool{}\n\t\tfor _, env := range et.Env {\n\t\t\tkey := strings.Split(env, \"=\")[0]\n\t\t\toverrides[key] = true\n\t\t\tcmd.Env = append(cmd.Env, env)\n\t\t}\n\n\t\tfor _, env := range os.Environ() {\n\t\t\tkey := strings.Split(env, \"=\")[0]\n\n\t\t\tif _, ok := overrides[key]; !ok {\n\t\t\t\tcmd.Env = append(cmd.Env, env)\n\t\t\t}\n\t\t}\n\t}\n\tif et.Stdin != nil {\n\t\tcmd.Stdin = et.Stdin\n\t}\n\n\tstdoutBuff := bytes.Buffer{}\n\tstderrBuff := bytes.Buffer{}\n\n\tvar stdoutWriters []io.Writer\n\tvar stderrWriters []io.Writer\n\n\tif !et.DisableStdioBuffer {\n\t\tstdoutWriters = append(stdoutWriters, &stdoutBuff)\n\t\tstderrWriters = append(stderrWriters, &stderrBuff)\n\t}\n\n\tif et.StreamStdio {\n\t\tstdoutWriters = append(stdoutWriters, os.Stdout)\n\t\tstderrWriters = append(stderrWriters, os.Stderr)\n\t}\n\n\tif et.StdOutWriter != nil {\n\t\tstdoutWriters = append(stdoutWriters, et.StdOutWriter)\n\t}\n\tif et.StdErrWriter != nil {\n\t\tstderrWriters = append(stderrWriters, et.StdErrWriter)\n\t}\n\n\tcmd.Stdout = io.MultiWriter(stdoutWriters...)\n\tcmd.Stderr = io.MultiWriter(stderrWriters...)\n\n\tstartErr := cmd.Start()\n\tif startErr != nil {\n\t\treturn ExecResult{}, startErr\n\t}\n\n\texitCode := 0\n\texecErr := cmd.Wait()\n\tif execErr != nil {\n\t\tif exitError, ok := execErr.(*exec.ExitError); ok {\n\t\t\texitCode = exitError.ExitCode()\n\t\t}\n\t}\n\n\treturn ExecResult{\n\t\tStdout:    stdoutBuff.String(),\n\t\tStderr:    stderrBuff.String(),\n\t\tExitCode:  exitCode,\n\t\tCancelled: ctx.Err() == context.Canceled,\n\t}, ctx.Err()\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/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/containerd/stargz-snapshotter/estargz/build.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/*\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*/\n\npackage estargz\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/containerd/stargz-snapshotter/estargz/errorutil\"\n\t\"github.com/klauspost/compress/zstd\"\n\tdigest \"github.com/opencontainers/go-digest\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\ntype GzipHelperFunc func(io.Reader) (io.ReadCloser, error)\n\ntype options struct {\n\tchunkSize              int\n\tcompressionLevel       int\n\tprioritizedFiles       []string\n\tmissedPrioritizedFiles *[]string\n\tcompression            Compression\n\tctx                    context.Context\n\tminChunkSize           int\n\tgzipHelperFunc         GzipHelperFunc\n}\n\ntype Option func(o *options) error\n\n// WithChunkSize option specifies the chunk size of eStargz blob to build.\nfunc WithChunkSize(chunkSize int) Option {\n\treturn func(o *options) error {\n\t\to.chunkSize = chunkSize\n\t\treturn nil\n\t}\n}\n\n// WithCompressionLevel option specifies the gzip compression level.\n// The default is gzip.BestCompression.\n// This option will be ignored if WithCompression option is used.\n// See also: https://godoc.org/compress/gzip#pkg-constants\nfunc WithCompressionLevel(level int) Option {\n\treturn func(o *options) error {\n\t\to.compressionLevel = level\n\t\treturn nil\n\t}\n}\n\n// WithPrioritizedFiles option specifies the list of prioritized files.\n// These files must be complete paths that are absolute or relative to \"/\"\n// For example, all of \"foo/bar\", \"/foo/bar\", \"./foo/bar\" and \"../foo/bar\"\n// are treated as \"/foo/bar\".\nfunc WithPrioritizedFiles(files []string) Option {\n\treturn func(o *options) error {\n\t\to.prioritizedFiles = files\n\t\treturn nil\n\t}\n}\n\n// WithAllowPrioritizeNotFound makes Build continue the execution even if some\n// of prioritized files specified by WithPrioritizedFiles option aren't found\n// in the input tar. Instead, this records all missed file names to the passed\n// slice.\nfunc WithAllowPrioritizeNotFound(missedFiles *[]string) Option {\n\treturn func(o *options) error {\n\t\tif missedFiles == nil {\n\t\t\treturn fmt.Errorf(\"WithAllowPrioritizeNotFound: slice must be passed\")\n\t\t}\n\t\to.missedPrioritizedFiles = missedFiles\n\t\treturn nil\n\t}\n}\n\n// WithCompression specifies compression algorithm to be used.\n// Default is gzip.\nfunc WithCompression(compression Compression) Option {\n\treturn func(o *options) error {\n\t\to.compression = compression\n\t\treturn nil\n\t}\n}\n\n// WithContext specifies a context that can be used for clean canceleration.\nfunc WithContext(ctx context.Context) Option {\n\treturn func(o *options) error {\n\t\to.ctx = ctx\n\t\treturn nil\n\t}\n}\n\n// WithMinChunkSize option specifies the minimal number of bytes of data\n// must be written in one gzip stream.\n// By increasing this number, one gzip stream can contain multiple files\n// and it hopefully leads to smaller result blob.\n// NOTE: This adds a TOC property that old reader doesn't understand.\nfunc WithMinChunkSize(minChunkSize int) Option {\n\treturn func(o *options) error {\n\t\to.minChunkSize = minChunkSize\n\t\treturn nil\n\t}\n}\n\n// WithGzipHelperFunc option specifies a custom function to decompress gzip-compressed layers.\n// When a gzip-compressed layer is detected, this function will be used instead of the\n// Go standard library gzip decompression for better performance.\n// The function should take an io.Reader as input and return an io.ReadCloser.\n// If nil, the Go standard library gzip.NewReader will be used.\nfunc WithGzipHelperFunc(gzipHelperFunc GzipHelperFunc) Option {\n\treturn func(o *options) error {\n\t\to.gzipHelperFunc = gzipHelperFunc\n\t\treturn nil\n\t}\n}\n\n// Blob is an eStargz blob.\ntype Blob struct {\n\tio.ReadCloser\n\tdiffID           digest.Digester\n\ttocDigest        digest.Digest\n\treadCompleted    *atomic.Bool\n\tuncompressedSize *atomic.Int64\n}\n\n// DiffID returns the digest of uncompressed blob.\n// It is only valid to call DiffID after Close.\nfunc (b *Blob) DiffID() digest.Digest {\n\treturn b.diffID.Digest()\n}\n\n// TOCDigest returns the digest of uncompressed TOC JSON.\nfunc (b *Blob) TOCDigest() digest.Digest {\n\treturn b.tocDigest\n}\n\n// UncompressedSize returns the size of uncompressed blob.\n// UncompressedSize should only be called after the blob has been fully read.\nfunc (b *Blob) UncompressedSize() (int64, error) {\n\tswitch {\n\tcase b.uncompressedSize == nil || b.readCompleted == nil:\n\t\treturn -1, fmt.Errorf(\"readCompleted or uncompressedSize is not initialized\")\n\tcase !b.readCompleted.Load():\n\t\treturn -1, fmt.Errorf(\"called UncompressedSize before the blob has been fully read\")\n\tdefault:\n\t\treturn b.uncompressedSize.Load(), nil\n\t}\n}\n\n// Build builds an eStargz blob which is an extended version of stargz, from a blob (gzip, zstd\n// or plain tar) passed through the argument. If there are some prioritized files are listed in\n// the option, these files are grouped as \"prioritized\" and can be used for runtime optimization\n// (e.g. prefetch). This function builds a blob in parallel, with dividing that blob into several\n// (at least the number of runtime.GOMAXPROCS(0)) sub-blobs.\nfunc Build(tarBlob *io.SectionReader, opt ...Option) (_ *Blob, rErr error) {\n\tvar opts options\n\topts.compressionLevel = gzip.BestCompression // BestCompression by default\n\tfor _, o := range opt {\n\t\tif err := o(&opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif opts.compression == nil {\n\t\topts.compression = newGzipCompressionWithLevel(opts.compressionLevel)\n\t}\n\tlayerFiles := newTempFiles()\n\tctx := opts.ctx\n\tif ctx == nil {\n\t\tctx = context.Background()\n\t}\n\tdone := make(chan struct{})\n\tdefer close(done)\n\tgo func() {\n\t\tselect {\n\t\tcase <-done:\n\t\t\t// nop\n\t\tcase <-ctx.Done():\n\t\t\tlayerFiles.CleanupAll()\n\t\t}\n\t}()\n\tdefer func() {\n\t\tif rErr != nil {\n\t\t\tif err := layerFiles.CleanupAll(); err != nil {\n\t\t\t\trErr = fmt.Errorf(\"failed to cleanup tmp files: %v: %w\", err, rErr)\n\t\t\t}\n\t\t}\n\t\tif cErr := ctx.Err(); cErr != nil {\n\t\t\trErr = fmt.Errorf(\"error from context %q: %w\", cErr, rErr)\n\t\t}\n\t}()\n\ttarBlob, err := decompressBlob(tarBlob, layerFiles, opts.gzipHelperFunc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tentries, err := sortEntries(tarBlob, opts.prioritizedFiles, opts.missedPrioritizedFiles)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar tarParts [][]*entry\n\tif opts.minChunkSize > 0 {\n\t\t// Each entry needs to know the size of the current gzip stream so they\n\t\t// cannot be processed in parallel.\n\t\ttarParts = [][]*entry{entries}\n\t} else {\n\t\ttarParts = divideEntries(entries, runtime.GOMAXPROCS(0))\n\t}\n\twriters := make([]*Writer, len(tarParts))\n\tpayloads := make([]*os.File, len(tarParts))\n\tvar mu sync.Mutex\n\tvar eg errgroup.Group\n\tfor i, parts := range tarParts {\n\t\ti, parts := i, parts\n\t\t// builds verifiable stargz sub-blobs\n\t\teg.Go(func() error {\n\t\t\tesgzFile, err := layerFiles.TempFile(\"\", \"esgzdata\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tsw := NewWriterWithCompressor(esgzFile, opts.compression)\n\t\t\tsw.ChunkSize = opts.chunkSize\n\t\t\tsw.MinChunkSize = opts.minChunkSize\n\t\t\tif sw.needsOpenGzEntries == nil {\n\t\t\t\tsw.needsOpenGzEntries = make(map[string]struct{})\n\t\t\t}\n\t\t\tfor _, f := range []string{PrefetchLandmark, NoPrefetchLandmark} {\n\t\t\t\tsw.needsOpenGzEntries[f] = struct{}{}\n\t\t\t}\n\t\t\tif err := sw.AppendTar(readerFromEntries(parts...)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmu.Lock()\n\t\t\twriters[i] = sw\n\t\t\tpayloads[i] = esgzFile\n\t\t\tmu.Unlock()\n\t\t\treturn nil\n\t\t})\n\t}\n\tif err := eg.Wait(); err != nil {\n\t\trErr = err\n\t\treturn nil, err\n\t}\n\ttocAndFooter, tocDgst, err := closeWithCombine(writers...)\n\tif err != nil {\n\t\trErr = err\n\t\treturn nil, err\n\t}\n\tvar rs []io.Reader\n\tfor _, p := range payloads {\n\t\tfs, err := fileSectionReader(p)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trs = append(rs, fs)\n\t}\n\tdiffID := digest.Canonical.Digester()\n\tpr, pw := io.Pipe()\n\treadCompleted := new(atomic.Bool)\n\tuncompressedSize := new(atomic.Int64)\n\tgo func() {\n\t\tvar size int64\n\t\tvar decompressFunc func(io.Reader) (io.ReadCloser, error)\n\t\tif _, ok := opts.compression.(*gzipCompression); ok && opts.gzipHelperFunc != nil {\n\t\t\tdecompressFunc = opts.gzipHelperFunc\n\t\t} else {\n\t\t\tdecompressFunc = opts.compression.Reader\n\t\t}\n\t\tdecompressR, err := decompressFunc(io.TeeReader(io.MultiReader(append(rs, tocAndFooter)...), pw))\n\t\tif err != nil {\n\t\t\tpw.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tdefer decompressR.Close()\n\t\tif size, err = io.Copy(diffID.Hash(), decompressR); err != nil {\n\t\t\tpw.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tuncompressedSize.Store(size)\n\t\treadCompleted.Store(true)\n\t\tpw.Close()\n\t}()\n\treturn &Blob{\n\t\tReadCloser: readCloser{\n\t\t\tReader:    pr,\n\t\t\tcloseFunc: layerFiles.CleanupAll,\n\t\t},\n\t\ttocDigest:        tocDgst,\n\t\tdiffID:           diffID,\n\t\treadCompleted:    readCompleted,\n\t\tuncompressedSize: uncompressedSize,\n\t}, nil\n}\n\n// closeWithCombine takes unclosed Writers and close them. This also returns the\n// toc that combined all Writers into.\n// Writers doesn't write TOC and footer to the underlying writers so they can be\n// combined into a single eStargz and tocAndFooter returned by this function can\n// be appended at the tail of that combined blob.\nfunc closeWithCombine(ws ...*Writer) (tocAndFooterR io.Reader, tocDgst digest.Digest, err error) {\n\tif len(ws) == 0 {\n\t\treturn nil, \"\", fmt.Errorf(\"at least one writer must be passed\")\n\t}\n\tfor _, w := range ws {\n\t\tif w.closed {\n\t\t\treturn nil, \"\", fmt.Errorf(\"writer must be unclosed\")\n\t\t}\n\t\tdefer func(w *Writer) { w.closed = true }(w)\n\t\tif err := w.closeGz(); err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\tif err := w.bw.Flush(); err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t}\n\tvar (\n\t\tmtoc          = new(JTOC)\n\t\tcurrentOffset int64\n\t)\n\tmtoc.Version = ws[0].toc.Version\n\tfor _, w := range ws {\n\t\tfor _, e := range w.toc.Entries {\n\t\t\t// Recalculate Offset of non-empty files/chunks\n\t\t\tif (e.Type == \"reg\" && e.Size > 0) || e.Type == \"chunk\" {\n\t\t\t\te.Offset += currentOffset\n\t\t\t}\n\t\t\tmtoc.Entries = append(mtoc.Entries, e)\n\t\t}\n\t\tif w.toc.Version > mtoc.Version {\n\t\t\tmtoc.Version = w.toc.Version\n\t\t}\n\t\tcurrentOffset += w.cw.n\n\t}\n\n\treturn tocAndFooter(ws[0].compressor, mtoc, currentOffset)\n}\n\nfunc tocAndFooter(compressor Compressor, toc *JTOC, offset int64) (io.Reader, digest.Digest, error) {\n\tbuf := new(bytes.Buffer)\n\ttocDigest, err := compressor.WriteTOCAndFooter(buf, offset, toc, nil)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\treturn buf, tocDigest, nil\n}\n\n// divideEntries divides passed entries to the parts at least the number specified by the\n// argument.\nfunc divideEntries(entries []*entry, minPartsNum int) (set [][]*entry) {\n\tvar estimatedSize int64\n\tfor _, e := range entries {\n\t\testimatedSize += e.header.Size\n\t}\n\tunitSize := estimatedSize / int64(minPartsNum)\n\tvar (\n\t\tnextEnd = unitSize\n\t\toffset  int64\n\t)\n\tset = append(set, []*entry{})\n\tfor _, e := range entries {\n\t\tset[len(set)-1] = append(set[len(set)-1], e)\n\t\toffset += e.header.Size\n\t\tif offset > nextEnd {\n\t\t\tset = append(set, []*entry{})\n\t\t\tnextEnd += unitSize\n\t\t}\n\t}\n\treturn\n}\n\nvar errNotFound = errors.New(\"not found\")\n\n// sortEntries reads the specified tar blob and returns a list of tar entries.\n// If some of prioritized files are specified, the list starts from these\n// files with keeping the order specified by the argument.\nfunc sortEntries(in io.ReaderAt, prioritized []string, missedPrioritized *[]string) ([]*entry, error) {\n\n\t// Import tar file.\n\tintar, err := importTar(in)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to sort: %w\", err)\n\t}\n\n\t// Sort the tar file respecting to the prioritized files list.\n\tsorted := &tarFile{}\n\tpicked := make(map[string]struct{})\n\tfor _, l := range prioritized {\n\t\tif err := moveRec(l, intar, sorted, picked); err != nil {\n\t\t\tif errors.Is(err, errNotFound) && missedPrioritized != nil {\n\t\t\t\t*missedPrioritized = append(*missedPrioritized, l)\n\t\t\t\tcontinue // allow not found\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"failed to sort tar entries: %w\", err)\n\t\t}\n\t}\n\tif len(prioritized) == 0 {\n\t\tsorted.add(&entry{\n\t\t\theader: &tar.Header{\n\t\t\t\tName:     NoPrefetchLandmark,\n\t\t\t\tTypeflag: tar.TypeReg,\n\t\t\t\tSize:     int64(len([]byte{landmarkContents})),\n\t\t\t},\n\t\t\tpayload: bytes.NewReader([]byte{landmarkContents}),\n\t\t})\n\t} else {\n\t\tsorted.add(&entry{\n\t\t\theader: &tar.Header{\n\t\t\t\tName:     PrefetchLandmark,\n\t\t\t\tTypeflag: tar.TypeReg,\n\t\t\t\tSize:     int64(len([]byte{landmarkContents})),\n\t\t\t},\n\t\t\tpayload: bytes.NewReader([]byte{landmarkContents}),\n\t\t})\n\t}\n\n\t// Dump prioritized entries followed by the rest entries while skipping picked ones.\n\treturn append(sorted.dump(nil), intar.dump(picked)...), nil\n}\n\n// readerFromEntries returns a reader of tar archive that contains entries passed\n// through the arguments.\nfunc readerFromEntries(entries ...*entry) io.Reader {\n\tpr, pw := io.Pipe()\n\tgo func() {\n\t\ttw := tar.NewWriter(pw)\n\t\tdefer tw.Close()\n\t\tfor _, entry := range entries {\n\t\t\tif err := tw.WriteHeader(entry.header); err != nil {\n\t\t\t\tpw.CloseWithError(fmt.Errorf(\"failed to write tar header: %v\", err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif _, err := io.Copy(tw, entry.payload); err != nil {\n\t\t\t\tpw.CloseWithError(fmt.Errorf(\"failed to write tar payload: %v\", err))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tpw.Close()\n\t}()\n\treturn pr\n}\n\nfunc importTar(in io.ReaderAt) (*tarFile, error) {\n\ttf := &tarFile{}\n\tpw, err := newCountReadSeeker(in)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to make position watcher: %w\", err)\n\t}\n\ttr := tar.NewReader(pw)\n\n\t// Walk through all nodes.\n\tfor {\n\t\t// Fetch and parse next header.\n\t\th, err := tr.Next()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"failed to parse tar file, %w\", err)\n\t\t}\n\t\tswitch cleanEntryName(h.Name) {\n\t\tcase PrefetchLandmark, NoPrefetchLandmark:\n\t\t\t// Ignore existing landmark\n\t\t\tcontinue\n\t\t}\n\n\t\t// Add entry. If it already exists, replace it.\n\t\tif _, ok := tf.get(h.Name); ok {\n\t\t\ttf.remove(h.Name)\n\t\t}\n\t\ttf.add(&entry{\n\t\t\theader:  h,\n\t\t\tpayload: io.NewSectionReader(in, pw.currentPos(), h.Size),\n\t\t})\n\t}\n\n\treturn tf, nil\n}\n\nfunc moveRec(name string, in *tarFile, out *tarFile, picked map[string]struct{}) error {\n\tname = cleanEntryName(name)\n\tif name == \"\" { // root directory. stop recursion.\n\t\tif e, ok := in.get(name); ok {\n\t\t\t// entry of the root directory exists. we should move it as well.\n\t\t\t// this case will occur if tar entries are prefixed with \"./\", \"/\", etc.\n\t\t\tif _, done := picked[name]; !done {\n\t\t\t\tout.add(e)\n\t\t\t\tpicked[name] = struct{}{}\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\t_, okIn := in.get(name)\n\t_, okOut := out.get(name)\n\t_, okPicked := picked[name]\n\tif !okIn && !okOut && !okPicked {\n\t\treturn fmt.Errorf(\"file: %q: %w\", name, errNotFound)\n\t}\n\n\tparent, _ := path.Split(strings.TrimSuffix(name, \"/\"))\n\tif err := moveRec(parent, in, out, picked); err != nil {\n\t\treturn err\n\t}\n\tif e, ok := in.get(name); ok && e.header.Typeflag == tar.TypeLink {\n\t\tif err := moveRec(e.header.Linkname, in, out, picked); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif _, done := picked[name]; done {\n\t\treturn nil\n\t}\n\tif e, ok := in.get(name); ok {\n\t\tout.add(e)\n\t\tpicked[name] = struct{}{}\n\t}\n\treturn nil\n}\n\ntype entry struct {\n\theader  *tar.Header\n\tpayload io.ReadSeeker\n}\n\ntype tarFile struct {\n\tindex  map[string]*entry\n\tstream []*entry\n}\n\nfunc (f *tarFile) add(e *entry) {\n\tif f.index == nil {\n\t\tf.index = make(map[string]*entry)\n\t}\n\tf.index[cleanEntryName(e.header.Name)] = e\n\tf.stream = append(f.stream, e)\n}\n\nfunc (f *tarFile) remove(name string) {\n\tname = cleanEntryName(name)\n\tif f.index != nil {\n\t\tdelete(f.index, name)\n\t}\n\tvar filtered []*entry\n\tfor _, e := range f.stream {\n\t\tif cleanEntryName(e.header.Name) == name {\n\t\t\tcontinue\n\t\t}\n\t\tfiltered = append(filtered, e)\n\t}\n\tf.stream = filtered\n}\n\nfunc (f *tarFile) get(name string) (e *entry, ok bool) {\n\tif f.index == nil {\n\t\treturn nil, false\n\t}\n\te, ok = f.index[cleanEntryName(name)]\n\treturn\n}\n\nfunc (f *tarFile) dump(skip map[string]struct{}) []*entry {\n\tif len(skip) == 0 {\n\t\treturn f.stream\n\t}\n\tvar out []*entry\n\tfor _, e := range f.stream {\n\t\tif _, ok := skip[cleanEntryName(e.header.Name)]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tout = append(out, e)\n\t}\n\treturn out\n}\n\ntype readCloser struct {\n\tio.Reader\n\tcloseFunc func() error\n}\n\nfunc (rc readCloser) Close() error {\n\treturn rc.closeFunc()\n}\n\nfunc fileSectionReader(file *os.File) (*io.SectionReader, error) {\n\tinfo, err := file.Stat()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn io.NewSectionReader(file, 0, info.Size()), nil\n}\n\nfunc newTempFiles() *tempFiles {\n\treturn &tempFiles{}\n}\n\ntype tempFiles struct {\n\tfiles       []*os.File\n\tfilesMu     sync.Mutex\n\tcleanupOnce sync.Once\n}\n\nfunc (tf *tempFiles) TempFile(dir, pattern string) (*os.File, error) {\n\tf, err := os.CreateTemp(dir, pattern)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttf.filesMu.Lock()\n\ttf.files = append(tf.files, f)\n\ttf.filesMu.Unlock()\n\treturn f, nil\n}\n\nfunc (tf *tempFiles) CleanupAll() (err error) {\n\ttf.cleanupOnce.Do(func() {\n\t\terr = tf.cleanupAll()\n\t})\n\treturn\n}\n\nfunc (tf *tempFiles) cleanupAll() error {\n\ttf.filesMu.Lock()\n\tdefer tf.filesMu.Unlock()\n\tvar allErr []error\n\tfor _, f := range tf.files {\n\t\tif err := f.Close(); err != nil {\n\t\t\tallErr = append(allErr, err)\n\t\t}\n\t\tif err := os.Remove(f.Name()); err != nil {\n\t\t\tallErr = append(allErr, err)\n\t\t}\n\t}\n\ttf.files = nil\n\treturn errorutil.Aggregate(allErr)\n}\n\nfunc newCountReadSeeker(r io.ReaderAt) (*countReadSeeker, error) {\n\tpos := int64(0)\n\treturn &countReadSeeker{r: r, cPos: &pos}, nil\n}\n\ntype countReadSeeker struct {\n\tr    io.ReaderAt\n\tcPos *int64\n\n\tmu sync.Mutex\n}\n\nfunc (cr *countReadSeeker) Read(p []byte) (int, error) {\n\tcr.mu.Lock()\n\tdefer cr.mu.Unlock()\n\n\tn, err := cr.r.ReadAt(p, *cr.cPos)\n\tif err == nil {\n\t\t*cr.cPos += int64(n)\n\t}\n\treturn n, err\n}\n\nfunc (cr *countReadSeeker) Seek(offset int64, whence int) (int64, error) {\n\tcr.mu.Lock()\n\tdefer cr.mu.Unlock()\n\n\tswitch whence {\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unknown whence: %v\", whence)\n\tcase io.SeekStart:\n\tcase io.SeekCurrent:\n\t\toffset += *cr.cPos\n\tcase io.SeekEnd:\n\t\treturn 0, fmt.Errorf(\"unsupported whence: %v\", whence)\n\t}\n\n\tif offset < 0 {\n\t\treturn 0, fmt.Errorf(\"invalid offset\")\n\t}\n\t*cr.cPos = offset\n\treturn offset, nil\n}\n\nfunc (cr *countReadSeeker) currentPos() int64 {\n\tcr.mu.Lock()\n\tdefer cr.mu.Unlock()\n\n\treturn *cr.cPos\n}\n\nfunc decompressBlob(org *io.SectionReader, tmp *tempFiles, gzipHelperFunc GzipHelperFunc) (*io.SectionReader, error) {\n\tif org.Size() < 4 {\n\t\treturn org, nil\n\t}\n\tsrc := make([]byte, 4)\n\tif _, err := org.Read(src); err != nil && err != io.EOF {\n\t\treturn nil, err\n\t}\n\tvar dR io.Reader\n\tif bytes.Equal([]byte{0x1F, 0x8B, 0x08}, src[:3]) {\n\t\t// gzip\n\t\tvar dgR io.ReadCloser\n\t\tvar err error\n\t\tif gzipHelperFunc != nil {\n\t\t\tdgR, err = gzipHelperFunc(io.NewSectionReader(org, 0, org.Size()))\n\t\t} else {\n\t\t\tdgR, err = gzip.NewReader(io.NewSectionReader(org, 0, org.Size()))\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefer dgR.Close()\n\t\tdR = io.Reader(dgR)\n\t} else if bytes.Equal([]byte{0x28, 0xb5, 0x2f, 0xfd}, src[:4]) {\n\t\t// zstd\n\t\tdzR, err := zstd.NewReader(io.NewSectionReader(org, 0, org.Size()))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefer dzR.Close()\n\t\tdR = io.Reader(dzR)\n\t} else {\n\t\t// uncompressed\n\t\treturn io.NewSectionReader(org, 0, org.Size()), nil\n\t}\n\tb, err := tmp.TempFile(\"\", \"uncompresseddata\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif _, err := io.Copy(b, dR); err != nil {\n\t\treturn nil, err\n\t}\n\treturn fileSectionReader(b)\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/errorutil/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\npackage errorutil\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Aggregate combines a list of errors into a single new error.\nfunc Aggregate(errs []error) error {\n\tswitch len(errs) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn errs[0]\n\tdefault:\n\t\tpoints := make([]string, len(errs)+1)\n\t\tpoints[0] = fmt.Sprintf(\"%d error(s) occurred:\", len(errs))\n\t\tfor i, err := range errs {\n\t\t\tpoints[i+1] = fmt.Sprintf(\"* %s\", err)\n\t\t}\n\t\treturn errors.New(strings.Join(points, \"\\n\\t\"))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/estargz.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/*\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*/\n\npackage estargz\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"crypto/sha256\"\n\t\"errors\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/containerd/stargz-snapshotter/estargz/errorutil\"\n\tdigest \"github.com/opencontainers/go-digest\"\n\t\"github.com/vbatts/tar-split/archive/tar\"\n)\n\n// A Reader permits random access reads from a stargz file.\ntype Reader struct {\n\tsr        *io.SectionReader\n\ttoc       *JTOC\n\ttocDigest digest.Digest\n\n\t// m stores all non-chunk entries, keyed by name.\n\tm map[string]*TOCEntry\n\n\t// chunks stores all TOCEntry values for regular files that\n\t// are split up. For a file with a single chunk, it's only\n\t// stored in m.\n\tchunks map[string][]*TOCEntry\n\n\tdecompressor Decompressor\n}\n\ntype openOpts struct {\n\ttocOffset     int64\n\tdecompressors []Decompressor\n\ttelemetry     *Telemetry\n}\n\n// OpenOption is an option used during opening the layer\ntype OpenOption func(o *openOpts) error\n\n// WithTOCOffset option specifies the offset of TOC\nfunc WithTOCOffset(tocOffset int64) OpenOption {\n\treturn func(o *openOpts) error {\n\t\to.tocOffset = tocOffset\n\t\treturn nil\n\t}\n}\n\n// WithDecompressors option specifies decompressors to use.\n// Default is gzip-based decompressor.\nfunc WithDecompressors(decompressors ...Decompressor) OpenOption {\n\treturn func(o *openOpts) error {\n\t\to.decompressors = decompressors\n\t\treturn nil\n\t}\n}\n\n// WithTelemetry option specifies the telemetry hooks\nfunc WithTelemetry(telemetry *Telemetry) OpenOption {\n\treturn func(o *openOpts) error {\n\t\to.telemetry = telemetry\n\t\treturn nil\n\t}\n}\n\n// MeasureLatencyHook is a func which takes start time and records the diff\ntype MeasureLatencyHook func(time.Time)\n\n// Telemetry is a struct which defines telemetry hooks. By implementing these hooks you should be able to record\n// the latency metrics of the respective steps of estargz open operation. To be used with estargz.OpenWithTelemetry(...)\ntype Telemetry struct {\n\tGetFooterLatency      MeasureLatencyHook // measure time to get stargz footer (in milliseconds)\n\tGetTocLatency         MeasureLatencyHook // measure time to GET TOC JSON (in milliseconds)\n\tDeserializeTocLatency MeasureLatencyHook // measure time to deserialize TOC JSON (in milliseconds)\n}\n\n// Open opens a stargz file for reading.\n// The behavior is configurable using options.\n//\n// Note that each entry name is normalized as the path that is relative to root.\nfunc Open(sr *io.SectionReader, opt ...OpenOption) (*Reader, error) {\n\tvar opts openOpts\n\tfor _, o := range opt {\n\t\tif err := o(&opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tgzipCompressors := []Decompressor{new(GzipDecompressor), new(LegacyGzipDecompressor)}\n\tdecompressors := append(gzipCompressors, opts.decompressors...)\n\n\t// Determine the size to fetch. Try to fetch as many bytes as possible.\n\tfetchSize := maxFooterSize(sr.Size(), decompressors...)\n\tif maybeTocOffset := opts.tocOffset; maybeTocOffset > fetchSize {\n\t\tif maybeTocOffset > sr.Size() {\n\t\t\treturn nil, fmt.Errorf(\"blob size %d is smaller than the toc offset\", sr.Size())\n\t\t}\n\t\tfetchSize = sr.Size() - maybeTocOffset\n\t}\n\n\tstart := time.Now() // before getting layer footer\n\tfooter := make([]byte, fetchSize)\n\tif _, err := sr.ReadAt(footer, sr.Size()-fetchSize); err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading footer: %v\", err)\n\t}\n\tif opts.telemetry != nil && opts.telemetry.GetFooterLatency != nil {\n\t\topts.telemetry.GetFooterLatency(start)\n\t}\n\n\tvar allErr []error\n\tvar found bool\n\tvar r *Reader\n\tfor _, d := range decompressors {\n\t\tfSize := d.FooterSize()\n\t\tfOffset := positive(int64(len(footer)) - fSize)\n\t\tmaybeTocBytes := footer[:fOffset]\n\t\t_, tocOffset, tocSize, err := d.ParseFooter(footer[fOffset:])\n\t\tif err != nil {\n\t\t\tallErr = append(allErr, err)\n\t\t\tcontinue\n\t\t}\n\t\tif tocOffset >= 0 && tocSize <= 0 {\n\t\t\ttocSize = sr.Size() - tocOffset - fSize\n\t\t}\n\t\tif tocOffset >= 0 && tocSize < int64(len(maybeTocBytes)) {\n\t\t\tmaybeTocBytes = maybeTocBytes[:tocSize]\n\t\t}\n\t\tr, err = parseTOC(d, sr, tocOffset, tocSize, maybeTocBytes, opts)\n\t\tif err == nil {\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t\tallErr = append(allErr, err)\n\t}\n\tif !found {\n\t\treturn nil, errorutil.Aggregate(allErr)\n\t}\n\tif err := r.initFields(); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to initialize fields of entries: %v\", err)\n\t}\n\treturn r, nil\n}\n\n// OpenFooter extracts and parses footer from the given blob.\n// only supports gzip-based eStargz.\nfunc OpenFooter(sr *io.SectionReader) (tocOffset int64, footerSize int64, rErr error) {\n\tif sr.Size() < FooterSize && sr.Size() < legacyFooterSize {\n\t\treturn 0, 0, fmt.Errorf(\"blob size %d is smaller than the footer size\", sr.Size())\n\t}\n\tvar footer [FooterSize]byte\n\tif _, err := sr.ReadAt(footer[:], sr.Size()-FooterSize); err != nil {\n\t\treturn 0, 0, fmt.Errorf(\"error reading footer: %v\", err)\n\t}\n\tvar allErr []error\n\tfor _, d := range []Decompressor{new(GzipDecompressor), new(LegacyGzipDecompressor)} {\n\t\tfSize := d.FooterSize()\n\t\tfOffset := positive(int64(len(footer)) - fSize)\n\t\t_, tocOffset, _, err := d.ParseFooter(footer[fOffset:])\n\t\tif err == nil {\n\t\t\treturn tocOffset, fSize, err\n\t\t}\n\t\tallErr = append(allErr, err)\n\t}\n\treturn 0, 0, errorutil.Aggregate(allErr)\n}\n\n// initFields populates the Reader from r.toc after decoding it from\n// JSON.\n//\n// Unexported fields are populated and TOCEntry fields that were\n// implicit in the JSON are populated.\nfunc (r *Reader) initFields() error {\n\tr.m = make(map[string]*TOCEntry, len(r.toc.Entries))\n\tr.chunks = make(map[string][]*TOCEntry)\n\tvar lastPath string\n\tuname := map[int]string{}\n\tgname := map[int]string{}\n\tvar lastRegEnt *TOCEntry\n\tvar chunkTopIndex int\n\tfor i, ent := range r.toc.Entries {\n\t\tent.Name = cleanEntryName(ent.Name)\n\t\tswitch ent.Type {\n\t\tcase \"reg\", \"chunk\":\n\t\t\tif ent.Offset != r.toc.Entries[chunkTopIndex].Offset {\n\t\t\t\tchunkTopIndex = i\n\t\t\t}\n\t\t\tent.chunkTopIndex = chunkTopIndex\n\t\t}\n\t\tif ent.Type == \"reg\" {\n\t\t\tlastRegEnt = ent\n\t\t}\n\t\tif ent.Type == \"chunk\" {\n\t\t\tent.Name = lastPath\n\t\t\tr.chunks[ent.Name] = append(r.chunks[ent.Name], ent)\n\t\t\tif ent.ChunkSize == 0 && lastRegEnt != nil {\n\t\t\t\tent.ChunkSize = lastRegEnt.Size - ent.ChunkOffset\n\t\t\t}\n\t\t} else {\n\t\t\tlastPath = ent.Name\n\n\t\t\tif ent.Uname != \"\" {\n\t\t\t\tuname[ent.UID] = ent.Uname\n\t\t\t} else {\n\t\t\t\tent.Uname = uname[ent.UID]\n\t\t\t}\n\t\t\tif ent.Gname != \"\" {\n\t\t\t\tgname[ent.GID] = ent.Gname\n\t\t\t} else {\n\t\t\t\tent.Gname = gname[ent.GID]\n\t\t\t}\n\n\t\t\tent.modTime, _ = time.Parse(time.RFC3339, ent.ModTime3339)\n\n\t\t\tif ent.Type == \"dir\" {\n\t\t\t\tent.NumLink++ // Parent dir links to this directory\n\t\t\t}\n\t\t\tr.m[ent.Name] = ent\n\t\t}\n\t\tif ent.Type == \"reg\" && ent.ChunkSize > 0 && ent.ChunkSize < ent.Size {\n\t\t\tr.chunks[ent.Name] = make([]*TOCEntry, 0, ent.Size/ent.ChunkSize+1)\n\t\t\tr.chunks[ent.Name] = append(r.chunks[ent.Name], ent)\n\t\t}\n\t\tif ent.ChunkSize == 0 && ent.Size != 0 {\n\t\t\tent.ChunkSize = ent.Size\n\t\t}\n\t}\n\n\t// Populate children, add implicit directories:\n\tfor _, ent := range r.toc.Entries {\n\t\tif ent.Type == \"chunk\" {\n\t\t\tcontinue\n\t\t}\n\t\t// add \"foo/\":\n\t\t//    add \"foo\" child to \"\" (creating \"\" if necessary)\n\t\t//\n\t\t// add \"foo/bar/\":\n\t\t//    add \"bar\" child to \"foo\" (creating \"foo\" if necessary)\n\t\t//\n\t\t// add \"foo/bar.txt\":\n\t\t//    add \"bar.txt\" child to \"foo\" (creating \"foo\" if necessary)\n\t\t//\n\t\t// add \"a/b/c/d/e/f.txt\":\n\t\t//    create \"a/b/c/d/e\" node\n\t\t//    add \"f.txt\" child to \"e\"\n\n\t\tname := ent.Name\n\t\tpdirName := parentDir(name)\n\t\tif name == pdirName {\n\t\t\t// This entry and its parent are the same.\n\t\t\t// Ignore this for avoiding infinite loop of the reference.\n\t\t\t// The example case where this can occur is when tar contains the root\n\t\t\t// directory itself (e.g. \"./\", \"/\").\n\t\t\tcontinue\n\t\t}\n\t\tpdir := r.getOrCreateDir(pdirName)\n\t\tent.NumLink++ // at least one name(ent.Name) references this entry.\n\t\tif ent.Type == \"hardlink\" {\n\t\t\torg, err := r.getSource(ent)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\torg.NumLink++ // original entry is referenced by this ent.Name.\n\t\t\tent = org\n\t\t}\n\t\tpdir.addChild(path.Base(name), ent)\n\t}\n\n\tlastOffset := r.sr.Size()\n\tfor i := len(r.toc.Entries) - 1; i >= 0; i-- {\n\t\te := r.toc.Entries[i]\n\t\tif e.isDataType() {\n\t\t\te.nextOffset = lastOffset\n\t\t}\n\t\tif e.Offset != 0 && e.InnerOffset == 0 {\n\t\t\tlastOffset = e.Offset\n\t\t}\n\t}\n\n\tif len(r.m) == 0 {\n\t\tr.m[\"\"] = &TOCEntry{\n\t\t\tName:    \"\",\n\t\t\tType:    \"dir\",\n\t\t\tMode:    0755,\n\t\t\tNumLink: 1,\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (r *Reader) getSource(ent *TOCEntry) (_ *TOCEntry, err error) {\n\tif ent.Type == \"hardlink\" {\n\t\torg, ok := r.m[cleanEntryName(ent.LinkName)]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"%q is a hardlink but the linkname %q isn't found\", ent.Name, ent.LinkName)\n\t\t}\n\t\tent, err = r.getSource(org)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn ent, nil\n}\n\nfunc parentDir(p string) string {\n\tdir, _ := path.Split(p)\n\treturn strings.TrimSuffix(dir, \"/\")\n}\n\nfunc (r *Reader) getOrCreateDir(d string) *TOCEntry {\n\te, ok := r.m[d]\n\tif !ok {\n\t\te = &TOCEntry{\n\t\t\tName:    d,\n\t\t\tType:    \"dir\",\n\t\t\tMode:    0755,\n\t\t\tNumLink: 2, // The directory itself(.) and the parent link to this directory.\n\t\t}\n\t\tr.m[d] = e\n\t\tif d != \"\" {\n\t\t\tpdir := r.getOrCreateDir(parentDir(d))\n\t\t\tpdir.addChild(path.Base(d), e)\n\t\t}\n\t}\n\treturn e\n}\n\nfunc (r *Reader) TOCDigest() digest.Digest {\n\treturn r.tocDigest\n}\n\n// VerifyTOC checks that the TOC JSON in the passed blob matches the\n// passed digests and that the TOC JSON contains digests for all chunks\n// contained in the blob. If the verification succceeds, this function\n// returns TOCEntryVerifier which holds all chunk digests in the stargz blob.\nfunc (r *Reader) VerifyTOC(tocDigest digest.Digest) (TOCEntryVerifier, error) {\n\t// Verify the digest of TOC JSON\n\tif r.tocDigest != tocDigest {\n\t\treturn nil, fmt.Errorf(\"invalid TOC JSON %q; want %q\", r.tocDigest, tocDigest)\n\t}\n\treturn r.Verifiers()\n}\n\n// Verifiers returns TOCEntryVerifier of this chunk. Use VerifyTOC instead in most cases\n// because this doesn't verify TOC.\nfunc (r *Reader) Verifiers() (TOCEntryVerifier, error) {\n\tchunkDigestMap := make(map[int64]digest.Digest) // map from chunk offset to the chunk digest\n\tregDigestMap := make(map[int64]digest.Digest)   // map from chunk offset to the reg file digest\n\tvar chunkDigestMapIncomplete bool\n\tvar regDigestMapIncomplete bool\n\tvar containsChunk bool\n\tfor _, e := range r.toc.Entries {\n\t\tif e.Type != \"reg\" && e.Type != \"chunk\" {\n\t\t\tcontinue\n\t\t}\n\n\t\t// offset must be unique in stargz blob\n\t\t_, dOK := chunkDigestMap[e.Offset]\n\t\t_, rOK := regDigestMap[e.Offset]\n\t\tif dOK || rOK {\n\t\t\treturn nil, fmt.Errorf(\"offset %d found twice\", e.Offset)\n\t\t}\n\n\t\tif e.Type == \"reg\" {\n\t\t\tif e.Size == 0 {\n\t\t\t\tcontinue // ignores empty file\n\t\t\t}\n\n\t\t\t// record the digest of regular file payload\n\t\t\tif e.Digest != \"\" {\n\t\t\t\td, err := digest.Parse(e.Digest)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"failed to parse regular file digest %q: %w\", e.Digest, err)\n\t\t\t\t}\n\t\t\t\tregDigestMap[e.Offset] = d\n\t\t\t} else {\n\t\t\t\tregDigestMapIncomplete = true\n\t\t\t}\n\t\t} else {\n\t\t\tcontainsChunk = true // this layer contains \"chunk\" entries.\n\t\t}\n\n\t\t// \"reg\" also can contain ChunkDigest (e.g. when \"reg\" is the first entry of\n\t\t// chunked file)\n\t\tif e.ChunkDigest != \"\" {\n\t\t\td, err := digest.Parse(e.ChunkDigest)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse chunk digest %q: %w\", e.ChunkDigest, err)\n\t\t\t}\n\t\t\tchunkDigestMap[e.Offset] = d\n\t\t} else {\n\t\t\tchunkDigestMapIncomplete = true\n\t\t}\n\t}\n\n\tif chunkDigestMapIncomplete {\n\t\t// Though some chunk digests are not found, if this layer doesn't contain\n\t\t// \"chunk\"s and all digest of \"reg\" files are recorded, we can use them instead.\n\t\tif !containsChunk && !regDigestMapIncomplete {\n\t\t\treturn &verifier{digestMap: regDigestMap}, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"some ChunkDigest not found in TOC JSON\")\n\t}\n\n\treturn &verifier{digestMap: chunkDigestMap}, nil\n}\n\n// verifier is an implementation of TOCEntryVerifier which holds verifiers keyed by\n// offset of the chunk.\ntype verifier struct {\n\tdigestMap   map[int64]digest.Digest\n\tdigestMapMu sync.Mutex\n}\n\n// Verifier returns a content verifier specified by TOCEntry.\nfunc (v *verifier) Verifier(ce *TOCEntry) (digest.Verifier, error) {\n\tv.digestMapMu.Lock()\n\tdefer v.digestMapMu.Unlock()\n\td, ok := v.digestMap[ce.Offset]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"verifier for offset=%d,size=%d hasn't been registered\",\n\t\t\tce.Offset, ce.ChunkSize)\n\t}\n\treturn d.Verifier(), nil\n}\n\n// ChunkEntryForOffset returns the TOCEntry containing the byte of the\n// named file at the given offset within the file.\n// Name must be absolute path or one that is relative to root.\nfunc (r *Reader) ChunkEntryForOffset(name string, offset int64) (e *TOCEntry, ok bool) {\n\tname = cleanEntryName(name)\n\te, ok = r.Lookup(name)\n\tif !ok || !e.isDataType() {\n\t\treturn nil, false\n\t}\n\tents := r.chunks[name]\n\tif len(ents) < 2 {\n\t\tif offset >= e.ChunkSize {\n\t\t\treturn nil, false\n\t\t}\n\t\treturn e, true\n\t}\n\ti := sort.Search(len(ents), func(i int) bool {\n\t\te := ents[i]\n\t\treturn e.ChunkOffset >= offset || (offset > e.ChunkOffset && offset < e.ChunkOffset+e.ChunkSize)\n\t})\n\tif i == len(ents) {\n\t\treturn nil, false\n\t}\n\treturn ents[i], true\n}\n\n// Lookup returns the Table of Contents entry for the given path.\n//\n// To get the root directory, use the empty string.\n// Path must be absolute path or one that is relative to root.\nfunc (r *Reader) Lookup(path string) (e *TOCEntry, ok bool) {\n\tpath = cleanEntryName(path)\n\tif r == nil {\n\t\treturn\n\t}\n\te, ok = r.m[path]\n\tif ok && e.Type == \"hardlink\" {\n\t\tvar err error\n\t\te, err = r.getSource(e)\n\t\tif err != nil {\n\t\t\treturn nil, false\n\t\t}\n\t}\n\treturn\n}\n\n// OpenFile returns the reader of the specified file payload.\n//\n// Name must be absolute path or one that is relative to root.\nfunc (r *Reader) OpenFile(name string) (*io.SectionReader, error) {\n\tfr, err := r.newFileReader(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn io.NewSectionReader(fr, 0, fr.size), nil\n}\n\nfunc (r *Reader) newFileReader(name string) (*fileReader, error) {\n\tname = cleanEntryName(name)\n\tent, ok := r.Lookup(name)\n\tif !ok {\n\t\t// TODO: come up with some error plan. This is lazy:\n\t\treturn nil, &os.PathError{\n\t\t\tPath: name,\n\t\t\tOp:   \"OpenFile\",\n\t\t\tErr:  os.ErrNotExist,\n\t\t}\n\t}\n\tif ent.Type != \"reg\" {\n\t\treturn nil, &os.PathError{\n\t\t\tPath: name,\n\t\t\tOp:   \"OpenFile\",\n\t\t\tErr:  errors.New(\"not a regular file\"),\n\t\t}\n\t}\n\treturn &fileReader{\n\t\tr:    r,\n\t\tsize: ent.Size,\n\t\tents: r.getChunks(ent),\n\t}, nil\n}\n\nfunc (r *Reader) OpenFileWithPreReader(name string, preRead func(*TOCEntry, io.Reader) error) (*io.SectionReader, error) {\n\tfr, err := r.newFileReader(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfr.preRead = preRead\n\treturn io.NewSectionReader(fr, 0, fr.size), nil\n}\n\nfunc (r *Reader) getChunks(ent *TOCEntry) []*TOCEntry {\n\tif ents, ok := r.chunks[ent.Name]; ok {\n\t\treturn ents\n\t}\n\treturn []*TOCEntry{ent}\n}\n\ntype fileReader struct {\n\tr       *Reader\n\tsize    int64\n\tents    []*TOCEntry // 1 or more reg/chunk entries\n\tpreRead func(*TOCEntry, io.Reader) error\n}\n\nfunc (fr *fileReader) ReadAt(p []byte, off int64) (n int, err error) {\n\tif off >= fr.size {\n\t\treturn 0, io.EOF\n\t}\n\tif off < 0 {\n\t\treturn 0, errors.New(\"invalid offset\")\n\t}\n\tvar i int\n\tif len(fr.ents) > 1 {\n\t\ti = sort.Search(len(fr.ents), func(i int) bool {\n\t\t\treturn fr.ents[i].ChunkOffset >= off\n\t\t})\n\t\tif i == len(fr.ents) {\n\t\t\ti = len(fr.ents) - 1\n\t\t}\n\t}\n\tent := fr.ents[i]\n\tif ent.ChunkOffset > off {\n\t\tif i == 0 {\n\t\t\treturn 0, errors.New(\"internal error; first chunk offset is non-zero\")\n\t\t}\n\t\tent = fr.ents[i-1]\n\t}\n\n\t//  If ent is a chunk of a large file, adjust the ReadAt\n\t//  offset by the chunk's offset.\n\toff -= ent.ChunkOffset\n\n\tfinalEnt := fr.ents[len(fr.ents)-1]\n\tcompressedOff := ent.Offset\n\t// compressedBytesRemain is the number of compressed bytes in this\n\t// file remaining, over 1+ chunks.\n\tcompressedBytesRemain := finalEnt.NextOffset() - compressedOff\n\n\tsr := io.NewSectionReader(fr.r.sr, compressedOff, compressedBytesRemain)\n\n\tconst maxRead = 2 << 20\n\tvar bufSize = maxRead\n\tif compressedBytesRemain < maxRead {\n\t\tbufSize = int(compressedBytesRemain)\n\t}\n\n\tbr := bufio.NewReaderSize(sr, bufSize)\n\tif _, err := br.Peek(bufSize); err != nil {\n\t\treturn 0, fmt.Errorf(\"fileReader.ReadAt.peek: %v\", err)\n\t}\n\n\tdr, err := fr.r.decompressor.Reader(br)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"fileReader.ReadAt.decompressor.Reader: %v\", err)\n\t}\n\tdefer dr.Close()\n\n\tif fr.preRead == nil {\n\t\tif n, err := io.CopyN(io.Discard, dr, ent.InnerOffset+off); n != ent.InnerOffset+off || err != nil {\n\t\t\treturn 0, fmt.Errorf(\"discard of %d bytes != %v, %v\", ent.InnerOffset+off, n, err)\n\t\t}\n\t\treturn io.ReadFull(dr, p)\n\t}\n\n\tvar retN int\n\tvar retErr error\n\tvar found bool\n\tvar nr int64\n\tfor _, e := range fr.r.toc.Entries[ent.chunkTopIndex:] {\n\t\tif !e.isDataType() {\n\t\t\tcontinue\n\t\t}\n\t\tif e.Offset != fr.r.toc.Entries[ent.chunkTopIndex].Offset {\n\t\t\tbreak\n\t\t}\n\t\tif in, err := io.CopyN(io.Discard, dr, e.InnerOffset-nr); err != nil || in != e.InnerOffset-nr {\n\t\t\treturn 0, fmt.Errorf(\"discard of remaining %d bytes != %v, %v\", e.InnerOffset-nr, in, err)\n\t\t}\n\t\tnr = e.InnerOffset\n\t\tif e == ent {\n\t\t\tfound = true\n\t\t\tif n, err := io.CopyN(io.Discard, dr, off); n != off || err != nil {\n\t\t\t\treturn 0, fmt.Errorf(\"discard of offset %d bytes != %v, %v\", off, n, err)\n\t\t\t}\n\t\t\tretN, retErr = io.ReadFull(dr, p)\n\t\t\tnr += off + int64(retN)\n\t\t\tcontinue\n\t\t}\n\t\tcr := &countReader{r: io.LimitReader(dr, e.ChunkSize)}\n\t\tif err := fr.preRead(e, cr); err != nil {\n\t\t\treturn 0, fmt.Errorf(\"failed to pre read: %w\", err)\n\t\t}\n\t\tnr += cr.n\n\t}\n\tif !found {\n\t\treturn 0, fmt.Errorf(\"fileReader.ReadAt: target entry not found\")\n\t}\n\treturn retN, retErr\n}\n\n// A Writer writes stargz files.\n//\n// Use NewWriter to create a new Writer.\ntype Writer struct {\n\tbw       *bufio.Writer\n\tcw       *countWriter\n\ttoc      *JTOC\n\tdiffHash hash.Hash // SHA-256 of uncompressed tar\n\n\tclosed        bool\n\tgz            io.WriteCloser\n\tlastUsername  map[int]string\n\tlastGroupname map[int]string\n\tcompressor    Compressor\n\n\tuncompressedCounter *countWriteFlusher\n\n\t// ChunkSize optionally controls the maximum number of bytes\n\t// of data of a regular file that can be written in one gzip\n\t// stream before a new gzip stream is started.\n\t// Zero means to use a default, currently 4 MiB.\n\tChunkSize int\n\n\t// MinChunkSize optionally controls the minimum number of bytes\n\t// of data must be written in one gzip stream before a new gzip\n\t// NOTE: This adds a TOC property that stargz snapshotter < v0.13.0 doesn't understand.\n\tMinChunkSize int\n\n\tneedsOpenGzEntries map[string]struct{}\n}\n\n// currentCompressionWriter writes to the current w.gz field, which can\n// change throughout writing a tar entry.\n//\n// Additionally, it updates w's SHA-256 of the uncompressed bytes\n// of the tar file.\ntype currentCompressionWriter struct{ w *Writer }\n\nfunc (ccw currentCompressionWriter) Write(p []byte) (int, error) {\n\tccw.w.diffHash.Write(p)\n\tif ccw.w.gz == nil {\n\t\tif err := ccw.w.condOpenGz(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn ccw.w.gz.Write(p)\n}\n\nfunc (w *Writer) chunkSize() int {\n\tif w.ChunkSize <= 0 {\n\t\treturn 4 << 20\n\t}\n\treturn w.ChunkSize\n}\n\n// Unpack decompresses the given estargz blob and returns a ReadCloser of the tar blob.\n// TOC JSON and footer are removed.\nfunc Unpack(sr *io.SectionReader, c Decompressor) (io.ReadCloser, error) {\n\tfooterSize := c.FooterSize()\n\tif sr.Size() < footerSize {\n\t\treturn nil, fmt.Errorf(\"blob is too small; %d < %d\", sr.Size(), footerSize)\n\t}\n\tfooterOffset := sr.Size() - footerSize\n\tfooter := make([]byte, footerSize)\n\tif _, err := sr.ReadAt(footer, footerOffset); err != nil {\n\t\treturn nil, err\n\t}\n\tblobPayloadSize, _, _, err := c.ParseFooter(footer)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse footer: %w\", err)\n\t}\n\tif blobPayloadSize < 0 {\n\t\tblobPayloadSize = sr.Size()\n\t}\n\treturn c.Reader(io.LimitReader(sr, blobPayloadSize))\n}\n\n// NewWriter returns a new stargz writer (gzip-based) writing to w.\n//\n// The writer must be closed to write its trailing table of contents.\nfunc NewWriter(w io.Writer) *Writer {\n\treturn NewWriterLevel(w, gzip.BestCompression)\n}\n\n// NewWriterLevel returns a new stargz writer (gzip-based) writing to w.\n// The compression level is configurable.\n//\n// The writer must be closed to write its trailing table of contents.\nfunc NewWriterLevel(w io.Writer, compressionLevel int) *Writer {\n\treturn NewWriterWithCompressor(w, NewGzipCompressorWithLevel(compressionLevel))\n}\n\n// NewWriterWithCompressor returns a new stargz writer writing to w.\n// The compression method is configurable.\n//\n// The writer must be closed to write its trailing table of contents.\nfunc NewWriterWithCompressor(w io.Writer, c Compressor) *Writer {\n\tbw := bufio.NewWriter(w)\n\tcw := &countWriter{w: bw}\n\treturn &Writer{\n\t\tbw:                  bw,\n\t\tcw:                  cw,\n\t\ttoc:                 &JTOC{Version: 1},\n\t\tdiffHash:            sha256.New(),\n\t\tcompressor:          c,\n\t\tuncompressedCounter: &countWriteFlusher{},\n\t}\n}\n\n// Close writes the stargz's table of contents and flushes all the\n// buffers, returning any error.\nfunc (w *Writer) Close() (digest.Digest, error) {\n\tif w.closed {\n\t\treturn \"\", nil\n\t}\n\tdefer func() { w.closed = true }()\n\n\tif err := w.closeGz(); err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Write the TOC index and footer.\n\ttocDigest, err := w.compressor.WriteTOCAndFooter(w.cw, w.cw.n, w.toc, w.diffHash)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif err := w.bw.Flush(); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn tocDigest, nil\n}\n\nfunc (w *Writer) closeGz() error {\n\tif w.closed {\n\t\treturn errors.New(\"write on closed Writer\")\n\t}\n\tif w.gz != nil {\n\t\tif err := w.gz.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tw.gz = nil\n\t}\n\treturn nil\n}\n\nfunc (w *Writer) flushGz() error {\n\tif w.closed {\n\t\treturn errors.New(\"flush on closed Writer\")\n\t}\n\tif w.gz != nil {\n\t\tif f, ok := w.gz.(interface {\n\t\t\tFlush() error\n\t\t}); ok {\n\t\t\treturn f.Flush()\n\t\t}\n\t}\n\treturn nil\n}\n\n// nameIfChanged returns name, unless it was the already the value of (*mp)[id],\n// in which case it returns the empty string.\nfunc (w *Writer) nameIfChanged(mp *map[int]string, id int, name string) string {\n\tif name == \"\" {\n\t\treturn \"\"\n\t}\n\tif *mp == nil {\n\t\t*mp = make(map[int]string)\n\t}\n\tif (*mp)[id] == name {\n\t\treturn \"\"\n\t}\n\t(*mp)[id] = name\n\treturn name\n}\n\nfunc (w *Writer) condOpenGz() (err error) {\n\tif w.gz == nil {\n\t\tw.gz, err = w.compressor.Writer(w.cw)\n\t\tif w.gz != nil {\n\t\t\tw.gz = w.uncompressedCounter.register(w.gz)\n\t\t}\n\t}\n\treturn\n}\n\n// AppendTar reads the tar or tar.gz file from r and appends\n// each of its contents to w.\n//\n// The input r can optionally be gzip compressed but the output will\n// always be compressed by the specified compressor.\nfunc (w *Writer) AppendTar(r io.Reader) error {\n\treturn w.appendTar(r, false)\n}\n\n// AppendTarLossLess reads the tar or tar.gz file from r and appends\n// each of its contents to w.\n//\n// The input r can optionally be gzip compressed but the output will\n// always be compressed by the specified compressor.\n//\n// The difference of this func with AppendTar is that this writes\n// the input tar stream into w without any modification (e.g. to header bytes).\n//\n// Note that if the input tar stream already contains TOC JSON, this returns\n// error because w cannot overwrite the TOC JSON to the one generated by w without\n// lossy modification. To avoid this error, if the input stream is known to be stargz/estargz,\n// you shoud decompress it and remove TOC JSON in advance.\nfunc (w *Writer) AppendTarLossLess(r io.Reader) error {\n\treturn w.appendTar(r, true)\n}\n\nfunc (w *Writer) appendTar(r io.Reader, lossless bool) error {\n\tvar src io.Reader\n\tbr := bufio.NewReader(r)\n\tif isGzip(br) {\n\t\tzr, _ := gzip.NewReader(br)\n\t\tsrc = zr\n\t} else {\n\t\tsrc = io.Reader(br)\n\t}\n\tdst := currentCompressionWriter{w}\n\tvar tw *tar.Writer\n\tif !lossless {\n\t\ttw = tar.NewWriter(dst) // use tar writer only when this isn't lossless mode.\n\t}\n\ttr := tar.NewReader(src)\n\tif lossless {\n\t\ttr.RawAccounting = true\n\t}\n\tprevOffset := w.cw.n\n\tvar prevOffsetUncompressed int64\n\tfor {\n\t\th, err := tr.Next()\n\t\tif err == io.EOF {\n\t\t\tif lossless {\n\t\t\t\tif remain := tr.RawBytes(); len(remain) > 0 {\n\t\t\t\t\t// Collect the remaining null bytes.\n\t\t\t\t\t// https://github.com/vbatts/tar-split/blob/80a436fd6164c557b131f7c59ed69bd81af69761/concept/main.go#L49-L53\n\t\t\t\t\tif _, err := dst.Write(remain); 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\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"error reading from source tar: tar.Reader.Next: %v\", err)\n\t\t}\n\t\tif cleanEntryName(h.Name) == TOCTarName {\n\t\t\t// It is possible for a layer to be \"stargzified\" twice during the\n\t\t\t// distribution lifecycle. So we reserve \"TOCTarName\" here to avoid\n\t\t\t// duplicated entries in the resulting layer.\n\t\t\tif lossless {\n\t\t\t\t// We cannot handle this in lossless way.\n\t\t\t\treturn fmt.Errorf(\"existing TOC JSON is not allowed; decompress layer before append\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\txattrs := make(map[string][]byte)\n\t\tconst xattrPAXRecordsPrefix = \"SCHILY.xattr.\"\n\t\tif h.PAXRecords != nil {\n\t\t\tfor k, v := range h.PAXRecords {\n\t\t\t\tif strings.HasPrefix(k, xattrPAXRecordsPrefix) {\n\t\t\t\t\txattrs[k[len(xattrPAXRecordsPrefix):]] = []byte(v)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tent := &TOCEntry{\n\t\t\tName:        h.Name,\n\t\t\tMode:        h.Mode,\n\t\t\tUID:         h.Uid,\n\t\t\tGID:         h.Gid,\n\t\t\tUname:       w.nameIfChanged(&w.lastUsername, h.Uid, h.Uname),\n\t\t\tGname:       w.nameIfChanged(&w.lastGroupname, h.Gid, h.Gname),\n\t\t\tModTime3339: formatModtime(h.ModTime),\n\t\t\tXattrs:      xattrs,\n\t\t}\n\t\tif err := w.condOpenGz(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif tw != nil {\n\t\t\tif err := tw.WriteHeader(h); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tif _, err := dst.Write(tr.RawBytes()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tswitch h.Typeflag {\n\t\tcase tar.TypeLink:\n\t\t\tent.Type = \"hardlink\"\n\t\t\tent.LinkName = h.Linkname\n\t\tcase tar.TypeSymlink:\n\t\t\tent.Type = \"symlink\"\n\t\t\tent.LinkName = h.Linkname\n\t\tcase tar.TypeDir:\n\t\t\tent.Type = \"dir\"\n\t\tcase tar.TypeReg:\n\t\t\tent.Type = \"reg\"\n\t\t\tent.Size = h.Size\n\t\tcase tar.TypeChar:\n\t\t\tent.Type = \"char\"\n\t\t\tent.DevMajor = int(h.Devmajor)\n\t\t\tent.DevMinor = int(h.Devminor)\n\t\tcase tar.TypeBlock:\n\t\t\tent.Type = \"block\"\n\t\t\tent.DevMajor = int(h.Devmajor)\n\t\t\tent.DevMinor = int(h.Devminor)\n\t\tcase tar.TypeFifo:\n\t\t\tent.Type = \"fifo\"\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"unsupported input tar entry %q\", h.Typeflag)\n\t\t}\n\n\t\t// We need to keep a reference to the TOC entry for regular files, so that we\n\t\t// can fill the digest later.\n\t\tvar regFileEntry *TOCEntry\n\t\tvar payloadDigest digest.Digester\n\t\tif h.Typeflag == tar.TypeReg {\n\t\t\tregFileEntry = ent\n\t\t\tpayloadDigest = digest.Canonical.Digester()\n\t\t}\n\n\t\tif h.Typeflag == tar.TypeReg && ent.Size > 0 {\n\t\t\tvar written int64\n\t\t\ttotalSize := ent.Size // save it before we destroy ent\n\t\t\ttee := io.TeeReader(tr, payloadDigest.Hash())\n\t\t\tfor written < totalSize {\n\t\t\t\tchunkSize := int64(w.chunkSize())\n\t\t\t\tremain := totalSize - written\n\t\t\t\tif remain < chunkSize {\n\t\t\t\t\tchunkSize = remain\n\t\t\t\t} else {\n\t\t\t\t\tent.ChunkSize = chunkSize\n\t\t\t\t}\n\n\t\t\t\t// We flush the underlying compression writer here to correctly calculate \"w.cw.n\".\n\t\t\t\tif err := w.flushGz(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif w.needsOpenGz(ent) || w.cw.n-prevOffset >= int64(w.MinChunkSize) {\n\t\t\t\t\tif err := w.closeGz(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tent.Offset = w.cw.n\n\t\t\t\t\tprevOffset = ent.Offset\n\t\t\t\t\tprevOffsetUncompressed = w.uncompressedCounter.n\n\t\t\t\t} else {\n\t\t\t\t\tent.Offset = prevOffset\n\t\t\t\t\tent.InnerOffset = w.uncompressedCounter.n - prevOffsetUncompressed\n\t\t\t\t}\n\n\t\t\t\tent.ChunkOffset = written\n\t\t\t\tchunkDigest := digest.Canonical.Digester()\n\n\t\t\t\tif err := w.condOpenGz(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tteeChunk := io.TeeReader(tee, chunkDigest.Hash())\n\t\t\t\tvar out io.Writer\n\t\t\t\tif tw != nil {\n\t\t\t\t\tout = tw\n\t\t\t\t} else {\n\t\t\t\t\tout = dst\n\t\t\t\t}\n\t\t\t\tif _, err := io.CopyN(out, teeChunk, chunkSize); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"error copying %q: %v\", h.Name, err)\n\t\t\t\t}\n\t\t\t\tent.ChunkDigest = chunkDigest.Digest().String()\n\t\t\t\tw.toc.Entries = append(w.toc.Entries, ent)\n\t\t\t\twritten += chunkSize\n\t\t\t\tent = &TOCEntry{\n\t\t\t\t\tName: h.Name,\n\t\t\t\t\tType: \"chunk\",\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tw.toc.Entries = append(w.toc.Entries, ent)\n\t\t}\n\t\tif payloadDigest != nil {\n\t\t\tregFileEntry.Digest = payloadDigest.Digest().String()\n\t\t}\n\t\tif tw != nil {\n\t\t\tif err := tw.Flush(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\tremainDest := io.Discard\n\tif lossless {\n\t\tremainDest = dst // Preserve the remaining bytes in lossless mode\n\t}\n\t_, err := io.Copy(remainDest, src)\n\treturn err\n}\n\nfunc (w *Writer) needsOpenGz(ent *TOCEntry) bool {\n\tif ent.Type != \"reg\" {\n\t\treturn false\n\t}\n\tif w.needsOpenGzEntries == nil {\n\t\treturn false\n\t}\n\t_, ok := w.needsOpenGzEntries[ent.Name]\n\treturn ok\n}\n\n// DiffID returns the SHA-256 of the uncompressed tar bytes.\n// It is only valid to call DiffID after Close.\nfunc (w *Writer) DiffID() string {\n\treturn fmt.Sprintf(\"sha256:%x\", w.diffHash.Sum(nil))\n}\n\nfunc maxFooterSize(blobSize int64, decompressors ...Decompressor) (res int64) {\n\tfor _, d := range decompressors {\n\t\tif s := d.FooterSize(); res < s && s <= blobSize {\n\t\t\tres = s\n\t\t}\n\t}\n\treturn\n}\n\nfunc parseTOC(d Decompressor, sr *io.SectionReader, tocOff, tocSize int64, tocBytes []byte, opts openOpts) (*Reader, error) {\n\tif tocOff < 0 {\n\t\t// This means that TOC isn't contained in the blob.\n\t\t// We pass nil reader to ParseTOC and expect that ParseTOC acquire TOC from\n\t\t// the external location.\n\t\tstart := time.Now()\n\t\ttoc, tocDgst, err := d.ParseTOC(nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts.telemetry != nil && opts.telemetry.GetTocLatency != nil {\n\t\t\topts.telemetry.GetTocLatency(start)\n\t\t}\n\t\tif opts.telemetry != nil && opts.telemetry.DeserializeTocLatency != nil {\n\t\t\topts.telemetry.DeserializeTocLatency(start)\n\t\t}\n\t\treturn &Reader{\n\t\t\tsr:           sr,\n\t\t\ttoc:          toc,\n\t\t\ttocDigest:    tocDgst,\n\t\t\tdecompressor: d,\n\t\t}, nil\n\t}\n\tif len(tocBytes) > 0 {\n\t\tstart := time.Now()\n\t\ttoc, tocDgst, err := d.ParseTOC(bytes.NewReader(tocBytes))\n\t\tif err == nil {\n\t\t\tif opts.telemetry != nil && opts.telemetry.DeserializeTocLatency != nil {\n\t\t\t\topts.telemetry.DeserializeTocLatency(start)\n\t\t\t}\n\t\t\treturn &Reader{\n\t\t\t\tsr:           sr,\n\t\t\t\ttoc:          toc,\n\t\t\t\ttocDigest:    tocDgst,\n\t\t\t\tdecompressor: d,\n\t\t\t}, nil\n\t\t}\n\t}\n\n\tstart := time.Now()\n\ttocBytes = make([]byte, tocSize)\n\tif _, err := sr.ReadAt(tocBytes, tocOff); err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading %d byte TOC targz: %v\", len(tocBytes), err)\n\t}\n\tif opts.telemetry != nil && opts.telemetry.GetTocLatency != nil {\n\t\topts.telemetry.GetTocLatency(start)\n\t}\n\tstart = time.Now()\n\ttoc, tocDgst, err := d.ParseTOC(bytes.NewReader(tocBytes))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif opts.telemetry != nil && opts.telemetry.DeserializeTocLatency != nil {\n\t\topts.telemetry.DeserializeTocLatency(start)\n\t}\n\treturn &Reader{\n\t\tsr:           sr,\n\t\ttoc:          toc,\n\t\ttocDigest:    tocDgst,\n\t\tdecompressor: d,\n\t}, nil\n}\n\nfunc formatModtime(t time.Time) string {\n\tif t.IsZero() || t.Unix() == 0 {\n\t\treturn \"\"\n\t}\n\treturn t.UTC().Round(time.Second).Format(time.RFC3339)\n}\n\nfunc cleanEntryName(name string) string {\n\t// Use path.Clean to consistently deal with path separators across platforms.\n\treturn strings.TrimPrefix(path.Clean(\"/\"+name), \"/\")\n}\n\n// countWriter counts how many bytes have been written to its wrapped\n// io.Writer.\ntype countWriter struct {\n\tw io.Writer\n\tn int64\n}\n\nfunc (cw *countWriter) Write(p []byte) (n int, err error) {\n\tn, err = cw.w.Write(p)\n\tcw.n += int64(n)\n\treturn\n}\n\ntype countWriteFlusher struct {\n\tio.WriteCloser\n\tn int64\n}\n\nfunc (wc *countWriteFlusher) register(w io.WriteCloser) io.WriteCloser {\n\twc.WriteCloser = w\n\treturn wc\n}\n\nfunc (wc *countWriteFlusher) Write(p []byte) (n int, err error) {\n\tn, err = wc.WriteCloser.Write(p)\n\twc.n += int64(n)\n\treturn\n}\n\nfunc (wc *countWriteFlusher) Flush() error {\n\tif f, ok := wc.WriteCloser.(interface {\n\t\tFlush() error\n\t}); ok {\n\t\treturn f.Flush()\n\t}\n\treturn nil\n}\n\nfunc (wc *countWriteFlusher) Close() error {\n\terr := wc.WriteCloser.Close()\n\twc.WriteCloser = nil\n\treturn err\n}\n\n// isGzip reports whether br is positioned right before an upcoming gzip stream.\n// It does not consume any bytes from br.\nfunc isGzip(br *bufio.Reader) bool {\n\tconst (\n\t\tgzipID1     = 0x1f\n\t\tgzipID2     = 0x8b\n\t\tgzipDeflate = 8\n\t)\n\tpeek, _ := br.Peek(3)\n\treturn len(peek) >= 3 && peek[0] == gzipID1 && peek[1] == gzipID2 && peek[2] == gzipDeflate\n}\n\nfunc positive(n int64) int64 {\n\tif n < 0 {\n\t\treturn 0\n\t}\n\treturn n\n}\n\ntype countReader struct {\n\tr io.Reader\n\tn int64\n}\n\nfunc (cr *countReader) Read(p []byte) (n int, err error) {\n\tn, err = cr.r.Read(p)\n\tcr.n += int64(n)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/gzip.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/*\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*/\n\npackage estargz\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"strconv\"\n\n\tdigest \"github.com/opencontainers/go-digest\"\n)\n\ntype gzipCompression struct {\n\t*GzipCompressor\n\t*GzipDecompressor\n}\n\nfunc newGzipCompressionWithLevel(level int) Compression {\n\treturn &gzipCompression{\n\t\t&GzipCompressor{level},\n\t\t&GzipDecompressor{},\n\t}\n}\n\nfunc NewGzipCompressor() *GzipCompressor {\n\treturn &GzipCompressor{gzip.BestCompression}\n}\n\nfunc NewGzipCompressorWithLevel(level int) *GzipCompressor {\n\treturn &GzipCompressor{level}\n}\n\ntype GzipCompressor struct {\n\tcompressionLevel int\n}\n\nfunc (gc *GzipCompressor) Writer(w io.Writer) (WriteFlushCloser, error) {\n\treturn gzip.NewWriterLevel(w, gc.compressionLevel)\n}\n\nfunc (gc *GzipCompressor) WriteTOCAndFooter(w io.Writer, off int64, toc *JTOC, diffHash hash.Hash) (digest.Digest, error) {\n\ttocJSON, err := json.MarshalIndent(toc, \"\", \"\\t\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tgz, _ := gzip.NewWriterLevel(w, gc.compressionLevel)\n\tgw := io.Writer(gz)\n\tif diffHash != nil {\n\t\tgw = io.MultiWriter(gz, diffHash)\n\t}\n\ttw := tar.NewWriter(gw)\n\tif err := tw.WriteHeader(&tar.Header{\n\t\tTypeflag: tar.TypeReg,\n\t\tName:     TOCTarName,\n\t\tSize:     int64(len(tocJSON)),\n\t}); err != nil {\n\t\treturn \"\", err\n\t}\n\tif _, err := tw.Write(tocJSON); err != nil {\n\t\treturn \"\", err\n\t}\n\n\tif err := tw.Close(); err != nil {\n\t\treturn \"\", err\n\t}\n\tif err := gz.Close(); err != nil {\n\t\treturn \"\", err\n\t}\n\tif _, err := w.Write(gzipFooterBytes(off)); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn digest.FromBytes(tocJSON), nil\n}\n\n// gzipFooterBytes returns the 51 bytes footer.\nfunc gzipFooterBytes(tocOff int64) []byte {\n\tbuf := bytes.NewBuffer(make([]byte, 0, FooterSize))\n\tgz, _ := gzip.NewWriterLevel(buf, gzip.NoCompression) // MUST be NoCompression to keep 51 bytes\n\n\t// Extra header indicating the offset of TOCJSON\n\t// https://tools.ietf.org/html/rfc1952#section-2.3.1.1\n\theader := make([]byte, 4)\n\theader[0], header[1] = 'S', 'G'\n\tsubfield := fmt.Sprintf(\"%016xSTARGZ\", tocOff)\n\tbinary.LittleEndian.PutUint16(header[2:4], uint16(len(subfield))) // little-endian per RFC1952\n\tgz.Extra = append(header, []byte(subfield)...)\n\tgz.Close()\n\tif buf.Len() != FooterSize {\n\t\tpanic(fmt.Sprintf(\"footer buffer = %d, not %d\", buf.Len(), FooterSize))\n\t}\n\treturn buf.Bytes()\n}\n\ntype GzipDecompressor struct{}\n\nfunc (gz *GzipDecompressor) Reader(r io.Reader) (io.ReadCloser, error) {\n\treturn gzip.NewReader(r)\n}\n\nfunc (gz *GzipDecompressor) ParseTOC(r io.Reader) (toc *JTOC, tocDgst digest.Digest, err error) {\n\treturn parseTOCEStargz(r)\n}\n\nfunc (gz *GzipDecompressor) ParseFooter(p []byte) (blobPayloadSize, tocOffset, tocSize int64, err error) {\n\tif len(p) != FooterSize {\n\t\treturn 0, 0, 0, fmt.Errorf(\"invalid length %d cannot be parsed\", len(p))\n\t}\n\tzr, err := gzip.NewReader(bytes.NewReader(p))\n\tif err != nil {\n\t\treturn 0, 0, 0, err\n\t}\n\tdefer zr.Close()\n\textra := zr.Extra\n\tsi1, si2, subfieldlen, subfield := extra[0], extra[1], extra[2:4], extra[4:]\n\tif si1 != 'S' || si2 != 'G' {\n\t\treturn 0, 0, 0, fmt.Errorf(\"invalid subfield IDs: %q, %q; want E, S\", si1, si2)\n\t}\n\tif slen := binary.LittleEndian.Uint16(subfieldlen); slen != uint16(16+len(\"STARGZ\")) {\n\t\treturn 0, 0, 0, fmt.Errorf(\"invalid length of subfield %d; want %d\", slen, 16+len(\"STARGZ\"))\n\t}\n\tif string(subfield[16:]) != \"STARGZ\" {\n\t\treturn 0, 0, 0, fmt.Errorf(\"STARGZ magic string must be included in the footer subfield\")\n\t}\n\ttocOffset, err = strconv.ParseInt(string(subfield[:16]), 16, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: failed to parse toc offset: %w\", err)\n\t}\n\treturn tocOffset, tocOffset, 0, nil\n}\n\nfunc (gz *GzipDecompressor) FooterSize() int64 {\n\treturn FooterSize\n}\n\nfunc (gz *GzipDecompressor) DecompressTOC(r io.Reader) (tocJSON io.ReadCloser, err error) {\n\treturn decompressTOCEStargz(r)\n}\n\ntype LegacyGzipDecompressor struct{}\n\nfunc (gz *LegacyGzipDecompressor) Reader(r io.Reader) (io.ReadCloser, error) {\n\treturn gzip.NewReader(r)\n}\n\nfunc (gz *LegacyGzipDecompressor) ParseTOC(r io.Reader) (toc *JTOC, tocDgst digest.Digest, err error) {\n\treturn parseTOCEStargz(r)\n}\n\nfunc (gz *LegacyGzipDecompressor) ParseFooter(p []byte) (blobPayloadSize, tocOffset, tocSize int64, err error) {\n\tif len(p) != legacyFooterSize {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: invalid length %d cannot be parsed\", len(p))\n\t}\n\tzr, err := gzip.NewReader(bytes.NewReader(p))\n\tif err != nil {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: failed to get footer gzip reader: %w\", err)\n\t}\n\tdefer zr.Close()\n\textra := zr.Extra\n\tif len(extra) != 16+len(\"STARGZ\") {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: invalid stargz's extra field size\")\n\t}\n\tif string(extra[16:]) != \"STARGZ\" {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: magic string STARGZ not found\")\n\t}\n\ttocOffset, err = strconv.ParseInt(string(extra[:16]), 16, 64)\n\tif err != nil {\n\t\treturn 0, 0, 0, fmt.Errorf(\"legacy: failed to parse toc offset: %w\", err)\n\t}\n\treturn tocOffset, tocOffset, 0, nil\n}\n\nfunc (gz *LegacyGzipDecompressor) FooterSize() int64 {\n\treturn legacyFooterSize\n}\n\nfunc (gz *LegacyGzipDecompressor) DecompressTOC(r io.Reader) (tocJSON io.ReadCloser, err error) {\n\treturn decompressTOCEStargz(r)\n}\n\nfunc parseTOCEStargz(r io.Reader) (toc *JTOC, tocDgst digest.Digest, err error) {\n\ttr, err := decompressTOCEStargz(r)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tdgstr := digest.Canonical.Digester()\n\ttoc = new(JTOC)\n\tif err := json.NewDecoder(io.TeeReader(tr, dgstr.Hash())).Decode(&toc); err != nil {\n\t\treturn nil, \"\", fmt.Errorf(\"error decoding TOC JSON: %v\", err)\n\t}\n\tif err := tr.Close(); err != nil {\n\t\treturn nil, \"\", err\n\t}\n\treturn toc, dgstr.Digest(), nil\n}\n\nfunc decompressTOCEStargz(r io.Reader) (tocJSON io.ReadCloser, err error) {\n\tzr, err := gzip.NewReader(r)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"malformed TOC gzip header: %v\", err)\n\t}\n\tzr.Multistream(false)\n\ttr := tar.NewReader(zr)\n\th, err := tr.Next()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to find tar header in TOC gzip stream: %v\", err)\n\t}\n\tif h.Name != TOCTarName {\n\t\treturn nil, fmt.Errorf(\"TOC tar entry had name %q; expected %q\", h.Name, TOCTarName)\n\t}\n\treturn readCloser{tr, zr.Close}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/testutil.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/*\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*/\n\npackage estargz\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"crypto/rand\"\n\t\"crypto/sha256\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/containerd/stargz-snapshotter/estargz/errorutil\"\n\t\"github.com/klauspost/compress/zstd\"\n\tdigest \"github.com/opencontainers/go-digest\"\n)\n\n// TestingController is Compression with some helper methods necessary for testing.\ntype TestingController interface {\n\tCompression\n\tTestStreams(t TestingT, b []byte, streams []int64)\n\tDiffIDOf(TestingT, []byte) string\n\tString() string\n}\n\n// TestingT is the minimal set of testing.T required to run the\n// tests defined in CompressionTestSuite. This interface exists to prevent\n// leaking the testing package from being exposed outside tests.\ntype TestingT interface {\n\tErrorf(format string, args ...any)\n\tFailNow()\n\tFailed() bool\n\tFatal(args ...any)\n\tFatalf(format string, args ...any)\n\tLogf(format string, args ...any)\n\tParallel()\n}\n\n// Runner allows running subtests of TestingT. This exists instead of adding\n// a Run method to TestingT interface because the Run implementation of\n// testing.T would not satisfy the interface.\ntype Runner func(t TestingT, name string, fn func(t TestingT))\n\ntype TestRunner struct {\n\tTestingT\n\tRunner Runner\n}\n\nfunc (r *TestRunner) Run(name string, run func(*TestRunner)) {\n\tr.Runner(r.TestingT, name, func(t TestingT) {\n\t\trun(&TestRunner{TestingT: t, Runner: r.Runner})\n\t})\n}\n\n// CompressionTestSuite tests this pkg with controllers can build valid eStargz blobs and parse them.\nfunc CompressionTestSuite(t *TestRunner, controllers ...TestingControllerFactory) {\n\tt.Run(\"testBuild\", func(t *TestRunner) { t.Parallel(); testBuild(t, controllers...) })\n\tt.Run(\"testDigestAndVerify\", func(t *TestRunner) {\n\t\tt.Parallel()\n\t\ttestDigestAndVerify(t, controllers...)\n\t})\n\tt.Run(\"testWriteAndOpen\", func(t *TestRunner) { t.Parallel(); testWriteAndOpen(t, controllers...) })\n}\n\ntype TestingControllerFactory func() TestingController\n\nconst (\n\tuncompressedType int = iota\n\tgzipType\n\tzstdType\n)\n\nvar srcCompressions = []int{\n\tuncompressedType,\n\tgzipType,\n\tzstdType,\n}\n\nvar allowedPrefix = [4]string{\"\", \"./\", \"/\", \"../\"}\n\n// testBuild tests the resulting stargz blob built by this pkg has the same\n// contents as the normal stargz blob.\nfunc testBuild(t *TestRunner, controllers ...TestingControllerFactory) {\n\ttests := []struct {\n\t\tname         string\n\t\tchunkSize    int\n\t\tminChunkSize []int\n\t\tin           []tarEntry\n\t}{\n\t\t{\n\t\t\tname:      \"regfiles and directories\",\n\t\t\tchunkSize: 4,\n\t\t\tin: tarOf(\n\t\t\t\tfile(\"foo\", \"test1\"),\n\t\t\t\tdir(\"foo2/\"),\n\t\t\t\tfile(\"foo2/bar\", \"test2\", xAttr(map[string]string{\"test\": \"sample\"})),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:      \"empty files\",\n\t\t\tchunkSize: 4,\n\t\t\tin: tarOf(\n\t\t\t\tfile(\"foo\", \"tttttt\"),\n\t\t\t\tfile(\"foo_empty\", \"\"),\n\t\t\t\tfile(\"foo2\", \"tttttt\"),\n\t\t\t\tfile(\"foo_empty2\", \"\"),\n\t\t\t\tfile(\"foo3\", \"tttttt\"),\n\t\t\t\tfile(\"foo_empty3\", \"\"),\n\t\t\t\tfile(\"foo4\", \"tttttt\"),\n\t\t\t\tfile(\"foo_empty4\", \"\"),\n\t\t\t\tfile(\"foo5\", \"tttttt\"),\n\t\t\t\tfile(\"foo_empty5\", \"\"),\n\t\t\t\tfile(\"foo6\", \"tttttt\"),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:         \"various files\",\n\t\t\tchunkSize:    4,\n\t\t\tminChunkSize: []int{0, 64000},\n\t\t\tin: tarOf(\n\t\t\t\tfile(\"baz.txt\", \"bazbazbazbazbazbazbaz\"),\n\t\t\t\tfile(\"foo1.txt\", \"a\"),\n\t\t\t\tfile(\"bar/foo2.txt\", \"b\"),\n\t\t\t\tfile(\"foo3.txt\", \"c\"),\n\t\t\t\tsymlink(\"barlink\", \"test/bar.txt\"),\n\t\t\t\tdir(\"test/\"),\n\t\t\t\tdir(\"dev/\"),\n\t\t\t\tblockdev(\"dev/testblock\", 3, 4),\n\t\t\t\tfifo(\"dev/testfifo\"),\n\t\t\t\tchardev(\"dev/testchar1\", 5, 6),\n\t\t\t\tfile(\"test/bar.txt\", \"testbartestbar\", xAttr(map[string]string{\"test2\": \"sample2\"})),\n\t\t\t\tdir(\"test2/\"),\n\t\t\t\tlink(\"test2/bazlink\", \"baz.txt\"),\n\t\t\t\tchardev(\"dev/testchar2\", 1, 2),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:      \"no contents\",\n\t\t\tchunkSize: 4,\n\t\t\tin: tarOf(\n\t\t\t\tfile(\"baz.txt\", \"\"),\n\t\t\t\tsymlink(\"barlink\", \"test/bar.txt\"),\n\t\t\t\tdir(\"test/\"),\n\t\t\t\tdir(\"dev/\"),\n\t\t\t\tblockdev(\"dev/testblock\", 3, 4),\n\t\t\t\tfifo(\"dev/testfifo\"),\n\t\t\t\tchardev(\"dev/testchar1\", 5, 6),\n\t\t\t\tfile(\"test/bar.txt\", \"\", xAttr(map[string]string{\"test2\": \"sample2\"})),\n\t\t\t\tdir(\"test2/\"),\n\t\t\t\tlink(\"test2/bazlink\", \"baz.txt\"),\n\t\t\t\tchardev(\"dev/testchar2\", 1, 2),\n\t\t\t),\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tif len(tt.minChunkSize) == 0 {\n\t\t\ttt.minChunkSize = []int{0}\n\t\t}\n\t\tfor _, srcCompression := range srcCompressions {\n\t\t\tsrcCompression := srcCompression\n\t\t\tfor _, newCL := range controllers {\n\t\t\t\tnewCL := newCL\n\t\t\t\tfor _, srcTarFormat := range []tar.Format{tar.FormatUSTAR, tar.FormatPAX, tar.FormatGNU} {\n\t\t\t\t\tsrcTarFormat := srcTarFormat\n\t\t\t\t\tfor _, prefix := range allowedPrefix {\n\t\t\t\t\t\tprefix := prefix\n\t\t\t\t\t\tfor _, minChunkSize := range tt.minChunkSize {\n\t\t\t\t\t\t\tminChunkSize := minChunkSize\n\t\t\t\t\t\t\tt.Run(tt.name+\"-\"+fmt.Sprintf(\"compression=%v,prefix=%q,src=%d,format=%s,minChunkSize=%d\", newCL(), prefix, srcCompression, srcTarFormat, minChunkSize), func(t *TestRunner) {\n\t\t\t\t\t\t\t\ttarBlob := buildTar(t, tt.in, prefix, srcTarFormat)\n\t\t\t\t\t\t\t\t// Test divideEntries()\n\t\t\t\t\t\t\t\tentries, err := sortEntries(tarBlob, nil, nil) // identical order\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to parse tar: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvar merged []*entry\n\t\t\t\t\t\t\t\tfor _, part := range divideEntries(entries, 4) {\n\t\t\t\t\t\t\t\t\tmerged = append(merged, part...)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif !reflect.DeepEqual(entries, merged) {\n\t\t\t\t\t\t\t\t\tfor _, e := range entries {\n\t\t\t\t\t\t\t\t\t\tt.Logf(\"Original: %v\", e.header)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfor _, e := range merged {\n\t\t\t\t\t\t\t\t\t\tt.Logf(\"Merged: %v\", e.header)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tt.Errorf(\"divided entries couldn't be merged\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Prepare sample data\n\t\t\t\t\t\t\t\tcl1 := newCL()\n\t\t\t\t\t\t\t\twantBuf := new(bytes.Buffer)\n\t\t\t\t\t\t\t\tsw := NewWriterWithCompressor(wantBuf, cl1)\n\t\t\t\t\t\t\t\tsw.MinChunkSize = minChunkSize\n\t\t\t\t\t\t\t\tsw.ChunkSize = tt.chunkSize\n\t\t\t\t\t\t\t\tif err := sw.AppendTar(tarBlob); err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to append tar to want stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif _, err := sw.Close(); err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to prepare want stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twantData := wantBuf.Bytes()\n\t\t\t\t\t\t\t\twant, err := Open(io.NewSectionReader(\n\t\t\t\t\t\t\t\t\tbytes.NewReader(wantData), 0, int64(len(wantData))),\n\t\t\t\t\t\t\t\t\tWithDecompressors(cl1),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to parse the want stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Prepare testing data\n\t\t\t\t\t\t\t\tvar opts []Option\n\t\t\t\t\t\t\t\tif minChunkSize > 0 {\n\t\t\t\t\t\t\t\t\topts = append(opts, WithMinChunkSize(minChunkSize))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcl2 := newCL()\n\t\t\t\t\t\t\t\trc, err := Build(compressBlob(t, tarBlob, srcCompression),\n\t\t\t\t\t\t\t\t\tappend(opts, WithChunkSize(tt.chunkSize), WithCompression(cl2))...)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to build stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefer rc.Close()\n\t\t\t\t\t\t\t\tgotBuf := new(bytes.Buffer)\n\t\t\t\t\t\t\t\tif _, err := io.Copy(gotBuf, rc); err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to copy built stargz blob: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgotData := gotBuf.Bytes()\n\t\t\t\t\t\t\t\tgot, err := Open(io.NewSectionReader(\n\t\t\t\t\t\t\t\t\tbytes.NewReader(gotBuf.Bytes()), 0, int64(len(gotData))),\n\t\t\t\t\t\t\t\t\tWithDecompressors(cl2),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to parse the got stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Check DiffID is properly calculated\n\t\t\t\t\t\t\t\trc.Close()\n\t\t\t\t\t\t\t\tdiffID := rc.DiffID()\n\t\t\t\t\t\t\t\twantDiffID := cl2.DiffIDOf(t, gotData)\n\t\t\t\t\t\t\t\tif diffID.String() != wantDiffID {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"DiffID = %q; want %q\", diffID, wantDiffID)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Compare as stargz\n\t\t\t\t\t\t\t\tif !isSameVersion(t, cl1, wantData, cl2, gotData) {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"built stargz hasn't same json\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif !isSameEntries(t, want, got) {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"built stargz isn't same as the original\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Compare as tar.gz\n\t\t\t\t\t\t\t\tif !isSameTarGz(t, cl1, wantData, cl2, gotData) {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"built stargz isn't same tar.gz\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\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\t}\n}\n\nfunc isSameTarGz(t TestingT, cla TestingController, a []byte, clb TestingController, b []byte) bool {\n\taGz, err := cla.Reader(bytes.NewReader(a))\n\tif err != nil {\n\t\tt.Fatalf(\"failed to read A\")\n\t}\n\tdefer aGz.Close()\n\tbGz, err := clb.Reader(bytes.NewReader(b))\n\tif err != nil {\n\t\tt.Fatalf(\"failed to read B\")\n\t}\n\tdefer bGz.Close()\n\n\t// Same as tar's Next() method but ignores landmarks and TOCJSON file\n\tnext := func(r *tar.Reader) (h *tar.Header, err error) {\n\t\tfor {\n\t\t\tif h, err = r.Next(); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif h.Name != PrefetchLandmark &&\n\t\t\t\th.Name != NoPrefetchLandmark &&\n\t\t\t\th.Name != TOCTarName {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\taTar := tar.NewReader(aGz)\n\tbTar := tar.NewReader(bGz)\n\tfor {\n\t\t// Fetch and parse next header.\n\t\taH, aErr := next(aTar)\n\t\tbH, bErr := next(bTar)\n\t\tif aErr != nil || bErr != nil {\n\t\t\tif aErr == io.EOF && bErr == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tt.Fatalf(\"Failed to parse tar file: A: %v, B: %v\", aErr, bErr)\n\t\t}\n\t\tif !reflect.DeepEqual(aH, bH) {\n\t\t\tt.Logf(\"different header (A = %v; B = %v)\", aH, bH)\n\t\t\treturn false\n\n\t\t}\n\t\taFile, err := io.ReadAll(aTar)\n\t\tif err != nil {\n\t\t\tt.Fatal(\"failed to read tar payload of A\")\n\t\t}\n\t\tbFile, err := io.ReadAll(bTar)\n\t\tif err != nil {\n\t\t\tt.Fatal(\"failed to read tar payload of B\")\n\t\t}\n\t\tif !bytes.Equal(aFile, bFile) {\n\t\t\tt.Logf(\"different tar payload (A = %q; B = %q)\", string(a), string(b))\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc isSameVersion(t TestingT, cla TestingController, a []byte, clb TestingController, b []byte) bool {\n\taJTOC, _, err := parseStargz(io.NewSectionReader(bytes.NewReader(a), 0, int64(len(a))), cla)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to parse A: %v\", err)\n\t}\n\tbJTOC, _, err := parseStargz(io.NewSectionReader(bytes.NewReader(b), 0, int64(len(b))), clb)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to parse B: %v\", err)\n\t}\n\tt.Logf(\"A: TOCJSON: %v\", dumpTOCJSON(t, aJTOC))\n\tt.Logf(\"B: TOCJSON: %v\", dumpTOCJSON(t, bJTOC))\n\treturn aJTOC.Version == bJTOC.Version\n}\n\nfunc isSameEntries(t TestingT, a, b *Reader) bool {\n\taroot, ok := a.Lookup(\"\")\n\tif !ok {\n\t\tt.Fatalf(\"failed to get root of A\")\n\t}\n\tbroot, ok := b.Lookup(\"\")\n\tif !ok {\n\t\tt.Fatalf(\"failed to get root of B\")\n\t}\n\taEntry := stargzEntry{aroot, a}\n\tbEntry := stargzEntry{broot, b}\n\treturn contains(t, aEntry, bEntry) && contains(t, bEntry, aEntry)\n}\n\nfunc compressBlob(t TestingT, src *io.SectionReader, srcCompression int) *io.SectionReader {\n\tbuf := new(bytes.Buffer)\n\tvar w io.WriteCloser\n\tvar err error\n\tswitch srcCompression {\n\tcase gzipType:\n\t\tw = gzip.NewWriter(buf)\n\tcase zstdType:\n\t\tw, err = zstd.NewWriter(buf)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to init zstd writer: %v\", err)\n\t\t}\n\tdefault:\n\t\treturn src\n\t}\n\tsrc.Seek(0, io.SeekStart)\n\tif _, err := io.Copy(w, src); err != nil {\n\t\tt.Fatalf(\"failed to compress source\")\n\t}\n\tif err := w.Close(); err != nil {\n\t\tt.Fatalf(\"failed to finalize compress source\")\n\t}\n\tdata := buf.Bytes()\n\treturn io.NewSectionReader(bytes.NewReader(data), 0, int64(len(data)))\n\n}\n\ntype stargzEntry struct {\n\te *TOCEntry\n\tr *Reader\n}\n\n// contains checks if all child entries in \"b\" are also contained in \"a\".\n// This function also checks if the files/chunks contain the same contents among \"a\" and \"b\".\nfunc contains(t TestingT, a, b stargzEntry) bool {\n\tae, ar := a.e, a.r\n\tbe, br := b.e, b.r\n\tt.Logf(\"Comparing: %q vs %q\", ae.Name, be.Name)\n\tif !equalEntry(ae, be) {\n\t\tt.Logf(\"%q != %q: entry: a: %v, b: %v\", ae.Name, be.Name, ae, be)\n\t\treturn false\n\t}\n\tif ae.Type == \"dir\" {\n\t\tt.Logf(\"Directory: %q vs %q: %v vs %v\", ae.Name, be.Name,\n\t\t\tallChildrenName(ae), allChildrenName(be))\n\t\tiscontain := true\n\t\tae.ForeachChild(func(aBaseName string, aChild *TOCEntry) bool {\n\t\t\t// Walk through all files on this stargz file.\n\n\t\t\tif aChild.Name == PrefetchLandmark ||\n\t\t\t\taChild.Name == NoPrefetchLandmark {\n\t\t\t\treturn true // Ignore landmarks\n\t\t\t}\n\n\t\t\t// Ignore a TOCEntry of \"./\" (formated as \"\" by stargz lib) on root directory\n\t\t\t// because this points to the root directory itself.\n\t\t\tif aChild.Name == \"\" && ae.Name == \"\" {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tbChild, ok := be.LookupChild(aBaseName)\n\t\t\tif !ok {\n\t\t\t\tt.Logf(\"%q (base: %q): not found in b: %v\",\n\t\t\t\t\tae.Name, aBaseName, allChildrenName(be))\n\t\t\t\tiscontain = false\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tchildcontain := contains(t, stargzEntry{aChild, a.r}, stargzEntry{bChild, b.r})\n\t\t\tif !childcontain {\n\t\t\t\tt.Logf(\"%q != %q: non-equal dir\", ae.Name, be.Name)\n\t\t\t\tiscontain = false\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t\treturn iscontain\n\t} else if ae.Type == \"reg\" {\n\t\taf, err := ar.OpenFile(ae.Name)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to open file %q on A: %v\", ae.Name, err)\n\t\t}\n\t\tbf, err := br.OpenFile(be.Name)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to open file %q on B: %v\", be.Name, err)\n\t\t}\n\n\t\tvar nr int64\n\t\tfor nr < ae.Size {\n\t\t\tabytes, anext, aok := readOffset(t, af, nr, a)\n\t\t\tbbytes, bnext, bok := readOffset(t, bf, nr, b)\n\t\t\tif !aok && !bok {\n\t\t\t\tbreak\n\t\t\t} else if !aok || !bok || anext != bnext {\n\t\t\t\tt.Logf(\"%q != %q (offset=%d): chunk existence a=%v vs b=%v, anext=%v vs bnext=%v\",\n\t\t\t\t\tae.Name, be.Name, nr, aok, bok, anext, bnext)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tnr = anext\n\t\t\tif !bytes.Equal(abytes, bbytes) {\n\t\t\t\tt.Logf(\"%q != %q: different contents %v vs %v\",\n\t\t\t\t\tae.Name, be.Name, string(abytes), string(bbytes))\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\treturn true\n}\n\nfunc allChildrenName(e *TOCEntry) (children []string) {\n\te.ForeachChild(func(baseName string, _ *TOCEntry) bool {\n\t\tchildren = append(children, baseName)\n\t\treturn true\n\t})\n\treturn\n}\n\nfunc equalEntry(a, b *TOCEntry) bool {\n\t// Here, we selectively compare fileds that we are interested in.\n\treturn a.Name == b.Name &&\n\t\ta.Type == b.Type &&\n\t\ta.Size == b.Size &&\n\t\ta.ModTime3339 == b.ModTime3339 &&\n\t\ta.Stat().ModTime().Equal(b.Stat().ModTime()) && // modTime     time.Time\n\t\ta.LinkName == b.LinkName &&\n\t\ta.Mode == b.Mode &&\n\t\ta.UID == b.UID &&\n\t\ta.GID == b.GID &&\n\t\ta.Uname == b.Uname &&\n\t\ta.Gname == b.Gname &&\n\t\t(a.Offset >= 0) == (b.Offset >= 0) &&\n\t\t(a.NextOffset() > 0) == (b.NextOffset() > 0) &&\n\t\ta.DevMajor == b.DevMajor &&\n\t\ta.DevMinor == b.DevMinor &&\n\t\ta.NumLink == b.NumLink &&\n\t\treflect.DeepEqual(a.Xattrs, b.Xattrs) &&\n\t\t// chunk-related infomations aren't compared in this function.\n\t\t// ChunkOffset int64 `json:\"chunkOffset,omitempty\"`\n\t\t// ChunkSize   int64 `json:\"chunkSize,omitempty\"`\n\t\t// children map[string]*TOCEntry\n\t\ta.Digest == b.Digest\n}\n\nfunc readOffset(t TestingT, r *io.SectionReader, offset int64, e stargzEntry) ([]byte, int64, bool) {\n\tce, ok := e.r.ChunkEntryForOffset(e.e.Name, offset)\n\tif !ok {\n\t\treturn nil, 0, false\n\t}\n\tdata := make([]byte, ce.ChunkSize)\n\tt.Logf(\"Offset: %v, NextOffset: %v\", ce.Offset, ce.NextOffset())\n\tn, err := r.ReadAt(data, ce.ChunkOffset)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to read file payload of %q (offset:%d,size:%d): %v\",\n\t\t\te.e.Name, ce.ChunkOffset, ce.ChunkSize, err)\n\t}\n\tif int64(n) != ce.ChunkSize {\n\t\tt.Fatalf(\"unexpected copied data size %d; want %d\",\n\t\t\tn, ce.ChunkSize)\n\t}\n\treturn data[:n], offset + ce.ChunkSize, true\n}\n\nfunc dumpTOCJSON(t TestingT, tocJSON *JTOC) string {\n\tjtocData, err := json.Marshal(*tocJSON)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to marshal TOC JSON: %v\", err)\n\t}\n\tbuf := new(bytes.Buffer)\n\tif _, err := io.Copy(buf, bytes.NewReader(jtocData)); err != nil {\n\t\tt.Fatalf(\"failed to read toc json blob: %v\", err)\n\t}\n\treturn buf.String()\n}\n\nconst chunkSize = 3\n\ntype check func(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory)\n\n// testDigestAndVerify runs specified checks against sample stargz blobs.\nfunc testDigestAndVerify(t *TestRunner, controllers ...TestingControllerFactory) {\n\ttests := []struct {\n\t\tname         string\n\t\ttarInit      func(t TestingT, dgstMap map[string]digest.Digest) (blob []tarEntry)\n\t\tchecks       []check\n\t\tminChunkSize []int\n\t}{\n\t\t{\n\t\t\tname: \"no-regfile\",\n\t\t\ttarInit: func(t TestingT, dgstMap map[string]digest.Digest) (blob []tarEntry) {\n\t\t\t\treturn tarOf(\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t)\n\t\t\t},\n\t\t\tchecks: []check{\n\t\t\t\tcheckStargzTOC,\n\t\t\t\tcheckVerifyTOC,\n\t\t\t\tcheckVerifyInvalidStargzFail(buildTar(t, tarOf(\n\t\t\t\t\tdir(\"test2/\"), // modified\n\t\t\t\t), allowedPrefix[0])),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"small-files\",\n\t\t\ttarInit: func(t TestingT, dgstMap map[string]digest.Digest) (blob []tarEntry) {\n\t\t\t\treturn tarOf(\n\t\t\t\t\tregDigest(t, \"baz.txt\", \"\", dgstMap),\n\t\t\t\t\tregDigest(t, \"foo.txt\", \"a\", dgstMap),\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tregDigest(t, \"test/bar.txt\", \"bbb\", dgstMap),\n\t\t\t\t)\n\t\t\t},\n\t\t\tminChunkSize: []int{0, 64000},\n\t\t\tchecks: []check{\n\t\t\t\tcheckStargzTOC,\n\t\t\t\tcheckVerifyTOC,\n\t\t\t\tcheckVerifyInvalidStargzFail(buildTar(t, tarOf(\n\t\t\t\t\tfile(\"baz.txt\", \"\"),\n\t\t\t\t\tfile(\"foo.txt\", \"M\"), // modified\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tfile(\"test/bar.txt\", \"bbb\"),\n\t\t\t\t), allowedPrefix[0])),\n\t\t\t\t// checkVerifyInvalidTOCEntryFail(\"foo.txt\"), // TODO\n\t\t\t\tcheckVerifyBrokenContentFail(\"foo.txt\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"big-files\",\n\t\t\ttarInit: func(t TestingT, dgstMap map[string]digest.Digest) (blob []tarEntry) {\n\t\t\t\treturn tarOf(\n\t\t\t\t\tregDigest(t, \"baz.txt\", \"bazbazbazbazbazbazbaz\", dgstMap),\n\t\t\t\t\tregDigest(t, \"foo.txt\", \"a\", dgstMap),\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tregDigest(t, \"test/bar.txt\", \"testbartestbar\", dgstMap),\n\t\t\t\t)\n\t\t\t},\n\t\t\tchecks: []check{\n\t\t\t\tcheckStargzTOC,\n\t\t\t\tcheckVerifyTOC,\n\t\t\t\tcheckVerifyInvalidStargzFail(buildTar(t, tarOf(\n\t\t\t\t\tfile(\"baz.txt\", \"bazbazbazMMMbazbazbaz\"), // modified\n\t\t\t\t\tfile(\"foo.txt\", \"a\"),\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tfile(\"test/bar.txt\", \"testbartestbar\"),\n\t\t\t\t), allowedPrefix[0])),\n\t\t\t\tcheckVerifyInvalidTOCEntryFail(\"test/bar.txt\"),\n\t\t\t\tcheckVerifyBrokenContentFail(\"test/bar.txt\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname:         \"with-non-regfiles\",\n\t\t\tminChunkSize: []int{0, 64000},\n\t\t\ttarInit: func(t TestingT, dgstMap map[string]digest.Digest) (blob []tarEntry) {\n\t\t\t\treturn tarOf(\n\t\t\t\t\tregDigest(t, \"baz.txt\", \"bazbazbazbazbazbazbaz\", dgstMap),\n\t\t\t\t\tregDigest(t, \"foo.txt\", \"a\", dgstMap),\n\t\t\t\t\tregDigest(t, \"bar/foo2.txt\", \"b\", dgstMap),\n\t\t\t\t\tregDigest(t, \"foo3.txt\", \"c\", dgstMap),\n\t\t\t\t\tsymlink(\"barlink\", \"test/bar.txt\"),\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tregDigest(t, \"test/bar.txt\", \"testbartestbar\", dgstMap),\n\t\t\t\t\tdir(\"test2/\"),\n\t\t\t\t\tlink(\"test2/bazlink\", \"baz.txt\"),\n\t\t\t\t)\n\t\t\t},\n\t\t\tchecks: []check{\n\t\t\t\tcheckStargzTOC,\n\t\t\t\tcheckVerifyTOC,\n\t\t\t\tcheckVerifyInvalidStargzFail(buildTar(t, tarOf(\n\t\t\t\t\tfile(\"baz.txt\", \"bazbazbazbazbazbazbaz\"),\n\t\t\t\t\tfile(\"foo.txt\", \"a\"),\n\t\t\t\t\tfile(\"bar/foo2.txt\", \"b\"),\n\t\t\t\t\tfile(\"foo3.txt\", \"c\"),\n\t\t\t\t\tsymlink(\"barlink\", \"test/bar.txt\"),\n\t\t\t\t\tdir(\"test/\"),\n\t\t\t\t\tfile(\"test/bar.txt\", \"testbartestbar\"),\n\t\t\t\t\tdir(\"test2/\"),\n\t\t\t\t\tlink(\"test2/bazlink\", \"foo.txt\"), // modified\n\t\t\t\t), allowedPrefix[0])),\n\t\t\t\tcheckVerifyInvalidTOCEntryFail(\"test/bar.txt\"),\n\t\t\t\tcheckVerifyBrokenContentFail(\"test/bar.txt\"),\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif len(tt.minChunkSize) == 0 {\n\t\t\ttt.minChunkSize = []int{0}\n\t\t}\n\t\tfor _, srcCompression := range srcCompressions {\n\t\t\tsrcCompression := srcCompression\n\t\t\tfor _, newCL := range controllers {\n\t\t\t\tnewCL := newCL\n\t\t\t\tfor _, prefix := range allowedPrefix {\n\t\t\t\t\tprefix := prefix\n\t\t\t\t\tfor _, srcTarFormat := range []tar.Format{tar.FormatUSTAR, tar.FormatPAX, tar.FormatGNU} {\n\t\t\t\t\t\tsrcTarFormat := srcTarFormat\n\t\t\t\t\t\tfor _, minChunkSize := range tt.minChunkSize {\n\t\t\t\t\t\t\tminChunkSize := minChunkSize\n\t\t\t\t\t\t\tt.Run(tt.name+\"-\"+fmt.Sprintf(\"compression=%v,prefix=%q,format=%s,minChunkSize=%d\", newCL(), prefix, srcTarFormat, minChunkSize), func(t *TestRunner) {\n\t\t\t\t\t\t\t\t// Get original tar file and chunk digests\n\t\t\t\t\t\t\t\tdgstMap := make(map[string]digest.Digest)\n\t\t\t\t\t\t\t\ttarBlob := buildTar(t, tt.tarInit(t, dgstMap), prefix, srcTarFormat)\n\n\t\t\t\t\t\t\t\tcl := newCL()\n\t\t\t\t\t\t\t\trc, err := Build(compressBlob(t, tarBlob, srcCompression),\n\t\t\t\t\t\t\t\t\tWithChunkSize(chunkSize), WithCompression(cl))\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to convert stargz: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttocDigest := rc.TOCDigest()\n\t\t\t\t\t\t\t\tdefer rc.Close()\n\t\t\t\t\t\t\t\tbuf := new(bytes.Buffer)\n\t\t\t\t\t\t\t\tif _, err := io.Copy(buf, rc); err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"failed to copy built stargz blob: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tnewStargz := buf.Bytes()\n\t\t\t\t\t\t\t\t// NoPrefetchLandmark is added during `Bulid`, which is expected behaviour.\n\t\t\t\t\t\t\t\tdgstMap[chunkID(NoPrefetchLandmark, 0, int64(len([]byte{landmarkContents})))] = digest.FromBytes([]byte{landmarkContents})\n\n\t\t\t\t\t\t\t\tfor _, check := range tt.checks {\n\t\t\t\t\t\t\t\t\tcheck(t, newStargz, tocDigest, dgstMap, cl, newCL)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\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\t}\n}\n\n// checkStargzTOC checks the TOC JSON of the passed stargz has the expected\n// digest and contains valid chunks. It walks all entries in the stargz and\n// checks all chunk digests stored to the TOC JSON match the actual contents.\nfunc checkStargzTOC(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory) {\n\tsgz, err := Open(\n\t\tio.NewSectionReader(bytes.NewReader(sgzData), 0, int64(len(sgzData))),\n\t\tWithDecompressors(controller),\n\t)\n\tif err != nil {\n\t\tt.Errorf(\"failed to parse converted stargz: %v\", err)\n\t\treturn\n\t}\n\tdigestMapTOC, err := listDigests(io.NewSectionReader(\n\t\tbytes.NewReader(sgzData), 0, int64(len(sgzData))),\n\t\tcontroller,\n\t)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to list digest: %v\", err)\n\t}\n\tfound := make(map[string]bool)\n\tfor id := range dgstMap {\n\t\tfound[id] = false\n\t}\n\tzr, err := controller.Reader(bytes.NewReader(sgzData))\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decompress converted stargz: %v\", err)\n\t}\n\tdefer zr.Close()\n\ttr := tar.NewReader(zr)\n\tfor {\n\t\th, err := tr.Next()\n\t\tif err != nil {\n\t\t\tif err != io.EOF {\n\t\t\t\tt.Errorf(\"failed to read tar entry: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif h.Name == TOCTarName {\n\t\t\t// Check the digest of TOC JSON based on the actual contents\n\t\t\t// It's sure that TOC JSON exists in this archive because\n\t\t\t// Open succeeded.\n\t\t\tdgstr := digest.Canonical.Digester()\n\t\t\tif _, err := io.Copy(dgstr.Hash(), tr); err != nil {\n\t\t\t\tt.Fatalf(\"failed to calculate digest of TOC JSON: %v\",\n\t\t\t\t\terr)\n\t\t\t}\n\t\t\tif dgstr.Digest() != tocDigest {\n\t\t\t\tt.Errorf(\"invalid TOC JSON %q; want %q\", tocDigest, dgstr.Digest())\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif _, ok := sgz.Lookup(h.Name); !ok {\n\t\t\tt.Errorf(\"lost stargz entry %q in the converted TOC\", h.Name)\n\t\t\treturn\n\t\t}\n\t\tvar n int64\n\t\tfor n < h.Size {\n\t\t\tce, ok := sgz.ChunkEntryForOffset(h.Name, n)\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"lost chunk %q(offset=%d) in the converted TOC\",\n\t\t\t\t\th.Name, n)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Get the original digest to make sure the file contents are kept unchanged\n\t\t\t// from the original tar, during the whole conversion steps.\n\t\t\tid := chunkID(h.Name, n, ce.ChunkSize)\n\t\t\twant, ok := dgstMap[id]\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"Unexpected chunk %q(offset=%d,size=%d): %v\",\n\t\t\t\t\th.Name, n, ce.ChunkSize, dgstMap)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfound[id] = true\n\n\t\t\t// Check the file contents\n\t\t\tdgstr := digest.Canonical.Digester()\n\t\t\tif _, err := io.CopyN(dgstr.Hash(), tr, ce.ChunkSize); err != nil {\n\t\t\t\tt.Fatalf(\"failed to calculate digest of %q (offset=%d,size=%d)\",\n\t\t\t\t\th.Name, n, ce.ChunkSize)\n\t\t\t}\n\t\t\tif want != dgstr.Digest() {\n\t\t\t\tt.Errorf(\"Invalid contents in converted stargz %q: %q; want %q\",\n\t\t\t\t\th.Name, dgstr.Digest(), want)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Check the digest stored in TOC JSON\n\t\t\tdgstTOC, ok := digestMapTOC[ce.Offset]\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"digest of %q(offset=%d,size=%d,chunkOffset=%d) isn't registered\",\n\t\t\t\t\th.Name, ce.Offset, ce.ChunkSize, ce.ChunkOffset)\n\t\t\t}\n\t\t\tif want != dgstTOC {\n\t\t\t\tt.Errorf(\"Invalid digest in TOCEntry %q: %q; want %q\",\n\t\t\t\t\th.Name, dgstTOC, want)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tn += ce.ChunkSize\n\t\t}\n\t}\n\n\tfor id, ok := range found {\n\t\tif !ok {\n\t\t\tt.Errorf(\"required chunk %q not found in the converted stargz: %v\", id, found)\n\t\t}\n\t}\n}\n\n// checkVerifyTOC checks the verification works for the TOC JSON of the passed\n// stargz. It walks all entries in the stargz and checks the verifications for\n// all chunks work.\nfunc checkVerifyTOC(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory) {\n\tsgz, err := Open(\n\t\tio.NewSectionReader(bytes.NewReader(sgzData), 0, int64(len(sgzData))),\n\t\tWithDecompressors(controller),\n\t)\n\tif err != nil {\n\t\tt.Errorf(\"failed to parse converted stargz: %v\", err)\n\t\treturn\n\t}\n\tev, err := sgz.VerifyTOC(tocDigest)\n\tif err != nil {\n\t\tt.Errorf(\"failed to verify stargz: %v\", err)\n\t\treturn\n\t}\n\n\tfound := make(map[string]bool)\n\tfor id := range dgstMap {\n\t\tfound[id] = false\n\t}\n\tzr, err := controller.Reader(bytes.NewReader(sgzData))\n\tif err != nil {\n\t\tt.Fatalf(\"failed to decompress converted stargz: %v\", err)\n\t}\n\tdefer zr.Close()\n\ttr := tar.NewReader(zr)\n\tfor {\n\t\th, err := tr.Next()\n\t\tif err != nil {\n\t\t\tif err != io.EOF {\n\t\t\t\tt.Errorf(\"failed to read tar entry: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif h.Name == TOCTarName {\n\t\t\tcontinue\n\t\t}\n\t\tif _, ok := sgz.Lookup(h.Name); !ok {\n\t\t\tt.Errorf(\"lost stargz entry %q in the converted TOC\", h.Name)\n\t\t\treturn\n\t\t}\n\t\tvar n int64\n\t\tfor n < h.Size {\n\t\t\tce, ok := sgz.ChunkEntryForOffset(h.Name, n)\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"lost chunk %q(offset=%d) in the converted TOC\",\n\t\t\t\t\th.Name, n)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tv, err := ev.Verifier(ce)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"failed to get verifier for %q(offset=%d)\", h.Name, n)\n\t\t\t}\n\n\t\t\tfound[chunkID(h.Name, n, ce.ChunkSize)] = true\n\n\t\t\t// Check the file contents\n\t\t\tif _, err := io.CopyN(v, tr, ce.ChunkSize); err != nil {\n\t\t\t\tt.Fatalf(\"failed to get chunk of %q (offset=%d,size=%d)\",\n\t\t\t\t\th.Name, n, ce.ChunkSize)\n\t\t\t}\n\t\t\tif !v.Verified() {\n\t\t\t\tt.Errorf(\"Invalid contents in converted stargz %q (should be succeeded)\",\n\t\t\t\t\th.Name)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tn += ce.ChunkSize\n\t\t}\n\t}\n\n\tfor id, ok := range found {\n\t\tif !ok {\n\t\t\tt.Errorf(\"required chunk %q not found in the converted stargz: %v\", id, found)\n\t\t}\n\t}\n}\n\n// checkVerifyInvalidTOCEntryFail checks if misconfigured TOC JSON can be\n// detected during the verification and the verification returns an error.\nfunc checkVerifyInvalidTOCEntryFail(filename string) check {\n\treturn func(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory) {\n\t\tfuncs := map[string]rewriteFunc{\n\t\t\t\"lost digest in a entry\": func(t TestingT, toc *JTOC, sgz *io.SectionReader) {\n\t\t\t\tvar found bool\n\t\t\t\tfor _, e := range toc.Entries {\n\t\t\t\t\tif cleanEntryName(e.Name) == filename {\n\t\t\t\t\t\tif e.Type != \"reg\" && e.Type != \"chunk\" {\n\t\t\t\t\t\t\tt.Fatalf(\"entry %q to break must be regfile or chunk\", filename)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif e.ChunkDigest == \"\" {\n\t\t\t\t\t\t\tt.Fatalf(\"entry %q is already invalid\", filename)\n\t\t\t\t\t\t}\n\t\t\t\t\t\te.ChunkDigest = \"\"\n\t\t\t\t\t\tfound = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !found {\n\t\t\t\t\tt.Fatalf(\"rewrite target not found\")\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"duplicated entry offset\": func(t TestingT, toc *JTOC, sgz *io.SectionReader) {\n\t\t\t\tvar (\n\t\t\t\t\tsampleEntry *TOCEntry\n\t\t\t\t\ttargetEntry *TOCEntry\n\t\t\t\t)\n\t\t\t\tfor _, e := range toc.Entries {\n\t\t\t\t\tif e.Type == \"reg\" || e.Type == \"chunk\" {\n\t\t\t\t\t\tif cleanEntryName(e.Name) == filename {\n\t\t\t\t\t\t\ttargetEntry = e\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsampleEntry = e\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif sampleEntry == nil {\n\t\t\t\t\tt.Fatalf(\"TOC must contain at least one regfile or chunk entry other than the rewrite target\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif targetEntry == nil {\n\t\t\t\t\tt.Fatalf(\"rewrite target not found\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttargetEntry.Offset = sampleEntry.Offset\n\t\t\t},\n\t\t}\n\n\t\tfor name, rFunc := range funcs {\n\t\t\tt.Run(name, func(t *TestRunner) {\n\t\t\t\tnewSgz, newTocDigest := rewriteTOCJSON(t, io.NewSectionReader(bytes.NewReader(sgzData), 0, int64(len(sgzData))), rFunc, controller)\n\t\t\t\tbuf := new(bytes.Buffer)\n\t\t\t\tif _, err := io.Copy(buf, newSgz); err != nil {\n\t\t\t\t\tt.Fatalf(\"failed to get converted stargz\")\n\t\t\t\t}\n\t\t\t\tisgz := buf.Bytes()\n\n\t\t\t\tsgz, err := Open(\n\t\t\t\t\tio.NewSectionReader(bytes.NewReader(isgz), 0, int64(len(isgz))),\n\t\t\t\t\tWithDecompressors(controller),\n\t\t\t\t)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"failed to parse converted stargz: %v\", err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t_, err = sgz.VerifyTOC(newTocDigest)\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"must fail for invalid TOC\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n}\n\n// checkVerifyInvalidStargzFail checks if the verification detects that the\n// given stargz file doesn't match to the expected digest and returns error.\nfunc checkVerifyInvalidStargzFail(invalid *io.SectionReader) check {\n\treturn func(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory) {\n\t\tcl := newController()\n\t\trc, err := Build(invalid, WithChunkSize(chunkSize), WithCompression(cl))\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to convert stargz: %v\", err)\n\t\t}\n\t\tdefer rc.Close()\n\t\tbuf := new(bytes.Buffer)\n\t\tif _, err := io.Copy(buf, rc); err != nil {\n\t\t\tt.Fatalf(\"failed to copy built stargz blob: %v\", err)\n\t\t}\n\t\tmStargz := buf.Bytes()\n\n\t\tsgz, err := Open(\n\t\t\tio.NewSectionReader(bytes.NewReader(mStargz), 0, int64(len(mStargz))),\n\t\t\tWithDecompressors(cl),\n\t\t)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to parse converted stargz: %v\", err)\n\t\t\treturn\n\t\t}\n\t\t_, err = sgz.VerifyTOC(tocDigest)\n\t\tif err == nil {\n\t\t\tt.Errorf(\"must fail for invalid TOC\")\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// checkVerifyBrokenContentFail checks if the verifier detects broken contents\n// that doesn't match to the expected digest and returns error.\nfunc checkVerifyBrokenContentFail(filename string) check {\n\treturn func(t *TestRunner, sgzData []byte, tocDigest digest.Digest, dgstMap map[string]digest.Digest, controller TestingController, newController TestingControllerFactory) {\n\t\t// Parse stargz file\n\t\tsgz, err := Open(\n\t\t\tio.NewSectionReader(bytes.NewReader(sgzData), 0, int64(len(sgzData))),\n\t\t\tWithDecompressors(controller),\n\t\t)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to parse converted stargz: %v\", err)\n\t\t\treturn\n\t\t}\n\t\tev, err := sgz.VerifyTOC(tocDigest)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to verify stargz: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\t// Open the target file\n\t\tsr, err := sgz.OpenFile(filename)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to open file %q\", filename)\n\t\t}\n\t\tce, ok := sgz.ChunkEntryForOffset(filename, 0)\n\t\tif !ok {\n\t\t\tt.Fatalf(\"lost chunk %q(offset=%d) in the converted TOC\", filename, 0)\n\t\t\treturn\n\t\t}\n\t\tif ce.ChunkSize == 0 {\n\t\t\tt.Fatalf(\"file mustn't be empty\")\n\t\t\treturn\n\t\t}\n\t\tdata := make([]byte, ce.ChunkSize)\n\t\tif _, err := sr.ReadAt(data, ce.ChunkOffset); err != nil {\n\t\t\tt.Errorf(\"failed to get data of a chunk of %q(offset=%q)\",\n\t\t\t\tfilename, ce.ChunkOffset)\n\t\t}\n\n\t\t// Check the broken chunk (must fail)\n\t\tv, err := ev.Verifier(ce)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to get verifier for %q\", filename)\n\t\t}\n\t\tbroken := append([]byte{^data[0]}, data[1:]...)\n\t\tif _, err := io.CopyN(v, bytes.NewReader(broken), ce.ChunkSize); err != nil {\n\t\t\tt.Fatalf(\"failed to get chunk of %q (offset=%d,size=%d)\",\n\t\t\t\tfilename, ce.ChunkOffset, ce.ChunkSize)\n\t\t}\n\t\tif v.Verified() {\n\t\t\tt.Errorf(\"verification must fail for broken file chunk %q(org:%q,broken:%q)\",\n\t\t\t\tfilename, data, broken)\n\t\t}\n\t}\n}\n\nfunc chunkID(name string, offset, size int64) string {\n\treturn fmt.Sprintf(\"%s-%d-%d\", cleanEntryName(name), offset, size)\n}\n\ntype rewriteFunc func(t TestingT, toc *JTOC, sgz *io.SectionReader)\n\nfunc rewriteTOCJSON(t TestingT, sgz *io.SectionReader, rewrite rewriteFunc, controller TestingController) (newSgz io.Reader, tocDigest digest.Digest) {\n\tdecodedJTOC, jtocOffset, err := parseStargz(sgz, controller)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to extract TOC JSON: %v\", err)\n\t}\n\n\trewrite(t, decodedJTOC, sgz)\n\n\ttocFooter, tocDigest, err := tocAndFooter(controller, decodedJTOC, jtocOffset)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create toc and footer: %v\", err)\n\t}\n\n\t// Reconstruct stargz file with the modified TOC JSON\n\tif _, err := sgz.Seek(0, io.SeekStart); err != nil {\n\t\tt.Fatalf(\"failed to reset the seek position of stargz: %v\", err)\n\t}\n\treturn io.MultiReader(\n\t\tio.LimitReader(sgz, jtocOffset), // Original stargz (before TOC JSON)\n\t\ttocFooter,                       // Rewritten TOC and footer\n\t), tocDigest\n}\n\nfunc listDigests(sgz *io.SectionReader, controller TestingController) (map[int64]digest.Digest, error) {\n\tdecodedJTOC, _, err := parseStargz(sgz, controller)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdigestMap := make(map[int64]digest.Digest)\n\tfor _, e := range decodedJTOC.Entries {\n\t\tif e.Type == \"reg\" || e.Type == \"chunk\" {\n\t\t\tif e.Type == \"reg\" && e.Size == 0 {\n\t\t\t\tcontinue // ignores empty file\n\t\t\t}\n\t\t\tif e.ChunkDigest == \"\" {\n\t\t\t\treturn nil, fmt.Errorf(\"ChunkDigest of %q(off=%d) not found in TOC JSON\",\n\t\t\t\t\te.Name, e.Offset)\n\t\t\t}\n\t\t\td, err := digest.Parse(e.ChunkDigest)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tdigestMap[e.Offset] = d\n\t\t}\n\t}\n\treturn digestMap, nil\n}\n\nfunc parseStargz(sgz *io.SectionReader, controller TestingController) (decodedJTOC *JTOC, jtocOffset int64, err error) {\n\tfSize := controller.FooterSize()\n\tfooter := make([]byte, fSize)\n\tif _, err := sgz.ReadAt(footer, sgz.Size()-fSize); err != nil {\n\t\treturn nil, 0, fmt.Errorf(\"error reading footer: %w\", err)\n\t}\n\t_, tocOffset, _, err := controller.ParseFooter(footer[positive(int64(len(footer))-fSize):])\n\tif err != nil {\n\t\treturn nil, 0, fmt.Errorf(\"failed to parse footer: %w\", err)\n\t}\n\n\t// Decode the TOC JSON\n\tvar tocReader io.Reader\n\tif tocOffset >= 0 {\n\t\ttocReader = io.NewSectionReader(sgz, tocOffset, sgz.Size()-tocOffset-fSize)\n\t}\n\tdecodedJTOC, _, err = controller.ParseTOC(tocReader)\n\tif err != nil {\n\t\treturn nil, 0, fmt.Errorf(\"failed to parse TOC: %w\", err)\n\t}\n\treturn decodedJTOC, tocOffset, nil\n}\n\nfunc testWriteAndOpen(t *TestRunner, controllers ...TestingControllerFactory) {\n\tconst content = \"Some contents\"\n\tinvalidUtf8 := \"\\xff\\xfe\\xfd\"\n\n\txAttrFile := xAttr{\"foo\": \"bar\", \"invalid-utf8\": invalidUtf8}\n\tsampleOwner := owner{uid: 50, gid: 100}\n\n\tdata64KB := randomContents(64000)\n\n\ttests := []struct {\n\t\tname         string\n\t\tchunkSize    int\n\t\tminChunkSize int\n\t\tin           []tarEntry\n\t\twant         []stargzCheck\n\t\twantNumGz    int // expected number of streams\n\n\t\twantNumGzLossLess  int // expected number of streams (> 0) in lossless mode if it's different from wantNumGz\n\t\twantFailOnLossLess bool\n\t\twantTOCVersion     int // default = 1\n\t}{\n\t\t{\n\t\t\tname:      \"empty\",\n\t\t\tin:        tarOf(),\n\t\t\twantNumGz: 2, // (empty tar) + TOC + footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(0),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"1dir_1empty_file\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/bar.txt\", \"\"),\n\t\t\t),\n\t\t\twantNumGz: 3, // dir, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(2),\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasFileLen(\"foo/bar.txt\", 0),\n\t\t\t\tentryHasChildren(\"foo\", \"bar.txt\"),\n\t\t\t\thasFileDigest(\"foo/bar.txt\", digestFor(\"\")),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"1dir_1file\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/bar.txt\", content, xAttrFile),\n\t\t\t),\n\t\t\twantNumGz: 4, // var dir, foo.txt alone, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(2),\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasFileLen(\"foo/bar.txt\", len(content)),\n\t\t\t\thasFileDigest(\"foo/bar.txt\", digestFor(content)),\n\t\t\t\thasFileContentsRange(\"foo/bar.txt\", 0, content),\n\t\t\t\thasFileContentsRange(\"foo/bar.txt\", 1, content[1:]),\n\t\t\t\tentryHasChildren(\"\", \"foo\"),\n\t\t\t\tentryHasChildren(\"foo\", \"bar.txt\"),\n\t\t\t\thasFileXattrs(\"foo/bar.txt\", \"foo\", \"bar\"),\n\t\t\t\thasFileXattrs(\"foo/bar.txt\", \"invalid-utf8\", invalidUtf8),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"2meta_2file\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"bar/\", sampleOwner),\n\t\t\t\tdir(\"foo/\", sampleOwner),\n\t\t\t\tfile(\"foo/bar.txt\", content, sampleOwner),\n\t\t\t),\n\t\t\twantNumGz: 4, // both dirs, foo.txt alone, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(3),\n\t\t\t\thasDir(\"bar/\"),\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasFileLen(\"foo/bar.txt\", len(content)),\n\t\t\t\tentryHasChildren(\"\", \"bar\", \"foo\"),\n\t\t\t\tentryHasChildren(\"foo\", \"bar.txt\"),\n\t\t\t\thasChunkEntries(\"foo/bar.txt\", 1),\n\t\t\t\thasEntryOwner(\"bar/\", sampleOwner),\n\t\t\t\thasEntryOwner(\"foo/\", sampleOwner),\n\t\t\t\thasEntryOwner(\"foo/bar.txt\", sampleOwner),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"3dir\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"bar/\"),\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tdir(\"foo/bar/\"),\n\t\t\t),\n\t\t\twantNumGz: 3, // 3 dirs, TOC, footer\n\t\t\twant: checks(\n\t\t\t\thasDirLinkCount(\"bar/\", 2),\n\t\t\t\thasDirLinkCount(\"foo/\", 3),\n\t\t\t\thasDirLinkCount(\"foo/bar/\", 2),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"symlink\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tsymlink(\"foo/bar\", \"../../x\"),\n\t\t\t),\n\t\t\twantNumGz: 3, // metas + TOC + footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(2),\n\t\t\t\thasSymlink(\"foo/bar\", \"../../x\"),\n\t\t\t\tentryHasChildren(\"\", \"foo\"),\n\t\t\t\tentryHasChildren(\"foo\", \"bar\"),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:      \"chunked_file\",\n\t\t\tchunkSize: 4,\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/big.txt\", \"This \"+\"is s\"+\"uch \"+\"a bi\"+\"g fi\"+\"le\"),\n\t\t\t),\n\t\t\twantNumGz: 9, // dir + big.txt(6 chunks) + TOC + footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(7), // 1 for foo dir, 6 for the foo/big.txt file\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasFileLen(\"foo/big.txt\", len(\"This is such a big file\")),\n\t\t\t\thasFileDigest(\"foo/big.txt\", digestFor(\"This is such a big file\")),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 0, \"This is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 1, \"his is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 2, \"is is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 3, \"s is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 4, \" is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 5, \"is such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 6, \"s such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 7, \" such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 8, \"such a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 9, \"uch a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 10, \"ch a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 11, \"h a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", 12, \" a big file\"),\n\t\t\t\thasFileContentsRange(\"foo/big.txt\", len(\"This is such a big file\")-1, \"\"),\n\t\t\t\thasChunkEntries(\"foo/big.txt\", 6),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"recursive\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"/\", sampleOwner),\n\t\t\t\tdir(\"bar/\", sampleOwner),\n\t\t\t\tdir(\"foo/\", sampleOwner),\n\t\t\t\tfile(\"foo/bar.txt\", content, sampleOwner),\n\t\t\t),\n\t\t\twantNumGz: 4, // dirs, bar.txt alone, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tmaxDepth(2), // 0: root directory, 1: \"foo/\", 2: \"bar.txt\"\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"block_char_fifo\",\n\t\t\tin: tarOf(\n\t\t\t\ttarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\t\t\t\treturn w.WriteHeader(&tar.Header{\n\t\t\t\t\t\tName:     prefix + \"b\",\n\t\t\t\t\t\tTypeflag: tar.TypeBlock,\n\t\t\t\t\t\tDevmajor: 123,\n\t\t\t\t\t\tDevminor: 456,\n\t\t\t\t\t\tFormat:   format,\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\t\t\t\treturn w.WriteHeader(&tar.Header{\n\t\t\t\t\t\tName:     prefix + \"c\",\n\t\t\t\t\t\tTypeflag: tar.TypeChar,\n\t\t\t\t\t\tDevmajor: 111,\n\t\t\t\t\t\tDevminor: 222,\n\t\t\t\t\t\tFormat:   format,\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\t\t\t\treturn w.WriteHeader(&tar.Header{\n\t\t\t\t\t\tName:     prefix + \"f\",\n\t\t\t\t\t\tTypeflag: tar.TypeFifo,\n\t\t\t\t\t\tFormat:   format,\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t),\n\t\t\twantNumGz: 3,\n\t\t\twant: checks(\n\t\t\t\tlookupMatch(\"b\", &TOCEntry{Name: \"b\", Type: \"block\", DevMajor: 123, DevMinor: 456, NumLink: 1}),\n\t\t\t\tlookupMatch(\"c\", &TOCEntry{Name: \"c\", Type: \"char\", DevMajor: 111, DevMinor: 222, NumLink: 1}),\n\t\t\t\tlookupMatch(\"f\", &TOCEntry{Name: \"f\", Type: \"fifo\", NumLink: 1}),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"modes\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo1/\", 0755|os.ModeDir|os.ModeSetgid),\n\t\t\t\tfile(\"foo1/bar1\", content, 0700|os.ModeSetuid),\n\t\t\t\tfile(\"foo1/bar2\", content, 0755|os.ModeSetgid),\n\t\t\t\tdir(\"foo2/\", 0755|os.ModeDir|os.ModeSticky),\n\t\t\t\tfile(\"foo2/bar3\", content, 0755|os.ModeSticky),\n\t\t\t\tdir(\"foo3/\", 0755|os.ModeDir),\n\t\t\t\tfile(\"foo3/bar4\", content, os.FileMode(0700)),\n\t\t\t\tfile(\"foo3/bar5\", content, os.FileMode(0755)),\n\t\t\t),\n\t\t\twantNumGz: 8, // dir, bar1 alone, bar2 alone + dir, bar3 alone + dir, bar4 alone, bar5 alone, TOC, footer\n\t\t\twant: checks(\n\t\t\t\thasMode(\"foo1/\", 0755|os.ModeDir|os.ModeSetgid),\n\t\t\t\thasMode(\"foo1/bar1\", 0700|os.ModeSetuid),\n\t\t\t\thasMode(\"foo1/bar2\", 0755|os.ModeSetgid),\n\t\t\t\thasMode(\"foo2/\", 0755|os.ModeDir|os.ModeSticky),\n\t\t\t\thasMode(\"foo2/bar3\", 0755|os.ModeSticky),\n\t\t\t\thasMode(\"foo3/\", 0755|os.ModeDir),\n\t\t\t\thasMode(\"foo3/bar4\", os.FileMode(0700)),\n\t\t\t\thasMode(\"foo3/bar5\", os.FileMode(0755)),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"lossy\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"bar/\", sampleOwner),\n\t\t\t\tdir(\"foo/\", sampleOwner),\n\t\t\t\tfile(\"foo/bar.txt\", content, sampleOwner),\n\t\t\t\tfile(TOCTarName, \"dummy\"), // ignored by the writer. (lossless write returns error)\n\t\t\t),\n\t\t\twantNumGz: 4, // both dirs, foo.txt alone, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(3),\n\t\t\t\thasDir(\"bar/\"),\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasFileLen(\"foo/bar.txt\", len(content)),\n\t\t\t\tentryHasChildren(\"\", \"bar\", \"foo\"),\n\t\t\t\tentryHasChildren(\"foo\", \"bar.txt\"),\n\t\t\t\thasChunkEntries(\"foo/bar.txt\", 1),\n\t\t\t\thasEntryOwner(\"bar/\", sampleOwner),\n\t\t\t\thasEntryOwner(\"foo/\", sampleOwner),\n\t\t\t\thasEntryOwner(\"foo/bar.txt\", sampleOwner),\n\t\t\t),\n\t\t\twantFailOnLossLess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"hardlink should be replaced to the destination entry\",\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/foo1\", \"test\"),\n\t\t\t\tlink(\"foolink\", \"foo/foo1\"),\n\t\t\t),\n\t\t\twantNumGz: 4, // dir, foo1 + link, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tmustSameEntry(\"foo/foo1\", \"foolink\"),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:         \"several_files_in_chunk\",\n\t\t\tminChunkSize: 8000,\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/foo1\", data64KB),\n\t\t\t\tfile(\"foo2\", \"bb\"),\n\t\t\t\tfile(\"foo22\", \"ccc\"),\n\t\t\t\tdir(\"bar/\"),\n\t\t\t\tfile(\"bar/bar.txt\", \"aaa\"),\n\t\t\t\tfile(\"foo3\", data64KB),\n\t\t\t),\n\t\t\t// NOTE: we assume that the compressed \"data64KB\" is still larger than 8KB\n\t\t\twantNumGz: 4, // dir+foo1, foo2+foo22+dir+bar.txt+foo3, TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(7), // dir, foo1, foo2, foo22, dir, bar.txt, foo3\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasDir(\"bar/\"),\n\t\t\t\thasFileLen(\"foo/foo1\", len(data64KB)),\n\t\t\t\thasFileLen(\"foo2\", len(\"bb\")),\n\t\t\t\thasFileLen(\"foo22\", len(\"ccc\")),\n\t\t\t\thasFileLen(\"bar/bar.txt\", len(\"aaa\")),\n\t\t\t\thasFileLen(\"foo3\", len(data64KB)),\n\t\t\t\thasFileDigest(\"foo/foo1\", digestFor(data64KB)),\n\t\t\t\thasFileDigest(\"foo2\", digestFor(\"bb\")),\n\t\t\t\thasFileDigest(\"foo22\", digestFor(\"ccc\")),\n\t\t\t\thasFileDigest(\"bar/bar.txt\", digestFor(\"aaa\")),\n\t\t\t\thasFileDigest(\"foo3\", digestFor(data64KB)),\n\t\t\t\thasFileContentsWithPreRead(\"foo22\", 0, \"ccc\", chunkInfo{\"foo2\", \"bb\"}, chunkInfo{\"bar/bar.txt\", \"aaa\"}, chunkInfo{\"foo3\", data64KB}),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", 0, data64KB),\n\t\t\t\thasFileContentsRange(\"foo2\", 0, \"bb\"),\n\t\t\t\thasFileContentsRange(\"foo2\", 1, \"b\"),\n\t\t\t\thasFileContentsRange(\"foo22\", 0, \"ccc\"),\n\t\t\t\thasFileContentsRange(\"foo22\", 1, \"cc\"),\n\t\t\t\thasFileContentsRange(\"foo22\", 2, \"c\"),\n\t\t\t\thasFileContentsRange(\"bar/bar.txt\", 0, \"aaa\"),\n\t\t\t\thasFileContentsRange(\"bar/bar.txt\", 1, \"aa\"),\n\t\t\t\thasFileContentsRange(\"bar/bar.txt\", 2, \"a\"),\n\t\t\t\thasFileContentsRange(\"foo3\", 0, data64KB),\n\t\t\t\thasFileContentsRange(\"foo3\", 1, data64KB[1:]),\n\t\t\t\thasFileContentsRange(\"foo3\", 2, data64KB[2:]),\n\t\t\t\thasFileContentsRange(\"foo3\", len(data64KB)/2, data64KB[len(data64KB)/2:]),\n\t\t\t\thasFileContentsRange(\"foo3\", len(data64KB)-1, data64KB[len(data64KB)-1:]),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname:         \"several_files_in_chunk_chunked\",\n\t\t\tminChunkSize: 8000,\n\t\t\tchunkSize:    32000,\n\t\t\tin: tarOf(\n\t\t\t\tdir(\"foo/\"),\n\t\t\t\tfile(\"foo/foo1\", data64KB),\n\t\t\t\tfile(\"foo2\", \"bb\"),\n\t\t\t\tdir(\"bar/\"),\n\t\t\t\tfile(\"foo3\", data64KB),\n\t\t\t),\n\t\t\t// NOTE: we assume that the compressed chunk of \"data64KB\" is still larger than 8KB\n\t\t\twantNumGz: 6, // dir+foo1(1), foo1(2), foo2+dir+foo3(1), foo3(2), TOC, footer\n\t\t\twant: checks(\n\t\t\t\tnumTOCEntries(7), // dir, foo1(2 chunks), foo2, dir, foo3(2 chunks)\n\t\t\t\thasDir(\"foo/\"),\n\t\t\t\thasDir(\"bar/\"),\n\t\t\t\thasFileLen(\"foo/foo1\", len(data64KB)),\n\t\t\t\thasFileLen(\"foo2\", len(\"bb\")),\n\t\t\t\thasFileLen(\"foo3\", len(data64KB)),\n\t\t\t\thasFileDigest(\"foo/foo1\", digestFor(data64KB)),\n\t\t\t\thasFileDigest(\"foo2\", digestFor(\"bb\")),\n\t\t\t\thasFileDigest(\"foo3\", digestFor(data64KB)),\n\t\t\t\thasFileContentsWithPreRead(\"foo2\", 0, \"bb\", chunkInfo{\"foo3\", data64KB[:32000]}),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", 0, data64KB),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", 1, data64KB[1:]),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", 2, data64KB[2:]),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", len(data64KB)/2, data64KB[len(data64KB)/2:]),\n\t\t\t\thasFileContentsRange(\"foo/foo1\", len(data64KB)-1, data64KB[len(data64KB)-1:]),\n\t\t\t\thasFileContentsRange(\"foo2\", 0, \"bb\"),\n\t\t\t\thasFileContentsRange(\"foo2\", 1, \"b\"),\n\t\t\t\thasFileContentsRange(\"foo3\", 0, data64KB),\n\t\t\t\thasFileContentsRange(\"foo3\", 1, data64KB[1:]),\n\t\t\t\thasFileContentsRange(\"foo3\", 2, data64KB[2:]),\n\t\t\t\thasFileContentsRange(\"foo3\", len(data64KB)/2, data64KB[len(data64KB)/2:]),\n\t\t\t\thasFileContentsRange(\"foo3\", len(data64KB)-1, data64KB[len(data64KB)-1:]),\n\t\t\t),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tfor _, newCL := range controllers {\n\t\t\tnewCL := newCL\n\t\t\tfor _, prefix := range allowedPrefix {\n\t\t\t\tprefix := prefix\n\t\t\t\tfor _, srcTarFormat := range []tar.Format{tar.FormatUSTAR, tar.FormatPAX, tar.FormatGNU} {\n\t\t\t\t\tsrcTarFormat := srcTarFormat\n\t\t\t\t\tfor _, lossless := range []bool{true, false} {\n\t\t\t\t\t\tt.Run(tt.name+\"-\"+fmt.Sprintf(\"compression=%v,prefix=%q,lossless=%v,format=%s\", newCL(), prefix, lossless, srcTarFormat), func(t *TestRunner) {\n\t\t\t\t\t\t\tvar tr io.Reader = buildTar(t, tt.in, prefix, srcTarFormat)\n\t\t\t\t\t\t\torigTarDgstr := digest.Canonical.Digester()\n\t\t\t\t\t\t\ttr = io.TeeReader(tr, origTarDgstr.Hash())\n\t\t\t\t\t\t\tvar stargzBuf bytes.Buffer\n\t\t\t\t\t\t\tcl1 := newCL()\n\t\t\t\t\t\t\tw := NewWriterWithCompressor(&stargzBuf, cl1)\n\t\t\t\t\t\t\tw.ChunkSize = tt.chunkSize\n\t\t\t\t\t\t\tw.MinChunkSize = tt.minChunkSize\n\t\t\t\t\t\t\tif lossless {\n\t\t\t\t\t\t\t\terr := w.AppendTarLossLess(tr)\n\t\t\t\t\t\t\t\tif tt.wantFailOnLossLess {\n\t\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\t\treturn // expected to fail\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"Append wanted to fail on lossless\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"Append(lossless): %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif err := w.AppendTar(tr); err != nil {\n\t\t\t\t\t\t\t\t\tt.Fatalf(\"Append: %v\", err)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif _, err := w.Close(); err != nil {\n\t\t\t\t\t\t\t\tt.Fatalf(\"Writer.Close: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tb := stargzBuf.Bytes()\n\n\t\t\t\t\t\t\tif lossless {\n\t\t\t\t\t\t\t\t// Check if the result blob reserves original tar metadata\n\t\t\t\t\t\t\t\trc, err := Unpack(io.NewSectionReader(bytes.NewReader(b), 0, int64(len(b))), cl1)\n\t\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"failed to decompress blob: %v\", err)\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefer rc.Close()\n\t\t\t\t\t\t\t\tresultDgstr := digest.Canonical.Digester()\n\t\t\t\t\t\t\t\tif _, err := io.Copy(resultDgstr.Hash(), rc); err != nil {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"failed to read result decompressed blob: %v\", err)\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif resultDgstr.Digest() != origTarDgstr.Digest() {\n\t\t\t\t\t\t\t\t\tt.Errorf(\"lossy compression occurred: digest=%v; want %v\",\n\t\t\t\t\t\t\t\t\t\tresultDgstr.Digest(), origTarDgstr.Digest())\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdiffID := w.DiffID()\n\t\t\t\t\t\t\twantDiffID := cl1.DiffIDOf(t, b)\n\t\t\t\t\t\t\tif diffID != wantDiffID {\n\t\t\t\t\t\t\t\tt.Errorf(\"DiffID = %q; want %q\", diffID, wantDiffID)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttelemetry, checkCalled := newCalledTelemetry()\n\t\t\t\t\t\t\tsr := io.NewSectionReader(bytes.NewReader(b), 0, int64(len(b)))\n\t\t\t\t\t\t\tr, err := Open(\n\t\t\t\t\t\t\t\tsr,\n\t\t\t\t\t\t\t\tWithDecompressors(cl1),\n\t\t\t\t\t\t\t\tWithTelemetry(telemetry),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\tt.Fatalf(\"stargz.Open: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif _, ok := r.Lookup(\"\"); !ok {\n\t\t\t\t\t\t\t\tt.Fatalf(\"failed to lookup rootdir: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twantTOCVersion := 1\n\t\t\t\t\t\t\tif tt.wantTOCVersion > 0 {\n\t\t\t\t\t\t\t\twantTOCVersion = tt.wantTOCVersion\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif r.toc.Version != wantTOCVersion {\n\t\t\t\t\t\t\t\tt.Fatalf(\"invalid TOC Version %d; wanted %d\", r.toc.Version, wantTOCVersion)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfooterSize := cl1.FooterSize()\n\t\t\t\t\t\t\tfooterOffset := sr.Size() - footerSize\n\t\t\t\t\t\t\tfooter := make([]byte, footerSize)\n\t\t\t\t\t\t\tif _, err := sr.ReadAt(footer, footerOffset); err != nil {\n\t\t\t\t\t\t\t\tt.Errorf(\"failed to read footer: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_, tocOffset, _, err := cl1.ParseFooter(footer)\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\tt.Errorf(\"failed to parse footer: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif err := checkCalled(tocOffset >= 0); err != nil {\n\t\t\t\t\t\t\t\tt.Errorf(\"telemetry failure: %v\", err)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\twantNumGz := tt.wantNumGz\n\t\t\t\t\t\t\tif lossless && tt.wantNumGzLossLess > 0 {\n\t\t\t\t\t\t\t\twantNumGz = tt.wantNumGzLossLess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstreamOffsets := []int64{0}\n\t\t\t\t\t\t\tprevOffset := int64(-1)\n\t\t\t\t\t\t\tstreams := 0\n\t\t\t\t\t\t\tfor _, e := range r.toc.Entries {\n\t\t\t\t\t\t\t\tif e.Offset > prevOffset {\n\t\t\t\t\t\t\t\t\tstreamOffsets = append(streamOffsets, e.Offset)\n\t\t\t\t\t\t\t\t\tprevOffset = e.Offset\n\t\t\t\t\t\t\t\t\tstreams++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstreams++ // TOC\n\t\t\t\t\t\t\tif tocOffset >= 0 {\n\t\t\t\t\t\t\t\t// toc is in the blob\n\t\t\t\t\t\t\t\tstreamOffsets = append(streamOffsets, tocOffset)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstreams++ // footer\n\t\t\t\t\t\t\tstreamOffsets = append(streamOffsets, footerOffset)\n\t\t\t\t\t\t\tif streams != wantNumGz {\n\t\t\t\t\t\t\t\tt.Errorf(\"number of streams in TOC = %d; want %d\", streams, wantNumGz)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tt.Logf(\"testing streams: %+v\", streamOffsets)\n\t\t\t\t\t\t\tcl1.TestStreams(t, b, streamOffsets)\n\n\t\t\t\t\t\t\tfor _, want := range tt.want {\n\t\t\t\t\t\t\t\twant.check(t, r)\n\t\t\t\t\t\t\t}\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\t}\n}\n\ntype chunkInfo struct {\n\tname string\n\tdata string\n}\n\nfunc newCalledTelemetry() (telemetry *Telemetry, check func(needsGetTOC bool) error) {\n\tvar getFooterLatencyCalled bool\n\tvar getTocLatencyCalled bool\n\tvar deserializeTocLatencyCalled bool\n\treturn &Telemetry{\n\t\t\tfunc(time.Time) { getFooterLatencyCalled = true },\n\t\t\tfunc(time.Time) { getTocLatencyCalled = true },\n\t\t\tfunc(time.Time) { deserializeTocLatencyCalled = true },\n\t\t}, func(needsGetTOC bool) error {\n\t\t\tvar allErr []error\n\t\t\tif !getFooterLatencyCalled {\n\t\t\t\tallErr = append(allErr, fmt.Errorf(\"metrics GetFooterLatency isn't called\"))\n\t\t\t}\n\t\t\tif needsGetTOC {\n\t\t\t\tif !getTocLatencyCalled {\n\t\t\t\t\tallErr = append(allErr, fmt.Errorf(\"metrics GetTocLatency isn't called\"))\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !deserializeTocLatencyCalled {\n\t\t\t\tallErr = append(allErr, fmt.Errorf(\"metrics DeserializeTocLatency isn't called\"))\n\t\t\t}\n\t\t\treturn errorutil.Aggregate(allErr)\n\t\t}\n}\n\nfunc digestFor(content string) string {\n\tsum := sha256.Sum256([]byte(content))\n\treturn fmt.Sprintf(\"sha256:%x\", sum)\n}\n\ntype numTOCEntries int\n\nfunc (n numTOCEntries) check(t TestingT, r *Reader) {\n\tif r.toc == nil {\n\t\tt.Fatal(\"nil TOC\")\n\t}\n\tif got, want := len(r.toc.Entries), int(n); got != want {\n\t\tt.Errorf(\"got %d TOC entries; want %d\", got, want)\n\t}\n\tt.Logf(\"got TOC entries:\")\n\tfor i, ent := range r.toc.Entries {\n\t\tentj, _ := json.Marshal(ent)\n\t\tt.Logf(\"  [%d]: %s\\n\", i, entj)\n\t}\n\tif t.Failed() {\n\t\tt.FailNow()\n\t}\n}\n\nfunc checks(s ...stargzCheck) []stargzCheck { return s }\n\ntype stargzCheck interface {\n\tcheck(t TestingT, r *Reader)\n}\n\ntype stargzCheckFn func(TestingT, *Reader)\n\nfunc (f stargzCheckFn) check(t TestingT, r *Reader) { f(t, r) }\n\nfunc maxDepth(max int) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\te, ok := r.Lookup(\"\")\n\t\tif !ok {\n\t\t\tt.Fatal(\"root directory not found\")\n\t\t}\n\t\td, err := getMaxDepth(t, e, 0, 10*max)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"failed to get max depth (wanted %d): %v\", max, err)\n\t\t\treturn\n\t\t}\n\t\tif d != max {\n\t\t\tt.Errorf(\"invalid depth %d; want %d\", d, max)\n\t\t\treturn\n\t\t}\n\t})\n}\n\nfunc getMaxDepth(t TestingT, e *TOCEntry, current, limit int) (max int, rErr error) {\n\tif current > limit {\n\t\treturn -1, fmt.Errorf(\"walkMaxDepth: exceeds limit: current:%d > limit:%d\",\n\t\t\tcurrent, limit)\n\t}\n\tmax = current\n\te.ForeachChild(func(baseName string, ent *TOCEntry) bool {\n\t\tt.Logf(\"%q(basename:%q) is child of %q\\n\", ent.Name, baseName, e.Name)\n\t\td, err := getMaxDepth(t, ent, current+1, limit)\n\t\tif err != nil {\n\t\t\trErr = err\n\t\t\treturn false\n\t\t}\n\t\tif d > max {\n\t\t\tmax = d\n\t\t}\n\t\treturn true\n\t})\n\treturn\n}\n\nfunc hasFileLen(file string, wantLen int) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == file {\n\t\t\t\tif ent.Type != \"reg\" {\n\t\t\t\t\tt.Errorf(\"file type of %q is %q; want \\\"reg\\\"\", file, ent.Type)\n\t\t\t\t} else if ent.Size != int64(wantLen) {\n\t\t\t\t\tt.Errorf(\"file size of %q = %d; want %d\", file, ent.Size, wantLen)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"file %q not found\", file)\n\t})\n}\n\nfunc hasFileXattrs(file, name, value string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == file {\n\t\t\t\tif ent.Type != \"reg\" {\n\t\t\t\t\tt.Errorf(\"file type of %q is %q; want \\\"reg\\\"\", file, ent.Type)\n\t\t\t\t}\n\t\t\t\tif ent.Xattrs == nil {\n\t\t\t\t\tt.Errorf(\"file %q has no xattrs\", file)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tvalueFound, found := ent.Xattrs[name]\n\t\t\t\tif !found {\n\t\t\t\t\tt.Errorf(\"file %q has no xattr %q\", file, name)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif string(valueFound) != value {\n\t\t\t\t\tt.Errorf(\"file %q has xattr %q with value %q instead of %q\", file, name, valueFound, value)\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"file %q not found\", file)\n\t})\n}\n\nfunc hasFileDigest(file string, digest string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tent, ok := r.Lookup(file)\n\t\tif !ok {\n\t\t\tt.Fatalf(\"didn't find TOCEntry for file %q\", file)\n\t\t}\n\t\tif ent.Digest != digest {\n\t\t\tt.Fatalf(\"Digest(%q) = %q, want %q\", file, ent.Digest, digest)\n\t\t}\n\t})\n}\n\nfunc hasFileContentsWithPreRead(file string, offset int, want string, extra ...chunkInfo) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\textraMap := make(map[string]chunkInfo)\n\t\tfor _, e := range extra {\n\t\t\textraMap[e.name] = e\n\t\t}\n\t\tvar extraNames []string\n\t\tfor n := range extraMap {\n\t\t\textraNames = append(extraNames, n)\n\t\t}\n\t\tf, err := r.OpenFileWithPreReader(file, func(e *TOCEntry, cr io.Reader) error {\n\t\t\tt.Logf(\"On %q: got preread of %q\", file, e.Name)\n\t\t\tex, ok := extraMap[e.Name]\n\t\t\tif !ok {\n\t\t\t\tt.Fatalf(\"fail on %q: unexpected entry %q: %+v, %+v\", file, e.Name, e, extraNames)\n\t\t\t}\n\t\t\tgot, err := io.ReadAll(cr)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"fail on %q: failed to read %q: %v\", file, e.Name, err)\n\t\t\t}\n\t\t\tif ex.data != string(got) {\n\t\t\t\tt.Fatalf(\"fail on %q: unexpected contents of %q: len=%d; want=%d\", file, e.Name, len(got), len(ex.data))\n\t\t\t}\n\t\t\tdelete(extraMap, e.Name)\n\t\t\treturn nil\n\t\t})\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tgot := make([]byte, len(want))\n\t\tn, err := f.ReadAt(got, int64(offset))\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"ReadAt(len %d, offset %d, size %d) = %v, %v\", len(got), offset, f.Size(), n, err)\n\t\t}\n\t\tif string(got) != want {\n\t\t\tt.Fatalf(\"ReadAt(len %d, offset %d) = %q, want %q\", len(got), offset, viewContent(got), viewContent([]byte(want)))\n\t\t}\n\t\tif len(extraMap) != 0 {\n\t\t\tvar exNames []string\n\t\t\tfor _, ex := range extraMap {\n\t\t\t\texNames = append(exNames, ex.name)\n\t\t\t}\n\t\t\tt.Fatalf(\"fail on %q: some entries aren't read: %+v\", file, exNames)\n\t\t}\n\t})\n}\n\nfunc hasFileContentsRange(file string, offset int, want string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tf, err := r.OpenFile(file)\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tgot := make([]byte, len(want))\n\t\tn, err := f.ReadAt(got, int64(offset))\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"ReadAt(len %d, offset %d) = %v, %v\", len(got), offset, n, err)\n\t\t}\n\t\tif string(got) != want {\n\t\t\tt.Fatalf(\"ReadAt(len %d, offset %d) = %q, want %q\", len(got), offset, viewContent(got), viewContent([]byte(want)))\n\t\t}\n\t})\n}\n\nfunc hasChunkEntries(file string, wantChunks int) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tent, ok := r.Lookup(file)\n\t\tif !ok {\n\t\t\tt.Fatalf(\"no file for %q\", file)\n\t\t}\n\t\tif ent.Type != \"reg\" {\n\t\t\tt.Fatalf(\"file %q has unexpected type %q; want reg\", file, ent.Type)\n\t\t}\n\t\tchunks := r.getChunks(ent)\n\t\tif len(chunks) != wantChunks {\n\t\t\tt.Errorf(\"len(r.getChunks(%q)) = %d; want %d\", file, len(chunks), wantChunks)\n\t\t\treturn\n\t\t}\n\t\tf := chunks[0]\n\n\t\tvar gotChunks []*TOCEntry\n\t\tvar last *TOCEntry\n\t\tfor off := int64(0); off < f.Size; off++ {\n\t\t\te, ok := r.ChunkEntryForOffset(file, off)\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"no ChunkEntryForOffset at %d\", off)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif last != e {\n\t\t\t\tgotChunks = append(gotChunks, e)\n\t\t\t\tlast = e\n\t\t\t}\n\t\t}\n\t\tif !reflect.DeepEqual(chunks, gotChunks) {\n\t\t\tt.Errorf(\"gotChunks=%d, want=%d; contents mismatch\", len(gotChunks), wantChunks)\n\t\t}\n\n\t\t// And verify the NextOffset\n\t\tfor i := 0; i < len(gotChunks)-1; i++ {\n\t\t\tci := gotChunks[i]\n\t\t\tcnext := gotChunks[i+1]\n\t\t\tif ci.NextOffset() != cnext.Offset {\n\t\t\t\tt.Errorf(\"chunk %d NextOffset %d != next chunk's Offset of %d\", i, ci.NextOffset(), cnext.Offset)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc entryHasChildren(dir string, want ...string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\twant := append([]string(nil), want...)\n\t\tvar got []string\n\t\tent, ok := r.Lookup(dir)\n\t\tif !ok {\n\t\t\tt.Fatalf(\"didn't find TOCEntry for dir node %q\", dir)\n\t\t}\n\t\tfor baseName := range ent.children {\n\t\t\tgot = append(got, baseName)\n\t\t}\n\t\tsort.Strings(got)\n\t\tsort.Strings(want)\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"children of %q = %q; want %q\", dir, got, want)\n\t\t}\n\t})\n}\n\nfunc hasDir(file string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == cleanEntryName(file) {\n\t\t\t\tif ent.Type != \"dir\" {\n\t\t\t\t\tt.Errorf(\"file type of %q is %q; want \\\"dir\\\"\", file, ent.Type)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"directory %q not found\", file)\n\t})\n}\n\nfunc hasDirLinkCount(file string, count int) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == cleanEntryName(file) {\n\t\t\t\tif ent.Type != \"dir\" {\n\t\t\t\t\tt.Errorf(\"file type of %q is %q; want \\\"dir\\\"\", file, ent.Type)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif ent.NumLink != count {\n\t\t\t\t\tt.Errorf(\"link count of %q = %d; want %d\", file, ent.NumLink, count)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"directory %q not found\", file)\n\t})\n}\n\nfunc hasMode(file string, mode os.FileMode) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == cleanEntryName(file) {\n\t\t\t\tif ent.Stat().Mode() != mode {\n\t\t\t\t\tt.Errorf(\"invalid mode: got %v; want %v\", ent.Stat().Mode(), mode)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"file %q not found\", file)\n\t})\n}\n\nfunc hasSymlink(file, target string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tfor _, ent := range r.toc.Entries {\n\t\t\tif ent.Name == file {\n\t\t\t\tif ent.Type != \"symlink\" {\n\t\t\t\t\tt.Errorf(\"file type of %q is %q; want \\\"symlink\\\"\", file, ent.Type)\n\t\t\t\t} else if ent.LinkName != target {\n\t\t\t\t\tt.Errorf(\"link target of symlink %q is %q; want %q\", file, ent.LinkName, target)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"symlink %q not found\", file)\n\t})\n}\n\nfunc lookupMatch(name string, want *TOCEntry) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\te, ok := r.Lookup(name)\n\t\tif !ok {\n\t\t\tt.Fatalf(\"failed to Lookup entry %q\", name)\n\t\t}\n\t\tif !reflect.DeepEqual(e, want) {\n\t\t\tt.Errorf(\"entry %q mismatch.\\n got: %+v\\nwant: %+v\\n\", name, e, want)\n\t\t}\n\n\t})\n}\n\nfunc hasEntryOwner(entry string, owner owner) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tent, ok := r.Lookup(strings.TrimSuffix(entry, \"/\"))\n\t\tif !ok {\n\t\t\tt.Errorf(\"entry %q not found\", entry)\n\t\t\treturn\n\t\t}\n\t\tif ent.UID != owner.uid || ent.GID != owner.gid {\n\t\t\tt.Errorf(\"entry %q has invalid owner (uid:%d, gid:%d) instead of (uid:%d, gid:%d)\", entry, ent.UID, ent.GID, owner.uid, owner.gid)\n\t\t\treturn\n\t\t}\n\t})\n}\n\nfunc mustSameEntry(files ...string) stargzCheck {\n\treturn stargzCheckFn(func(t TestingT, r *Reader) {\n\t\tvar first *TOCEntry\n\t\tfor _, f := range files {\n\t\t\tif first == nil {\n\t\t\t\tvar ok bool\n\t\t\t\tfirst, ok = r.Lookup(f)\n\t\t\t\tif !ok {\n\t\t\t\t\tt.Errorf(\"unknown first file on Lookup: %q\", f)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Test Lookup\n\t\t\te, ok := r.Lookup(f)\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"unknown file on Lookup: %q\", f)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif e != first {\n\t\t\t\tt.Errorf(\"Lookup: %+v(%p) != %+v(%p)\", e, e, first, first)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Test LookupChild\n\t\t\tpe, ok := r.Lookup(filepath.Dir(filepath.Clean(f)))\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"failed to get parent of %q\", f)\n\t\t\t\treturn\n\t\t\t}\n\t\t\te, ok = pe.LookupChild(filepath.Base(filepath.Clean(f)))\n\t\t\tif !ok {\n\t\t\t\tt.Errorf(\"failed to get %q as the child of %+v\", f, pe)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif e != first {\n\t\t\t\tt.Errorf(\"LookupChild: %+v(%p) != %+v(%p)\", e, e, first, first)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Test ForeachChild\n\t\t\tpe.ForeachChild(func(baseName string, e *TOCEntry) bool {\n\t\t\t\tif baseName == filepath.Base(filepath.Clean(f)) {\n\t\t\t\t\tif e != first {\n\t\t\t\t\t\tt.Errorf(\"ForeachChild: %+v(%p) != %+v(%p)\", e, e, first, first)\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc viewContent(c []byte) string {\n\tif len(c) < 100 {\n\t\treturn string(c)\n\t}\n\treturn string(c[:50]) + \"...(omit)...\" + string(c[50:100])\n}\n\nfunc tarOf(s ...tarEntry) []tarEntry { return s }\n\ntype tarEntry interface {\n\tappendTar(tw *tar.Writer, prefix string, format tar.Format) error\n}\n\ntype tarEntryFunc func(*tar.Writer, string, tar.Format) error\n\nfunc (f tarEntryFunc) appendTar(tw *tar.Writer, prefix string, format tar.Format) error {\n\treturn f(tw, prefix, format)\n}\n\nfunc buildTar(t TestingT, ents []tarEntry, prefix string, opts ...interface{}) *io.SectionReader {\n\tformat := tar.FormatUnknown\n\tfor _, opt := range opts {\n\t\tswitch v := opt.(type) {\n\t\tcase tar.Format:\n\t\t\tformat = v\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"unsupported opt for buildTar: %v\", opt))\n\t\t}\n\t}\n\tbuf := new(bytes.Buffer)\n\ttw := tar.NewWriter(buf)\n\tfor _, ent := range ents {\n\t\tif err := ent.appendTar(tw, prefix, format); err != nil {\n\t\t\tt.Fatalf(\"building input tar: %v\", err)\n\t\t}\n\t}\n\tif err := tw.Close(); err != nil {\n\t\tt.Errorf(\"closing write of input tar: %v\", err)\n\t}\n\tdata := append(buf.Bytes(), make([]byte, 100)...) // append empty bytes at the tail to see lossless works\n\treturn io.NewSectionReader(bytes.NewReader(data), 0, int64(len(data)))\n}\n\nfunc dir(name string, opts ...interface{}) tarEntry {\n\treturn tarEntryFunc(func(tw *tar.Writer, prefix string, format tar.Format) error {\n\t\tvar o owner\n\t\tmode := os.FileMode(0755)\n\t\tfor _, opt := range opts {\n\t\t\tswitch v := opt.(type) {\n\t\t\tcase owner:\n\t\t\t\to = v\n\t\t\tcase os.FileMode:\n\t\t\t\tmode = v\n\t\t\tdefault:\n\t\t\t\treturn errors.New(\"unsupported opt\")\n\t\t\t}\n\t\t}\n\t\tif !strings.HasSuffix(name, \"/\") {\n\t\t\tpanic(fmt.Sprintf(\"missing trailing slash in dir %q \", name))\n\t\t}\n\t\ttm, err := fileModeToTarMode(mode)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn tw.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeDir,\n\t\t\tName:     prefix + name,\n\t\t\tMode:     tm,\n\t\t\tUid:      o.uid,\n\t\t\tGid:      o.gid,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\n\n// xAttr are extended attributes to set on test files created with the file func.\ntype xAttr map[string]string\n\n// owner is owner ot set on test files and directories with the file and dir functions.\ntype owner struct {\n\tuid int\n\tgid int\n}\n\nfunc file(name, contents string, opts ...interface{}) tarEntry {\n\treturn tarEntryFunc(func(tw *tar.Writer, prefix string, format tar.Format) error {\n\t\tvar xattrs xAttr\n\t\tvar o owner\n\t\tmode := os.FileMode(0644)\n\t\tfor _, opt := range opts {\n\t\t\tswitch v := opt.(type) {\n\t\t\tcase xAttr:\n\t\t\t\txattrs = v\n\t\t\tcase owner:\n\t\t\t\to = v\n\t\t\tcase os.FileMode:\n\t\t\t\tmode = v\n\t\t\tdefault:\n\t\t\t\treturn errors.New(\"unsupported opt\")\n\t\t\t}\n\t\t}\n\t\tif strings.HasSuffix(name, \"/\") {\n\t\t\treturn fmt.Errorf(\"bogus trailing slash in file %q\", name)\n\t\t}\n\t\ttm, err := fileModeToTarMode(mode)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(xattrs) > 0 {\n\t\t\tformat = tar.FormatPAX // only PAX supports xattrs\n\t\t}\n\t\tif err := tw.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeReg,\n\t\t\tName:     prefix + name,\n\t\t\tMode:     tm,\n\t\t\tXattrs:   xattrs,\n\t\t\tSize:     int64(len(contents)),\n\t\t\tUid:      o.uid,\n\t\t\tGid:      o.gid,\n\t\t\tFormat:   format,\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = io.WriteString(tw, contents)\n\t\treturn err\n\t})\n}\n\nfunc symlink(name, target string) tarEntry {\n\treturn tarEntryFunc(func(tw *tar.Writer, prefix string, format tar.Format) error {\n\t\treturn tw.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeSymlink,\n\t\t\tName:     prefix + name,\n\t\t\tLinkname: target,\n\t\t\tMode:     0644,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\n\nfunc link(name string, linkname string) tarEntry {\n\tnow := time.Now()\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\treturn w.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeLink,\n\t\t\tName:     prefix + name,\n\t\t\tLinkname: linkname,\n\t\t\tModTime:  now,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\n\nfunc chardev(name string, major, minor int64) tarEntry {\n\tnow := time.Now()\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\treturn w.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeChar,\n\t\t\tName:     prefix + name,\n\t\t\tDevmajor: major,\n\t\t\tDevminor: minor,\n\t\t\tModTime:  now,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\n\nfunc blockdev(name string, major, minor int64) tarEntry {\n\tnow := time.Now()\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\treturn w.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeBlock,\n\t\t\tName:     prefix + name,\n\t\t\tDevmajor: major,\n\t\t\tDevminor: minor,\n\t\t\tModTime:  now,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\nfunc fifo(name string) tarEntry {\n\tnow := time.Now()\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\treturn w.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeFifo,\n\t\t\tName:     prefix + name,\n\t\t\tModTime:  now,\n\t\t\tFormat:   format,\n\t\t})\n\t})\n}\n\nfunc prefetchLandmark() tarEntry {\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\tif err := w.WriteHeader(&tar.Header{\n\t\t\tName:     PrefetchLandmark,\n\t\t\tTypeflag: tar.TypeReg,\n\t\t\tSize:     int64(len([]byte{landmarkContents})),\n\t\t\tFormat:   format,\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontents := []byte{landmarkContents}\n\t\tif _, err := io.CopyN(w, bytes.NewReader(contents), int64(len(contents))); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\nfunc noPrefetchLandmark() tarEntry {\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\tif err := w.WriteHeader(&tar.Header{\n\t\t\tName:     NoPrefetchLandmark,\n\t\t\tTypeflag: tar.TypeReg,\n\t\t\tSize:     int64(len([]byte{landmarkContents})),\n\t\t\tFormat:   format,\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontents := []byte{landmarkContents}\n\t\tif _, err := io.CopyN(w, bytes.NewReader(contents), int64(len(contents))); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\nfunc regDigest(t TestingT, name string, contentStr string, digestMap map[string]digest.Digest) tarEntry {\n\tif digestMap == nil {\n\t\tt.Fatalf(\"digest map mustn't be nil\")\n\t}\n\tcontent := []byte(contentStr)\n\n\tvar n int64\n\tfor n < int64(len(content)) {\n\t\tsize := int64(chunkSize)\n\t\tremain := int64(len(content)) - n\n\t\tif remain < size {\n\t\t\tsize = remain\n\t\t}\n\t\tdgstr := digest.Canonical.Digester()\n\t\tif _, err := io.CopyN(dgstr.Hash(), bytes.NewReader(content[n:n+size]), size); err != nil {\n\t\t\tt.Fatalf(\"failed to calculate digest of %q (name=%q,offset=%d,size=%d)\",\n\t\t\t\tstring(content[n:n+size]), name, n, size)\n\t\t}\n\t\tdigestMap[chunkID(name, n, size)] = dgstr.Digest()\n\t\tn += size\n\t}\n\n\treturn tarEntryFunc(func(w *tar.Writer, prefix string, format tar.Format) error {\n\t\tif err := w.WriteHeader(&tar.Header{\n\t\t\tTypeflag: tar.TypeReg,\n\t\t\tName:     prefix + name,\n\t\t\tSize:     int64(len(content)),\n\t\t\tFormat:   format,\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err := io.CopyN(w, bytes.NewReader(content), int64(len(content))); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\nvar runes = []rune(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n\nfunc randomContents(n int) string {\n\tb := make([]rune, n)\n\tfor i := range b {\n\t\tbi, err := rand.Int(rand.Reader, big.NewInt(int64(len(runes))))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tb[i] = runes[int(bi.Int64())]\n\t}\n\treturn string(b)\n}\n\nfunc fileModeToTarMode(mode os.FileMode) (int64, error) {\n\th, err := tar.FileInfoHeader(fileInfoOnlyMode(mode), \"\")\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn h.Mode, nil\n}\n\n// fileInfoOnlyMode is os.FileMode that populates only file mode.\ntype fileInfoOnlyMode os.FileMode\n\nfunc (f fileInfoOnlyMode) Name() string       { return \"\" }\nfunc (f fileInfoOnlyMode) Size() int64        { return 0 }\nfunc (f fileInfoOnlyMode) Mode() os.FileMode  { return os.FileMode(f) }\nfunc (f fileInfoOnlyMode) ModTime() time.Time { return time.Now() }\nfunc (f fileInfoOnlyMode) IsDir() bool        { return os.FileMode(f).IsDir() }\nfunc (f fileInfoOnlyMode) Sys() interface{}   { return nil }\n\nfunc CheckGzipHasStreams(t TestingT, b []byte, streams []int64) {\n\tif len(streams) == 0 {\n\t\treturn // nop\n\t}\n\n\twants := map[int64]struct{}{}\n\tfor _, s := range streams {\n\t\twants[s] = struct{}{}\n\t}\n\n\tlen0 := len(b)\n\tbr := bytes.NewReader(b)\n\tzr := new(gzip.Reader)\n\tt.Logf(\"got gzip streams:\")\n\tnumStreams := 0\n\tfor {\n\t\tzoff := len0 - br.Len()\n\t\tif err := zr.Reset(br); err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tt.Fatalf(\"countStreams(gzip), Reset: %v\", err)\n\t\t}\n\t\tzr.Multistream(false)\n\t\tn, err := io.Copy(io.Discard, zr)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"countStreams(gzip), Copy: %v\", err)\n\t\t}\n\t\tvar extra string\n\t\tif len(zr.Extra) > 0 {\n\t\t\textra = fmt.Sprintf(\"; extra=%q\", zr.Extra)\n\t\t}\n\t\tt.Logf(\"  [%d] at %d in stargz, uncompressed length %d%s\", numStreams, zoff, n, extra)\n\t\tdelete(wants, int64(zoff))\n\t\tnumStreams++\n\t}\n}\n\nfunc GzipDiffIDOf(t TestingT, b []byte) string {\n\th := sha256.New()\n\tzr, err := gzip.NewReader(bytes.NewReader(b))\n\tif err != nil {\n\t\tt.Fatalf(\"diffIDOf(gzip): %v\", err)\n\t}\n\tdefer zr.Close()\n\tif _, err := io.Copy(h, zr); err != nil {\n\t\tt.Fatalf(\"diffIDOf(gzip).Copy: %v\", err)\n\t}\n\treturn fmt.Sprintf(\"sha256:%x\", h.Sum(nil))\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/stargz-snapshotter/estargz/types.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/*\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*/\n\npackage estargz\n\nimport (\n\t\"archive/tar\"\n\t\"hash\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"time\"\n\n\tdigest \"github.com/opencontainers/go-digest\"\n)\n\nconst (\n\t// TOCTarName is the name of the JSON file in the tar archive in the\n\t// table of contents gzip stream.\n\tTOCTarName = \"stargz.index.json\"\n\n\t// FooterSize is the number of bytes in the footer\n\t//\n\t// The footer is an empty gzip stream with no compression and an Extra\n\t// header of the form \"%016xSTARGZ\", where the 64 bit hex-encoded\n\t// number is the offset to the gzip stream of JSON TOC.\n\t//\n\t// 51 comes from:\n\t//\n\t// 10 bytes  gzip header\n\t// 2  bytes  XLEN (length of Extra field) = 26 (4 bytes header + 16 hex digits + len(\"STARGZ\"))\n\t// 2  bytes  Extra: SI1 = 'S', SI2 = 'G'\n\t// 2  bytes  Extra: LEN = 22 (16 hex digits + len(\"STARGZ\"))\n\t// 22 bytes  Extra: subfield = fmt.Sprintf(\"%016xSTARGZ\", offsetOfTOC)\n\t// 5  bytes  flate header\n\t// 8  bytes  gzip footer\n\t// (End of the eStargz blob)\n\t//\n\t// NOTE: For Extra fields, subfield IDs SI1='S' SI2='G' is used for eStargz.\n\tFooterSize = 51\n\n\t// legacyFooterSize is the number of bytes in the legacy stargz footer.\n\t//\n\t// 47 comes from:\n\t//\n\t//   10 byte gzip header +\n\t//   2 byte (LE16) length of extra, encoding 22 (16 hex digits + len(\"STARGZ\")) == \"\\x16\\x00\" +\n\t//   22 bytes of extra (fmt.Sprintf(\"%016xSTARGZ\", tocGzipOffset))\n\t//   5 byte flate header\n\t//   8 byte gzip footer (two little endian uint32s: digest, size)\n\tlegacyFooterSize = 47\n\n\t// TOCJSONDigestAnnotation is an annotation for an image layer. This stores the\n\t// digest of the TOC JSON.\n\t// This annotation is valid only when it is specified in `.[]layers.annotations`\n\t// of an image manifest.\n\tTOCJSONDigestAnnotation = \"containerd.io/snapshot/stargz/toc.digest\"\n\n\t// StoreUncompressedSizeAnnotation is an additional annotation key for eStargz to enable lazy\n\t// pulling on containers/storage. Stargz Store is required to expose the layer's uncompressed size\n\t// to the runtime but current OCI image doesn't ship this information by default. So we store this\n\t// to the special annotation.\n\tStoreUncompressedSizeAnnotation = \"io.containers.estargz.uncompressed-size\"\n\n\t// PrefetchLandmark is a file entry which indicates the end position of\n\t// prefetch in the stargz file.\n\tPrefetchLandmark = \".prefetch.landmark\"\n\n\t// NoPrefetchLandmark is a file entry which indicates that no prefetch should\n\t// occur in the stargz file.\n\tNoPrefetchLandmark = \".no.prefetch.landmark\"\n\n\tlandmarkContents = 0xf\n)\n\n// JTOC is the JSON-serialized table of contents index of the files in the stargz file.\ntype JTOC struct {\n\tVersion int         `json:\"version\"`\n\tEntries []*TOCEntry `json:\"entries\"`\n}\n\n// TOCEntry is an entry in the stargz file's TOC (Table of Contents).\ntype TOCEntry struct {\n\t// Name is the tar entry's name. It is the complete path\n\t// stored in the tar file, not just the base name.\n\tName string `json:\"name\"`\n\n\t// Type is one of \"dir\", \"reg\", \"symlink\", \"hardlink\", \"char\",\n\t// \"block\", \"fifo\", or \"chunk\".\n\t// The \"chunk\" type is used for regular file data chunks past the first\n\t// TOCEntry; the 2nd chunk and on have only Type (\"chunk\"), Offset,\n\t// ChunkOffset, and ChunkSize populated.\n\tType string `json:\"type\"`\n\n\t// Size, for regular files, is the logical size of the file.\n\tSize int64 `json:\"size,omitempty\"`\n\n\t// ModTime3339 is the modification time of the tar entry. Empty\n\t// means zero or unknown. Otherwise it's in UTC RFC3339\n\t// format. Use the ModTime method to access the time.Time value.\n\tModTime3339 string `json:\"modtime,omitempty\"`\n\tmodTime     time.Time\n\n\t// LinkName, for symlinks and hardlinks, is the link target.\n\tLinkName string `json:\"linkName,omitempty\"`\n\n\t// Mode is the permission and mode bits.\n\tMode int64 `json:\"mode,omitempty\"`\n\n\t// UID is the user ID of the owner.\n\tUID int `json:\"uid,omitempty\"`\n\n\t// GID is the group ID of the owner.\n\tGID int `json:\"gid,omitempty\"`\n\n\t// Uname is the username of the owner.\n\t//\n\t// In the serialized JSON, this field may only be present for\n\t// the first entry with the same UID.\n\tUname string `json:\"userName,omitempty\"`\n\n\t// Gname is the group name of the owner.\n\t//\n\t// In the serialized JSON, this field may only be present for\n\t// the first entry with the same GID.\n\tGname string `json:\"groupName,omitempty\"`\n\n\t// Offset, for regular files, provides the offset in the\n\t// stargz file to the file's data bytes. See ChunkOffset and\n\t// ChunkSize.\n\tOffset int64 `json:\"offset,omitempty\"`\n\n\t// InnerOffset is an optional field indicates uncompressed offset\n\t// of this \"reg\" or \"chunk\" payload in a stream starts from Offset.\n\t// This field enables to put multiple \"reg\" or \"chunk\" payloads\n\t// in one chunk with having the same Offset but different InnerOffset.\n\tInnerOffset int64 `json:\"innerOffset,omitempty\"`\n\n\tnextOffset int64 // the Offset of the next entry with a non-zero Offset\n\n\t// DevMajor is the major device number for \"char\" and \"block\" types.\n\tDevMajor int `json:\"devMajor,omitempty\"`\n\n\t// DevMinor is the major device number for \"char\" and \"block\" types.\n\tDevMinor int `json:\"devMinor,omitempty\"`\n\n\t// NumLink is the number of entry names pointing to this entry.\n\t// Zero means one name references this entry.\n\t// This field is calculated during runtime and not recorded in TOC JSON.\n\tNumLink int `json:\"-\"`\n\n\t// Xattrs are the extended attribute for the entry.\n\tXattrs map[string][]byte `json:\"xattrs,omitempty\"`\n\n\t// Digest stores the OCI checksum for regular files payload.\n\t// It has the form \"sha256:abcdef01234....\".\n\tDigest string `json:\"digest,omitempty\"`\n\n\t// ChunkOffset is non-zero if this is a chunk of a large,\n\t// regular file. If so, the Offset is where the gzip header of\n\t// ChunkSize bytes at ChunkOffset in Name begin.\n\t//\n\t// In serialized form, a \"chunkSize\" JSON field of zero means\n\t// that the chunk goes to the end of the file. After reading\n\t// from the stargz TOC, though, the ChunkSize is initialized\n\t// to a non-zero file for when Type is either \"reg\" or\n\t// \"chunk\".\n\tChunkOffset int64 `json:\"chunkOffset,omitempty\"`\n\tChunkSize   int64 `json:\"chunkSize,omitempty\"`\n\n\t// ChunkDigest stores an OCI digest of the chunk. This must be formed\n\t// as \"sha256:0123abcd...\".\n\tChunkDigest string `json:\"chunkDigest,omitempty\"`\n\n\tchildren map[string]*TOCEntry\n\n\t// chunkTopIndex is index of the entry where Offset starts in the blob.\n\tchunkTopIndex int\n}\n\n// ModTime returns the entry's modification time.\nfunc (e *TOCEntry) ModTime() time.Time { return e.modTime }\n\n// NextOffset returns the position (relative to the start of the\n// stargz file) of the next gzip boundary after e.Offset.\nfunc (e *TOCEntry) NextOffset() int64 { return e.nextOffset }\n\nfunc (e *TOCEntry) addChild(baseName string, child *TOCEntry) {\n\tif e.children == nil {\n\t\te.children = make(map[string]*TOCEntry)\n\t}\n\tif child.Type == \"dir\" {\n\t\te.NumLink++ // Entry \"..\" in the subdirectory links to this directory\n\t}\n\te.children[baseName] = child\n}\n\n// isDataType reports whether TOCEntry is a regular file or chunk (something that\n// contains regular file data).\nfunc (e *TOCEntry) isDataType() bool { return e.Type == \"reg\" || e.Type == \"chunk\" }\n\n// Stat returns a FileInfo value representing e.\nfunc (e *TOCEntry) Stat() os.FileInfo { return fileInfo{e} }\n\n// ForeachChild calls f for each child item. If f returns false, iteration ends.\n// If e is not a directory, f is not called.\nfunc (e *TOCEntry) ForeachChild(f func(baseName string, ent *TOCEntry) bool) {\n\tfor name, ent := range e.children {\n\t\tif !f(name, ent) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// LookupChild returns the directory e's child by its base name.\nfunc (e *TOCEntry) LookupChild(baseName string) (child *TOCEntry, ok bool) {\n\tchild, ok = e.children[baseName]\n\treturn\n}\n\n// fileInfo implements os.FileInfo using the wrapped *TOCEntry.\ntype fileInfo struct{ e *TOCEntry }\n\nvar _ os.FileInfo = fileInfo{}\n\nfunc (fi fileInfo) Name() string       { return path.Base(fi.e.Name) }\nfunc (fi fileInfo) IsDir() bool        { return fi.e.Type == \"dir\" }\nfunc (fi fileInfo) Size() int64        { return fi.e.Size }\nfunc (fi fileInfo) ModTime() time.Time { return fi.e.ModTime() }\nfunc (fi fileInfo) Sys() interface{}   { return fi.e }\nfunc (fi fileInfo) Mode() (m os.FileMode) {\n\t// TOCEntry.Mode is tar.Header.Mode so we can understand the these bits using `tar` pkg.\n\tm = (&tar.Header{Mode: fi.e.Mode}).FileInfo().Mode() &\n\t\t(os.ModePerm | os.ModeSetuid | os.ModeSetgid | os.ModeSticky)\n\tswitch fi.e.Type {\n\tcase \"dir\":\n\t\tm |= os.ModeDir\n\tcase \"symlink\":\n\t\tm |= os.ModeSymlink\n\tcase \"char\":\n\t\tm |= os.ModeDevice | os.ModeCharDevice\n\tcase \"block\":\n\t\tm |= os.ModeDevice\n\tcase \"fifo\":\n\t\tm |= os.ModeNamedPipe\n\t}\n\treturn m\n}\n\n// TOCEntryVerifier holds verifiers that are usable for verifying chunks contained\n// in a eStargz blob.\ntype TOCEntryVerifier interface {\n\n\t// Verifier provides a content verifier that can be used for verifying the\n\t// contents of the specified TOCEntry.\n\tVerifier(ce *TOCEntry) (digest.Verifier, error)\n}\n\n// Compression provides the compression helper to be used creating and parsing eStargz.\n// This package provides gzip-based Compression by default, but any compression\n// algorithm (e.g. zstd) can be used as long as it implements Compression.\ntype Compression interface {\n\tCompressor\n\tDecompressor\n}\n\n// Compressor represents the helper mothods to be used for creating eStargz.\ntype Compressor interface {\n\t// Writer returns WriteCloser to be used for writing a chunk to eStargz.\n\t// Everytime a chunk is written, the WriteCloser is closed and Writer is\n\t// called again for writing the next chunk.\n\t//\n\t// The returned writer should implement \"Flush() error\" function that flushes\n\t// any pending compressed data to the underlying writer.\n\tWriter(w io.Writer) (WriteFlushCloser, error)\n\n\t// WriteTOCAndFooter is called to write JTOC to the passed Writer.\n\t// diffHash calculates the DiffID (uncompressed sha256 hash) of the blob\n\t// WriteTOCAndFooter can optionally write anything that affects DiffID calculation\n\t// (e.g. uncompressed TOC JSON).\n\t//\n\t// This function returns tocDgst that represents the digest of TOC that will be used\n\t// to verify this blob when it's parsed.\n\tWriteTOCAndFooter(w io.Writer, off int64, toc *JTOC, diffHash hash.Hash) (tocDgst digest.Digest, err error)\n}\n\n// Decompressor represents the helper mothods to be used for parsing eStargz.\ntype Decompressor interface {\n\t// Reader returns ReadCloser to be used for decompressing file payload.\n\tReader(r io.Reader) (io.ReadCloser, error)\n\n\t// FooterSize returns the size of the footer of this blob.\n\tFooterSize() int64\n\n\t// ParseFooter parses the footer and returns the offset and (compressed) size of TOC.\n\t// payloadBlobSize is the (compressed) size of the blob payload (i.e. the size between\n\t// the top until the TOC JSON).\n\t//\n\t// If tocOffset < 0, we assume that TOC isn't contained in the blob and pass nil reader\n\t// to ParseTOC. We expect that ParseTOC acquire TOC from the external location and return it.\n\t//\n\t// tocSize is optional. If tocSize <= 0, it's by default the size of the range from tocOffset until the beginning of the\n\t// footer (blob size - tocOff - FooterSize).\n\t// If blobPayloadSize < 0, blobPayloadSize become the blob size.\n\tParseFooter(p []byte) (blobPayloadSize, tocOffset, tocSize int64, err error)\n\n\t// ParseTOC parses TOC from the passed reader. The reader provides the partial contents\n\t// of the underlying blob that has the range specified by ParseFooter method.\n\t//\n\t// This function returns tocDgst that represents the digest of TOC that will be used\n\t// to verify this blob. This must match to the value returned from\n\t// Compressor.WriteTOCAndFooter that is used when creating this blob.\n\t//\n\t// If tocOffset returned by ParseFooter is < 0, we assume that TOC isn't contained in the blob.\n\t// Pass nil reader to ParseTOC then we expect that ParseTOC acquire TOC from the external location\n\t// and return it.\n\tParseTOC(r io.Reader) (toc *JTOC, tocDgst digest.Digest, err error)\n}\n\ntype WriteFlushCloser interface {\n\tio.WriteCloser\n\tFlush() error\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>\nAllie Sadler <allie.sadler@docker.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 He <he.andrew.mail@gmail.com>\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>\nArchimedes Trajano <developer@trajano.net>\nArko Dasgupta <arko@tetrate.io>\nArnaud Porterie <icecrime@gmail.com>\nArnaud Rebillout <elboulangero@gmail.com>\nArthur Flageul <arthur.flageul@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>\nAustin Vazquez <austin.vazquez@docker.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>\ncarsontham <carsontham@outlook.com>\nCarston Schilds <Carston.Schilds@visier.com>\nCasey Korver <casey@korver.dev>\nCe Gao <ce.gao@outlook.com>\nCedric Davies <cedricda@microsoft.com>\nCesar Talledo <cesar.talledo@docker.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>\nDan Wallis <dan@wallis.nz>\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 <david.dooling@docker.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>\nDilep Dev <34891655+DilepDev@users.noreply.github.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>\nEng Zer Jun <engzerjun@gmail.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>\nGiau. Tran Minh <hello@giautm.dev>\nGiedrius Jonikas <giedriusj1@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>\nHossein Abbasi <16090309+hsnabszhdn@users.noreply.github.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 MacDonald <IJMacD@gmail.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>\nJianyong Wu <wujianyong@hygon.cn>\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>\nJulio Cesar Garcia <juliogarciamelgarejo@gmail.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>\nLajos Papp <lajos.papp@sequenceiq.com>\nLars Kellogg-Stedman <lars@redhat.com>\nLaura Brehm <laurabrehm@hey.com>\nLaura Frank <ljfrank@gmail.com>\nLaurent Erignoux <lerignoux@gmail.com>\nLaurent Goderre <laurent.goderre@docker.com>\nLee Gaines <eightlimbed@gmail.com>\nLei Jitang <leijitang@huawei.com>\nLennie <github@consolejunkie.net>\nlentil32 <lentil32@icloud.com>\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 Zeghong <zeghong@hotmail.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>\nLovekesh Kumar <lovekesh.kumar@rtcamp.com>\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>\nMatthieu MOREL <matthieu.morel35@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>\nMert Şişmanoğlu <mert190737fb@gmail.com>\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 Tews <michael@tews.dev>\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>\nMohammad Hossein <mhm98035@gmail.com>\nMohammed Aaqib Ansari <maaquib@gmail.com>\nMohammed Aminu Futa <mohammedfuta2000@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>\nNinaLua <iturf@sina.cn>\nNir Soffer <nsoffer@redhat.com>\nNishant Totla <nishanttotla@gmail.com>\nNIWA Hideyuki <niwa.niwa@nifty.ne.jp>\nNoah Silas <noah@hustle.com>\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>\nPatrick St. laurent <patrick@saint-laurent.us>\nPaul <paul9869@gmail.com>\nPaul Kehrer <paul.l.kehrer@gmail.com>\nPaul Lietar <paul@lietar.net>\nPaul Mulders <justinkb@gmail.com>\nPaul Rogalski <mail@paul-rogalski.de>\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>\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>\nSarah Sanders <sarah.sanders@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>\nStavros Panakakis <stavrospanakakis@gmail.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>\nStuart Williams <pid@pidster.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>\nWenlong Zhang <zhangwenlong@loongson.cn>\nWenzhi Liang <wenzhi.liang@gmail.com>\nWes Morgan <cap10morgan@gmail.com>\nWewang Xiaorenfine <wang.xiaoren@zte.com.cn>\nWill Wang <willww64@gmail.com>\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林博仁 Buo-ren Lin <Buo.Ren.Lin@gmail.com>\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)\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@v28.0.3+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// Provider defines an interface for providing the CLI config.\ntype Provider interface {\n\tConfigFile() *configfile.ConfigFile\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 \"\", fmt.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, fmt.Errorf(\"loading config file: %w\", err)\n\t}\n\tdefer func() { _ = file.Close() }()\n\terr = configFile.LoadFromReader(file)\n\tif err != nil {\n\t\terr = fmt.Errorf(\"parsing config file (%s): %w\", filename, err)\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\"errors\"\n\t\"fmt\"\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/memorystore\"\n\t\"github.com/docker/cli/cli/config/types\"\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\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\ntype configEnvAuth struct {\n\tAuth string `json:\"auth\"`\n}\n\ntype configEnv struct {\n\tAuthConfigs map[string]configEnvAuth `json:\"auths\"`\n}\n\n// DockerEnvConfigKey is an environment variable that contains a JSON encoded\n// credential config. It only supports storing the credentials as a base64\n// encoded string in the format base64(\"username:pat\").\n//\n// Adding additional fields will produce a parsing error.\n//\n// Example:\n//\n//\t{\n//\t\t\"auths\": {\n//\t\t\t\"example.test\": {\n//\t\t\t\t\"auth\": base64-encoded-username-pat\n//\t\t\t}\n//\t\t}\n//\t}\nconst DockerEnvConfigKey = \"DOCKER_AUTH_CONFIG\"\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.New(\"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\t// ignore error as the file may already be closed when we reach this.\n\t\t_ = temp.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 fmt.Errorf(\"error closing temp file: %w\", err)\n\t}\n\n\t// Handle situation where the configfile is a symlink, and allow for dangling symlinks\n\tcfgFile := configFile.Filename\n\tif f, err := filepath.EvalSymlinks(cfgFile); err == nil {\n\t\tcfgFile = f\n\t} else if os.IsNotExist(err) {\n\t\t// extract the path from the error if the configfile does not exist or is a dangling symlink\n\t\tvar pathError *os.PathError\n\t\tif errors.As(err, &pathError) {\n\t\t\tcfgFile = pathError.Path\n\t\t}\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.New(\"something went wrong decoding auth config\")\n\t}\n\tuserName, password, ok := strings.Cut(string(decoded), \":\")\n\tif !ok || userName == \"\" {\n\t\treturn \"\", \"\", errors.New(\"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\tstore := credentials.NewFileStore(configFile)\n\n\tif helper := getConfiguredCredentialStore(configFile, registryHostname); helper != \"\" {\n\t\tstore = newNativeStore(configFile, helper)\n\t}\n\n\tenvConfig := os.Getenv(DockerEnvConfigKey)\n\tif envConfig == \"\" {\n\t\treturn store\n\t}\n\n\tauthConfig, err := parseEnvConfig(envConfig)\n\tif err != nil {\n\t\t_, _ = fmt.Fprintln(os.Stderr, \"Failed to create credential store from DOCKER_AUTH_CONFIG: \", err)\n\t\treturn store\n\t}\n\n\t// use DOCKER_AUTH_CONFIG if set\n\t// it uses the native or file store as a fallback to fetch and store credentials\n\tenvStore, err := memorystore.New(\n\t\tmemorystore.WithAuthConfig(authConfig),\n\t\tmemorystore.WithFallbackStore(store),\n\t)\n\tif err != nil {\n\t\t_, _ = fmt.Fprintln(os.Stderr, \"Failed to create credential store from DOCKER_AUTH_CONFIG: \", err)\n\t\treturn store\n\t}\n\n\treturn envStore\n}\n\nfunc parseEnvConfig(v string) (map[string]types.AuthConfig, error) {\n\tenvConfig := &configEnv{}\n\tdecoder := json.NewDecoder(strings.NewReader(v))\n\tdecoder.DisallowUnknownFields()\n\tif err := decoder.Decode(envConfig); err != nil && !errors.Is(err, io.EOF) {\n\t\treturn nil, err\n\t}\n\tif decoder.More() {\n\t\treturn nil, errors.New(\"DOCKER_AUTH_CONFIG does not support more than one JSON object\")\n\t}\n\n\tauthConfigs := make(map[string]types.AuthConfig)\n\tfor addr, envAuth := range envConfig.AuthConfigs {\n\t\tif envAuth.Auth == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"DOCKER_AUTH_CONFIG environment variable is missing key `auth` for %s\", addr)\n\t\t}\n\t\tusername, password, err := decodeAuth(envAuth.Auth)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tauthConfigs[addr] = types.AuthConfig{\n\t\t\tUsername:      username,\n\t\t\tPassword:      password,\n\t\t\tServerAddress: addr,\n\t\t}\n\t}\n\treturn authConfigs, nil\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\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"os\"\n\t\"strings\"\n\t\"sync/atomic\"\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.This function is\n// idempotent and does not update the file if credentials did not change.\nfunc (c *fileStore) Erase(serverAddress string) error {\n\tif _, exists := c.file.GetAuthConfigs()[serverAddress]; !exists {\n\t\t// nothing to do; no credentials found for the given serverAddress\n\t\treturn nil\n\t}\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// unencryptedWarning warns the user when using an insecure credential storage.\n// After a deprecation period, user will get prompted if stdin and stderr are a terminal.\n// Otherwise, we'll assume they want it (sadly), because people may have been scripting\n// insecure logins and we don't want to break them. Maybe they'll see the warning in their\n// logs and fix things.\nconst unencryptedWarning = `\nWARNING! Your credentials are stored unencrypted in '%s'.\nConfigure a credential helper to remove this warning. See\nhttps://docs.docker.com/go/credential-store/\n`\n\n// alreadyPrinted ensures that we only print the unencryptedWarning once per\n// CLI invocation (no need to warn the user multiple times per command).\nvar alreadyPrinted atomic.Bool\n\n// Store saves the given credentials in the file store. This function is\n// idempotent and does not update the file if credentials did not change.\nfunc (c *fileStore) Store(authConfig types.AuthConfig) error {\n\tauthConfigs := c.file.GetAuthConfigs()\n\tif oldAuthConfig, ok := authConfigs[authConfig.ServerAddress]; ok && oldAuthConfig == authConfig {\n\t\t// Credentials didn't change, so skip updating the configuration file.\n\t\treturn nil\n\t}\n\tauthConfigs[authConfig.ServerAddress] = authConfig\n\tif err := c.file.Save(); err != nil {\n\t\treturn err\n\t}\n\n\tif !alreadyPrinted.Load() && authConfig.Password != \"\" {\n\t\t// Display a warning if we're storing the users password (not a token).\n\t\t//\n\t\t// FIXME(thaJeztah): make output configurable instead of hardcoding to os.Stderr\n\t\t_, _ = fmt.Fprintln(os.Stderr, fmt.Sprintf(unencryptedWarning, c.file.GetFilename()))\n\t\talreadyPrinted.Store(true)\n\t}\n\n\treturn nil\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/memorystore/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.24\n\npackage memorystore\n\nimport (\n\t\"fmt\"\n\t\"maps\"\n\t\"os\"\n\t\"sync\"\n\n\t\"github.com/docker/cli/cli/config/credentials\"\n\t\"github.com/docker/cli/cli/config/types\"\n)\n\n// notFoundErr is the error returned when a plugin could not be found.\ntype notFoundErr string\n\nfunc (notFoundErr) NotFound() {}\n\nfunc (e notFoundErr) Error() string {\n\treturn string(e)\n}\n\nvar errValueNotFound notFoundErr = \"value not found\"\n\ntype Config struct {\n\tlock              sync.RWMutex\n\tmemoryCredentials map[string]types.AuthConfig\n\tfallbackStore     credentials.Store\n}\n\nfunc (e *Config) Erase(serverAddress string) error {\n\te.lock.Lock()\n\tdefer e.lock.Unlock()\n\tdelete(e.memoryCredentials, serverAddress)\n\n\tif e.fallbackStore != nil {\n\t\terr := e.fallbackStore.Erase(serverAddress)\n\t\tif err != nil {\n\t\t\t_, _ = fmt.Fprintln(os.Stderr, \"memorystore: \", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (e *Config) Get(serverAddress string) (types.AuthConfig, error) {\n\te.lock.RLock()\n\tdefer e.lock.RUnlock()\n\tauthConfig, ok := e.memoryCredentials[serverAddress]\n\tif !ok {\n\t\tif e.fallbackStore != nil {\n\t\t\treturn e.fallbackStore.Get(serverAddress)\n\t\t}\n\t\treturn types.AuthConfig{}, errValueNotFound\n\t}\n\treturn authConfig, nil\n}\n\nfunc (e *Config) GetAll() (map[string]types.AuthConfig, error) {\n\te.lock.RLock()\n\tdefer e.lock.RUnlock()\n\tcreds := make(map[string]types.AuthConfig)\n\n\tif e.fallbackStore != nil {\n\t\tfileCredentials, err := e.fallbackStore.GetAll()\n\t\tif err != nil {\n\t\t\t_, _ = fmt.Fprintln(os.Stderr, \"memorystore: \", err)\n\t\t} else {\n\t\t\tcreds = fileCredentials\n\t\t}\n\t}\n\n\tmaps.Copy(creds, e.memoryCredentials)\n\treturn creds, nil\n}\n\nfunc (e *Config) Store(authConfig types.AuthConfig) error {\n\te.lock.Lock()\n\tdefer e.lock.Unlock()\n\te.memoryCredentials[authConfig.ServerAddress] = authConfig\n\n\tif e.fallbackStore != nil {\n\t\treturn e.fallbackStore.Store(authConfig)\n\t}\n\treturn nil\n}\n\n// WithFallbackStore sets a fallback store.\n//\n// Write operations will be performed on both the memory store and the\n// fallback store.\n//\n// Read operations will first check the memory store, and if the credential\n// is not found, it will then check the fallback store.\n//\n// Retrieving all credentials will return from both the memory store and the\n// fallback store, merging the results from both stores into a single map.\n//\n// Data stored in the memory store will take precedence over data in the\n// fallback store.\nfunc WithFallbackStore(store credentials.Store) Options {\n\treturn func(s *Config) error {\n\t\ts.fallbackStore = store\n\t\treturn nil\n\t}\n}\n\n// WithAuthConfig allows to set the initial credentials in the memory store.\nfunc WithAuthConfig(config map[string]types.AuthConfig) Options {\n\treturn func(s *Config) error {\n\t\ts.memoryCredentials = config\n\t\treturn nil\n\t}\n}\n\ntype Options func(*Config) error\n\n// New creates a new in memory credential store\nfunc New(opts ...Options) (credentials.Store, error) {\n\tm := &Config{\n\t\tmemoryCredentials: make(map[string]types.AuthConfig),\n\t}\n\tfor _, opt := range opts {\n\t\tif err := opt(m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn m, nil\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\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/distribution/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/docker/distribution/registry/client/auth/challenge/addr.go",
    "content": "package challenge\n\nimport (\n\t\"net/url\"\n\t\"strings\"\n)\n\n// FROM: https://golang.org/src/net/http/http.go\n// Given a string of the form \"host\", \"host:port\", or \"[ipv6::address]:port\",\n// return true if the string includes a port.\nfunc hasPort(s string) bool { return strings.LastIndex(s, \":\") > strings.LastIndex(s, \"]\") }\n\n// FROM: http://golang.org/src/net/http/transport.go\nvar portMap = map[string]string{\n\t\"http\":  \"80\",\n\t\"https\": \"443\",\n}\n\n// canonicalAddr returns url.Host but always with a \":port\" suffix\n// FROM: http://golang.org/src/net/http/transport.go\nfunc canonicalAddr(url *url.URL) string {\n\taddr := url.Host\n\tif !hasPort(addr) {\n\t\treturn addr + \":\" + portMap[url.Scheme]\n\t}\n\treturn addr\n}\n"
  },
  {
    "path": "vendor/github.com/docker/distribution/registry/client/auth/challenge/authchallenge.go",
    "content": "package challenge\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// Challenge carries information from a WWW-Authenticate response header.\n// See RFC 2617.\ntype Challenge struct {\n\t// Scheme is the auth-scheme according to RFC 2617\n\tScheme string\n\n\t// Parameters are the auth-params according to RFC 2617\n\tParameters map[string]string\n}\n\n// Manager manages the challenges for endpoints.\n// The challenges are pulled out of HTTP responses. Only\n// responses which expect challenges should be added to\n// the manager, since a non-unauthorized request will be\n// viewed as not requiring challenges.\ntype Manager interface {\n\t// GetChallenges returns the challenges for the given\n\t// endpoint URL.\n\tGetChallenges(endpoint url.URL) ([]Challenge, error)\n\n\t// AddResponse adds the response to the challenge\n\t// manager. The challenges will be parsed out of\n\t// the WWW-Authenicate headers and added to the\n\t// URL which was produced the response. If the\n\t// response was authorized, any challenges for the\n\t// endpoint will be cleared.\n\tAddResponse(resp *http.Response) error\n}\n\n// NewSimpleManager returns an instance of\n// Manger which only maps endpoints to challenges\n// based on the responses which have been added the\n// manager. The simple manager will make no attempt to\n// perform requests on the endpoints or cache the responses\n// to a backend.\nfunc NewSimpleManager() Manager {\n\treturn &simpleManager{\n\t\tChallenges: make(map[string][]Challenge),\n\t}\n}\n\ntype simpleManager struct {\n\tsync.RWMutex\n\tChallenges map[string][]Challenge\n}\n\nfunc normalizeURL(endpoint *url.URL) {\n\tendpoint.Host = strings.ToLower(endpoint.Host)\n\tendpoint.Host = canonicalAddr(endpoint)\n}\n\nfunc (m *simpleManager) GetChallenges(endpoint url.URL) ([]Challenge, error) {\n\tnormalizeURL(&endpoint)\n\n\tm.RLock()\n\tdefer m.RUnlock()\n\tchallenges := m.Challenges[endpoint.String()]\n\treturn challenges, nil\n}\n\nfunc (m *simpleManager) AddResponse(resp *http.Response) error {\n\tchallenges := ResponseChallenges(resp)\n\tif resp.Request == nil {\n\t\treturn fmt.Errorf(\"missing request reference\")\n\t}\n\turlCopy := url.URL{\n\t\tPath:   resp.Request.URL.Path,\n\t\tHost:   resp.Request.URL.Host,\n\t\tScheme: resp.Request.URL.Scheme,\n\t}\n\tnormalizeURL(&urlCopy)\n\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.Challenges[urlCopy.String()] = challenges\n\treturn nil\n}\n\n// Octet types from RFC 2616.\ntype octetType byte\n\nvar octetTypes [256]octetType\n\nconst (\n\tisToken octetType = 1 << iota\n\tisSpace\n)\n\nfunc init() {\n\t// OCTET      = <any 8-bit sequence of data>\n\t// CHAR       = <any US-ASCII character (octets 0 - 127)>\n\t// CTL        = <any US-ASCII control character (octets 0 - 31) and DEL (127)>\n\t// CR         = <US-ASCII CR, carriage return (13)>\n\t// LF         = <US-ASCII LF, linefeed (10)>\n\t// SP         = <US-ASCII SP, space (32)>\n\t// HT         = <US-ASCII HT, horizontal-tab (9)>\n\t// <\">        = <US-ASCII double-quote mark (34)>\n\t// CRLF       = CR LF\n\t// LWS        = [CRLF] 1*( SP | HT )\n\t// TEXT       = <any OCTET except CTLs, but including LWS>\n\t// separators = \"(\" | \")\" | \"<\" | \">\" | \"@\" | \",\" | \";\" | \":\" | \"\\\" | <\">\n\t//              | \"/\" | \"[\" | \"]\" | \"?\" | \"=\" | \"{\" | \"}\" | SP | HT\n\t// token      = 1*<any CHAR except CTLs or separators>\n\t// qdtext     = <any TEXT except <\">>\n\n\tfor c := 0; c < 256; c++ {\n\t\tvar t octetType\n\t\tisCtl := c <= 31 || c == 127\n\t\tisChar := 0 <= c && c <= 127\n\t\tisSeparator := strings.ContainsRune(\" \\t\\\"(),/:;<=>?@[]\\\\{}\", rune(c))\n\t\tif strings.ContainsRune(\" \\t\\r\\n\", rune(c)) {\n\t\t\tt |= isSpace\n\t\t}\n\t\tif isChar && !isCtl && !isSeparator {\n\t\t\tt |= isToken\n\t\t}\n\t\toctetTypes[c] = t\n\t}\n}\n\n// ResponseChallenges returns a list of authorization challenges\n// for the given http Response. Challenges are only checked if\n// the response status code was a 401.\nfunc ResponseChallenges(resp *http.Response) []Challenge {\n\tif resp.StatusCode == http.StatusUnauthorized {\n\t\t// Parse the WWW-Authenticate Header and store the challenges\n\t\t// on this endpoint object.\n\t\treturn parseAuthHeader(resp.Header)\n\t}\n\n\treturn nil\n}\n\nfunc parseAuthHeader(header http.Header) []Challenge {\n\tchallenges := []Challenge{}\n\tfor _, h := range header[http.CanonicalHeaderKey(\"WWW-Authenticate\")] {\n\t\tv, p := parseValueAndParams(h)\n\t\tif v != \"\" {\n\t\t\tchallenges = append(challenges, Challenge{Scheme: v, Parameters: p})\n\t\t}\n\t}\n\treturn challenges\n}\n\nfunc parseValueAndParams(header string) (value string, params map[string]string) {\n\tparams = make(map[string]string)\n\tvalue, s := expectToken(header)\n\tif value == \"\" {\n\t\treturn\n\t}\n\tvalue = strings.ToLower(value)\n\ts = \",\" + skipSpace(s)\n\tfor strings.HasPrefix(s, \",\") {\n\t\tvar pkey string\n\t\tpkey, s = expectToken(skipSpace(s[1:]))\n\t\tif pkey == \"\" {\n\t\t\treturn\n\t\t}\n\t\tif !strings.HasPrefix(s, \"=\") {\n\t\t\treturn\n\t\t}\n\t\tvar pvalue string\n\t\tpvalue, s = expectTokenOrQuoted(s[1:])\n\t\tif pvalue == \"\" {\n\t\t\treturn\n\t\t}\n\t\tpkey = strings.ToLower(pkey)\n\t\tparams[pkey] = pvalue\n\t\ts = skipSpace(s)\n\t}\n\treturn\n}\n\nfunc skipSpace(s string) (rest string) {\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif octetTypes[s[i]]&isSpace == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn s[i:]\n}\n\nfunc expectToken(s string) (token, rest string) {\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif octetTypes[s[i]]&isToken == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn s[:i], s[i:]\n}\n\nfunc expectTokenOrQuoted(s string) (value string, rest string) {\n\tif !strings.HasPrefix(s, \"\\\"\") {\n\t\treturn expectToken(s)\n\t}\n\ts = s[1:]\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\"':\n\t\t\treturn s[:i], s[i+1:]\n\t\tcase '\\\\':\n\t\t\tp := make([]byte, len(s)-1)\n\t\t\tj := copy(p, s[:i])\n\t\t\tescape := true\n\t\t\tfor i = i + 1; i < len(s); i++ {\n\t\t\t\tb := s[i]\n\t\t\t\tswitch {\n\t\t\t\tcase escape:\n\t\t\t\t\tescape = false\n\t\t\t\t\tp[j] = b\n\t\t\t\t\tj++\n\t\t\t\tcase b == '\\\\':\n\t\t\t\t\tescape = true\n\t\t\t\tcase b == '\"':\n\t\t\t\t\treturn string(p[:j]), s[i+1:]\n\t\t\t\tdefault:\n\t\t\t\t\tp[j] = b\n\t\t\t\t\tj++\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\", \"\"\n\t\t}\n\t}\n\treturn \"\", \"\"\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 a [ProgramFunc] to run command in a [Shell].\nfunc NewShellProgramFunc(command string) ProgramFunc {\n\treturn func(args ...string) Program {\n\t\treturn createProgramCmdRedirectErr(command, args, nil)\n\t}\n}\n\n// NewShellProgramFuncWithEnv creates a [ProgramFunc] tu run command\n// in a [Shell] with the given environment variables.\nfunc NewShellProgramFuncWithEnv(command string, env *map[string]string) ProgramFunc {\n\treturn func(args ...string) Program {\n\t\treturn createProgramCmdRedirectErr(command, args, env)\n\t}\n}\n\nfunc createProgramCmdRedirectErr(command string, args []string, env *map[string]string) *Shell {\n\tec := exec.Command(command, args...)\n\tif env != nil {\n\t\tfor k, v := range *env {\n\t\t\tec.Env = append(ec.Environ(), k+\"=\"+v)\n\t\t}\n\t}\n\tec.Stderr = os.Stderr\n\treturn &Shell{cmd: ec}\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/google/go-containerregistry/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."
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/and/and_closer.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 and provides helpers for adding Close to io.{Reader|Writer}.\npackage and\n\nimport (\n\t\"io\"\n)\n\n// ReadCloser implements io.ReadCloser by reading from a particular io.Reader\n// and then calling the provided \"Close()\" method.\ntype ReadCloser struct {\n\tio.Reader\n\tCloseFunc func() error\n}\n\nvar _ io.ReadCloser = (*ReadCloser)(nil)\n\n// Close implements io.ReadCloser\nfunc (rac *ReadCloser) Close() error {\n\treturn rac.CloseFunc()\n}\n\n// WriteCloser implements io.WriteCloser by reading from a particular io.Writer\n// and then calling the provided \"Close()\" method.\ntype WriteCloser struct {\n\tio.Writer\n\tCloseFunc func() error\n}\n\nvar _ io.WriteCloser = (*WriteCloser)(nil)\n\n// Close implements io.WriteCloser\nfunc (wac *WriteCloser) Close() error {\n\treturn wac.CloseFunc()\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/compression/compression.go",
    "content": "// Copyright 2022 Google LLC All Rights Reserved.\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 compression abstracts over gzip and zstd.\npackage compression\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/gzip\"\n\t\"github.com/google/go-containerregistry/internal/zstd\"\n\t\"github.com/google/go-containerregistry/pkg/compression\"\n)\n\n// Opener represents e.g. opening a file.\ntype Opener = func() (io.ReadCloser, error)\n\n// GetCompression detects whether an Opener is compressed and which algorithm is used.\nfunc GetCompression(opener Opener) (compression.Compression, error) {\n\trc, err := opener()\n\tif err != nil {\n\t\treturn compression.None, err\n\t}\n\tdefer rc.Close()\n\n\tcp, _, err := PeekCompression(rc)\n\tif err != nil {\n\t\treturn compression.None, err\n\t}\n\n\treturn cp, nil\n}\n\n// PeekCompression detects whether the input stream is compressed and which algorithm is used.\n//\n// If r implements Peek, we will use that directly, otherwise a small number\n// of bytes are buffered to Peek at the gzip/zstd header, and the returned\n// PeekReader can be used as a replacement for the consumed input io.Reader.\nfunc PeekCompression(r io.Reader) (compression.Compression, PeekReader, error) {\n\tpr := intoPeekReader(r)\n\n\tif isGZip, _, err := checkHeader(pr, gzip.MagicHeader); err != nil {\n\t\treturn compression.None, pr, err\n\t} else if isGZip {\n\t\treturn compression.GZip, pr, nil\n\t}\n\n\tif isZStd, _, err := checkHeader(pr, zstd.MagicHeader); err != nil {\n\t\treturn compression.None, pr, err\n\t} else if isZStd {\n\t\treturn compression.ZStd, pr, nil\n\t}\n\n\treturn compression.None, pr, nil\n}\n\n// PeekReader is an io.Reader that also implements Peek a la bufio.Reader.\ntype PeekReader interface {\n\tio.Reader\n\tPeek(n int) ([]byte, error)\n}\n\n// IntoPeekReader creates a PeekReader from an io.Reader.\n// If the reader already has a Peek method, it will just return the passed reader.\nfunc intoPeekReader(r io.Reader) PeekReader {\n\tif p, ok := r.(PeekReader); ok {\n\t\treturn p\n\t}\n\n\treturn bufio.NewReader(r)\n}\n\n// CheckHeader checks whether the first bytes from a PeekReader match an expected header\nfunc checkHeader(pr PeekReader, expectedHeader []byte) (bool, PeekReader, error) {\n\theader, err := pr.Peek(len(expectedHeader))\n\tif err != nil {\n\t\t// https://github.com/google/go-containerregistry/issues/367\n\t\tif err == io.EOF {\n\t\t\treturn false, pr, nil\n\t\t}\n\t\treturn false, pr, err\n\t}\n\treturn bytes.Equal(header, expectedHeader), pr, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/estargz/estargz.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 estargz adapts the containerd estargz package to our abstractions.\npackage estargz\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\n\t\"github.com/containerd/stargz-snapshotter/estargz\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\n// Assert that what we're returning is an io.ReadCloser\nvar _ io.ReadCloser = (*estargz.Blob)(nil)\n\n// ReadCloser reads uncompressed tarball input from the io.ReadCloser and\n// returns:\n//   - An io.ReadCloser from which compressed data may be read, and\n//   - A v1.Hash with the hash of the estargz table of contents, or\n//   - An error if the estargz processing encountered a problem.\n//\n// Refer to estargz for the options:\n// https://pkg.go.dev/github.com/containerd/stargz-snapshotter/estargz@v0.4.1#Option\nfunc ReadCloser(r io.ReadCloser, opts ...estargz.Option) (*estargz.Blob, v1.Hash, error) {\n\tdefer r.Close()\n\n\t// TODO(#876): Avoid buffering into memory.\n\tbs, err := io.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, v1.Hash{}, err\n\t}\n\tbr := bytes.NewReader(bs)\n\n\trc, err := estargz.Build(io.NewSectionReader(br, 0, int64(len(bs))), opts...)\n\tif err != nil {\n\t\treturn nil, v1.Hash{}, err\n\t}\n\n\th, err := v1.NewHash(rc.TOCDigest().String())\n\treturn rc, h, err\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/gzip/zip.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 gzip provides helper functions for interacting with gzipped streams.\npackage gzip\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/and\"\n)\n\n// MagicHeader is the start of gzip files.\nvar MagicHeader = []byte{'\\x1f', '\\x8b'}\n\n// ReadCloser reads uncompressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which compressed data may be read.\n// This uses gzip.BestSpeed for the compression level.\nfunc ReadCloser(r io.ReadCloser) io.ReadCloser {\n\treturn ReadCloserLevel(r, gzip.BestSpeed)\n}\n\n// ReadCloserLevel reads uncompressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which compressed data may be read.\n// Refer to compress/gzip for the level:\n// https://golang.org/pkg/compress/gzip/#pkg-constants\nfunc ReadCloserLevel(r io.ReadCloser, level int) io.ReadCloser {\n\tpr, pw := io.Pipe()\n\n\t// For highly compressible layers, gzip.Writer will output a very small\n\t// number of bytes per Write(). This is normally fine, but when pushing\n\t// to a registry, we want to ensure that we're taking full advantage of\n\t// the available bandwidth instead of sending tons of tiny writes over\n\t// the wire.\n\t// 64K ought to be small enough for anybody.\n\tbw := bufio.NewWriterSize(pw, 2<<16)\n\n\t// Returns err so we can pw.CloseWithError(err)\n\tgo func() error {\n\t\t// TODO(go1.14): Just defer {pw,gw,r}.Close like you'd expect.\n\t\t// Context: https://golang.org/issue/24283\n\t\tgw, err := gzip.NewWriterLevel(bw, level)\n\t\tif err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\tif _, err := io.Copy(gw, r); err != nil {\n\t\t\tdefer r.Close()\n\t\t\tdefer gw.Close()\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// Close gzip writer to Flush it and write gzip trailers.\n\t\tif err := gw.Close(); err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// Flush bufio writer to ensure we write out everything.\n\t\tif err := bw.Flush(); err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// We don't really care if these fail.\n\t\tdefer pw.Close()\n\t\tdefer r.Close()\n\n\t\treturn nil\n\t}()\n\n\treturn pr\n}\n\n// UnzipReadCloser reads compressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which uncompressed data may be read.\nfunc UnzipReadCloser(r io.ReadCloser) (io.ReadCloser, error) {\n\tgr, err := gzip.NewReader(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &and.ReadCloser{\n\t\tReader: gr,\n\t\tCloseFunc: func() error {\n\t\t\t// If the unzip fails, then this seems to return the same\n\t\t\t// error as the read.  We don't want this to interfere with\n\t\t\t// us closing the main ReadCloser, since this could leave\n\t\t\t// an open file descriptor (fails on Windows).\n\t\t\tgr.Close()\n\t\t\treturn r.Close()\n\t\t},\n\t}, nil\n}\n\n// Is detects whether the input stream is compressed.\nfunc Is(r io.Reader) (bool, error) {\n\tmagicHeader := make([]byte, 2)\n\tn, err := r.Read(magicHeader)\n\tif n == 0 && err == io.EOF {\n\t\treturn false, nil\n\t}\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn bytes.Equal(magicHeader, MagicHeader), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/redact/redact.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 redact contains a simple context signal for redacting requests.\npackage redact\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net/url\"\n)\n\ntype contextKey string\n\nvar redactKey = contextKey(\"redact\")\n\n// NewContext creates a new ctx with the reason for redaction.\nfunc NewContext(ctx context.Context, reason string) context.Context {\n\treturn context.WithValue(ctx, redactKey, reason)\n}\n\n// FromContext returns the redaction reason, if any.\nfunc FromContext(ctx context.Context) (bool, string) {\n\treason, ok := ctx.Value(redactKey).(string)\n\treturn ok, reason\n}\n\n// Error redacts potentially sensitive query parameter values in the URL from the error's message.\n//\n// If the error is a *url.Error, this returns a *url.Error with the URL redacted.\n// Any other error type, or nil, is returned unchanged.\nfunc Error(err error) error {\n\t// If the error is a url.Error, we can redact the URL.\n\t// Otherwise (including if err is nil), we can't redact.\n\tvar uerr *url.Error\n\tif ok := errors.As(err, &uerr); !ok {\n\t\treturn err\n\t}\n\tu, perr := url.Parse(uerr.URL)\n\tif perr != nil {\n\t\treturn err // If the URL can't be parsed, just return the original error.\n\t}\n\tuerr.URL = URL(u) // Update the URL to the redacted URL.\n\treturn uerr\n}\n\n// The set of query string keys that we expect to send as part of the registry\n// protocol. Anything else is potentially dangerous to leak, as it's probably\n// from a redirect. These redirects often included tokens or signed URLs.\nvar paramAllowlist = map[string]struct{}{\n\t// Token exchange\n\t\"scope\":   {},\n\t\"service\": {},\n\t// Cross-repo mounting\n\t\"mount\": {},\n\t\"from\":  {},\n\t// Layer PUT\n\t\"digest\": {},\n\t// Listing tags and catalog\n\t\"n\":    {},\n\t\"last\": {},\n}\n\n// URL redacts potentially sensitive query parameter values from the URL's query string.\nfunc URL(u *url.URL) string {\n\tqs := u.Query()\n\tfor k, v := range qs {\n\t\tfor i := range v {\n\t\t\tif _, ok := paramAllowlist[k]; !ok {\n\t\t\t\t// key is not in the Allowlist\n\t\t\t\tv[i] = \"REDACTED\"\n\t\t\t}\n\t\t}\n\t}\n\tr := *u\n\tr.RawQuery = qs.Encode()\n\treturn r.Redacted()\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/retry/retry.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 retry provides methods for retrying operations. It is a thin wrapper\n// around k8s.io/apimachinery/pkg/util/wait to make certain operations easier.\npackage retry\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/internal/retry/wait\"\n)\n\n// Backoff is an alias of our own wait.Backoff to avoid name conflicts with\n// the kubernetes wait package. Typing retry.Backoff is aesier than fixing\n// the wrong import every time you use wait.Backoff.\ntype Backoff = wait.Backoff\n\n// This is implemented by several errors in the net package as well as our\n// transport.Error.\ntype temporary interface {\n\tTemporary() bool\n}\n\n// IsTemporary returns true if err implements Temporary() and it returns true.\nfunc IsTemporary(err error) bool {\n\tif errors.Is(err, context.DeadlineExceeded) {\n\t\treturn false\n\t}\n\tif te, ok := err.(temporary); ok && te.Temporary() {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsNotNil returns true if err is not nil.\nfunc IsNotNil(err error) bool {\n\treturn err != nil\n}\n\n// Predicate determines whether an error should be retried.\ntype Predicate func(error) (retry bool)\n\n// Retry retries a given function, f, until a predicate is satisfied, using\n// exponential backoff. If the predicate is never satisfied, it will return the\n// last error returned by f.\nfunc Retry(f func() error, p Predicate, backoff wait.Backoff) (err error) {\n\tif f == nil {\n\t\treturn fmt.Errorf(\"nil f passed to retry\")\n\t}\n\tif p == nil {\n\t\treturn fmt.Errorf(\"nil p passed to retry\")\n\t}\n\n\tcondition := func() (bool, error) {\n\t\terr = f()\n\t\tif p(err) {\n\t\t\treturn false, nil\n\t\t}\n\t\treturn true, err\n\t}\n\n\twait.ExponentialBackoff(backoff, condition)\n\treturn\n}\n\ntype contextKey string\n\nvar key = contextKey(\"never\")\n\n// Never returns a context that signals something should not be retried.\n// This is a hack and can be used to communicate across package boundaries\n// to avoid retry amplification.\nfunc Never(ctx context.Context) context.Context {\n\treturn context.WithValue(ctx, key, true)\n}\n\n// Ever returns true if the context was wrapped by Never.\nfunc Ever(ctx context.Context) bool {\n\treturn ctx.Value(key) == nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/retry/wait/kubernetes_apimachinery_wait.go",
    "content": "/*\nCopyright 2014 The Kubernetes 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 wait is a subset of k8s.io/apimachinery to avoid conflicts\n// in dependencies (specifically, logging).\npackage wait\n\nimport (\n\t\"errors\"\n\t\"math/rand\"\n\t\"time\"\n)\n\n// Jitter returns a time.Duration between duration and duration + maxFactor *\n// duration.\n//\n// This allows clients to avoid converging on periodic behavior. If maxFactor\n// is 0.0, a suggested default value will be chosen.\nfunc Jitter(duration time.Duration, maxFactor float64) time.Duration {\n\tif maxFactor <= 0.0 {\n\t\tmaxFactor = 1.0\n\t}\n\twait := duration + time.Duration(rand.Float64()*maxFactor*float64(duration))\n\treturn wait\n}\n\n// ErrWaitTimeout is returned when the condition exited without success.\nvar ErrWaitTimeout = errors.New(\"timed out waiting for the condition\")\n\n// ConditionFunc returns true if the condition is satisfied, or an error\n// if the loop should be aborted.\ntype ConditionFunc func() (done bool, err error)\n\n// Backoff holds parameters applied to a Backoff function.\ntype Backoff struct {\n\t// The initial duration.\n\tDuration time.Duration\n\t// Duration is multiplied by factor each iteration, if factor is not zero\n\t// and the limits imposed by Steps and Cap have not been reached.\n\t// Should not be negative.\n\t// The jitter does not contribute to the updates to the duration parameter.\n\tFactor float64\n\t// The sleep at each iteration is the duration plus an additional\n\t// amount chosen uniformly at random from the interval between\n\t// zero and `jitter*duration`.\n\tJitter float64\n\t// The remaining number of iterations in which the duration\n\t// parameter may change (but progress can be stopped earlier by\n\t// hitting the cap). If not positive, the duration is not\n\t// changed. Used for exponential backoff in combination with\n\t// Factor and Cap.\n\tSteps int\n\t// A limit on revised values of the duration parameter. If a\n\t// multiplication by the factor parameter would make the duration\n\t// exceed the cap then the duration is set to the cap and the\n\t// steps parameter is set to zero.\n\tCap time.Duration\n}\n\n// Step (1) returns an amount of time to sleep determined by the\n// original Duration and Jitter and (2) mutates the provided Backoff\n// to update its Steps and Duration.\nfunc (b *Backoff) Step() time.Duration {\n\tif b.Steps < 1 {\n\t\tif b.Jitter > 0 {\n\t\t\treturn Jitter(b.Duration, b.Jitter)\n\t\t}\n\t\treturn b.Duration\n\t}\n\tb.Steps--\n\n\tduration := b.Duration\n\n\t// calculate the next step\n\tif b.Factor != 0 {\n\t\tb.Duration = time.Duration(float64(b.Duration) * b.Factor)\n\t\tif b.Cap > 0 && b.Duration > b.Cap {\n\t\t\tb.Duration = b.Cap\n\t\t\tb.Steps = 0\n\t\t}\n\t}\n\n\tif b.Jitter > 0 {\n\t\tduration = Jitter(duration, b.Jitter)\n\t}\n\treturn duration\n}\n\n// ExponentialBackoff repeats a condition check with exponential backoff.\n//\n// It repeatedly checks the condition and then sleeps, using `backoff.Step()`\n// to determine the length of the sleep and adjust Duration and Steps.\n// Stops and returns as soon as:\n// 1. the condition check returns true or an error,\n// 2. `backoff.Steps` checks of the condition have been done, or\n// 3. a sleep truncated by the cap on duration has been completed.\n// In case (1) the returned error is what the condition function returned.\n// In all other cases, ErrWaitTimeout is returned.\nfunc ExponentialBackoff(backoff Backoff, condition ConditionFunc) error {\n\tfor backoff.Steps > 0 {\n\t\tif ok, err := condition(); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t\tif backoff.Steps == 1 {\n\t\t\tbreak\n\t\t}\n\t\ttime.Sleep(backoff.Step())\n\t}\n\treturn ErrWaitTimeout\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/verify/verify.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 verify provides a ReadCloser that verifies content matches the\n// expected hash values.\npackage verify\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/and\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\n// SizeUnknown is a sentinel value to indicate that the expected size is not known.\nconst SizeUnknown = -1\n\ntype verifyReader struct {\n\tinner             io.Reader\n\thasher            hash.Hash\n\texpected          v1.Hash\n\tgotSize, wantSize int64\n}\n\n// Error provides information about the failed hash verification.\ntype Error struct {\n\tgot     string\n\twant    v1.Hash\n\tgotSize int64\n}\n\nfunc (v Error) Error() string {\n\treturn fmt.Sprintf(\"error verifying %s checksum after reading %d bytes; got %q, want %q\",\n\t\tv.want.Algorithm, v.gotSize, v.got, v.want)\n}\n\n// Read implements io.Reader\nfunc (vc *verifyReader) Read(b []byte) (int, error) {\n\tn, err := vc.inner.Read(b)\n\tvc.gotSize += int64(n)\n\tif err == io.EOF {\n\t\tif vc.wantSize != SizeUnknown && vc.gotSize != vc.wantSize {\n\t\t\treturn n, fmt.Errorf(\"error verifying size; got %d, want %d\", vc.gotSize, vc.wantSize)\n\t\t}\n\t\tgot := hex.EncodeToString(vc.hasher.Sum(nil))\n\t\tif want := vc.expected.Hex; got != want {\n\t\t\treturn n, Error{\n\t\t\t\tgot:     vc.expected.Algorithm + \":\" + got,\n\t\t\t\twant:    vc.expected,\n\t\t\t\tgotSize: vc.gotSize,\n\t\t\t}\n\t\t}\n\t}\n\treturn n, err\n}\n\n// ReadCloser wraps the given io.ReadCloser to verify that its contents match\n// the provided v1.Hash before io.EOF is returned.\n//\n// The reader will only be read up to size bytes, to prevent resource\n// exhaustion. If EOF is returned before size bytes are read, an error is\n// returned.\n//\n// A size of SizeUnknown (-1) indicates disables size verification when the size\n// is unknown ahead of time.\nfunc ReadCloser(r io.ReadCloser, size int64, h v1.Hash) (io.ReadCloser, error) {\n\tw, err := v1.Hasher(h.Algorithm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tr2 := io.TeeReader(r, w) // pass all writes to the hasher.\n\tif size != SizeUnknown {\n\t\tr2 = io.LimitReader(r2, size) // if we know the size, limit to that size.\n\t}\n\treturn &and.ReadCloser{\n\t\tReader: &verifyReader{\n\t\t\tinner:    r2,\n\t\t\thasher:   w,\n\t\t\texpected: h,\n\t\t\twantSize: size,\n\t\t},\n\t\tCloseFunc: r.Close,\n\t}, nil\n}\n\n// Descriptor verifies that the embedded Data field matches the Size and Digest\n// fields of the given v1.Descriptor, returning an error if the Data field is\n// missing or if it contains incorrect data.\nfunc Descriptor(d v1.Descriptor) error {\n\tif d.Data == nil {\n\t\treturn errors.New(\"error verifying descriptor; Data == nil\")\n\t}\n\n\th, sz, err := v1.SHA256(bytes.NewReader(d.Data))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h != d.Digest {\n\t\treturn fmt.Errorf(\"error verifying Digest; got %q, want %q\", h, d.Digest)\n\t}\n\tif sz != d.Size {\n\t\treturn fmt.Errorf(\"error verifying Size; got %d, want %d\", sz, d.Size)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/windows/windows.go",
    "content": "// Copyright 2021 Google LLC All Rights Reserved.\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 windows\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/internal/gzip\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\n// userOwnerAndGroupSID is a magic value needed to make the binary executable\n// in a Windows container.\n//\n// owner: BUILTIN/Users group: BUILTIN/Users ($sddlValue=\"O:BUG:BU\")\nconst userOwnerAndGroupSID = \"AQAAgBQAAAAkAAAAAAAAAAAAAAABAgAAAAAABSAAAAAhAgAAAQIAAAAAAAUgAAAAIQIAAA==\"\n\n// Windows returns a Layer that is converted to be pullable on Windows.\nfunc Windows(layer v1.Layer) (v1.Layer, error) {\n\t// TODO: do this lazily.\n\n\tlayerReader, err := layer.Uncompressed()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting layer: %w\", err)\n\t}\n\tdefer layerReader.Close()\n\ttarReader := tar.NewReader(layerReader)\n\tw := new(bytes.Buffer)\n\ttarWriter := tar.NewWriter(w)\n\tdefer tarWriter.Close()\n\n\tfor _, dir := range []string{\"Files\", \"Hives\"} {\n\t\tif err := tarWriter.WriteHeader(&tar.Header{\n\t\t\tName:     dir,\n\t\t\tTypeflag: tar.TypeDir,\n\t\t\t// Use a fixed Mode, so that this isn't sensitive to the directory and umask\n\t\t\t// under which it was created. Additionally, windows can only set 0222,\n\t\t\t// 0444, or 0666, none of which are executable.\n\t\t\tMode:   0555,\n\t\t\tFormat: tar.FormatPAX,\n\t\t}); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"writing %s directory: %w\", dir, err)\n\t\t}\n\t}\n\n\tfor {\n\t\theader, err := tarReader.Next()\n\t\tif errors.Is(err, io.EOF) {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"reading layer: %w\", err)\n\t\t}\n\n\t\tif strings.HasPrefix(header.Name, \"Files/\") {\n\t\t\treturn nil, fmt.Errorf(\"file path %q already suitable for Windows\", header.Name)\n\t\t}\n\n\t\theader.Name = path.Join(\"Files\", header.Name)\n\t\theader.Format = tar.FormatPAX\n\n\t\t// TODO: this seems to make the file executable on Windows;\n\t\t// only do this if the file should be executable.\n\t\tif header.PAXRecords == nil {\n\t\t\theader.PAXRecords = map[string]string{}\n\t\t}\n\t\theader.PAXRecords[\"MSWINDOWS.rawsd\"] = userOwnerAndGroupSID\n\n\t\tif err := tarWriter.WriteHeader(header); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"writing tar header: %w\", err)\n\t\t}\n\n\t\tif header.Typeflag == tar.TypeReg {\n\t\t\tif _, err = io.Copy(tarWriter, tarReader); err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"writing layer file: %w\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := tarWriter.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tb := w.Bytes()\n\t// gzip the contents, then create the layer\n\topener := func() (io.ReadCloser, error) {\n\t\treturn gzip.ReadCloser(io.NopCloser(bytes.NewReader(b))), nil\n\t}\n\tlayer, err = tarball.LayerFromOpener(opener)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating layer: %w\", err)\n\t}\n\n\treturn layer, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/internal/zstd/zstd.go",
    "content": "// Copyright 2022 Google LLC All Rights Reserved.\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 zstd provides helper functions for interacting with zstd streams.\npackage zstd\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/and\"\n\t\"github.com/klauspost/compress/zstd\"\n)\n\n// MagicHeader is the start of zstd files.\nvar MagicHeader = []byte{'\\x28', '\\xb5', '\\x2f', '\\xfd'}\n\n// ReadCloser reads uncompressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which compressed data may be read.\n// This uses zstd level 1 for the compression.\nfunc ReadCloser(r io.ReadCloser) io.ReadCloser {\n\treturn ReadCloserLevel(r, 1)\n}\n\n// ReadCloserLevel reads uncompressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which compressed data may be read.\nfunc ReadCloserLevel(r io.ReadCloser, level int) io.ReadCloser {\n\tpr, pw := io.Pipe()\n\n\t// For highly compressible layers, zstd.Writer will output a very small\n\t// number of bytes per Write(). This is normally fine, but when pushing\n\t// to a registry, we want to ensure that we're taking full advantage of\n\t// the available bandwidth instead of sending tons of tiny writes over\n\t// the wire.\n\t// 64K ought to be small enough for anybody.\n\tbw := bufio.NewWriterSize(pw, 2<<16)\n\n\t// Returns err so we can pw.CloseWithError(err)\n\tgo func() error {\n\t\t// TODO(go1.14): Just defer {pw,zw,r}.Close like you'd expect.\n\t\t// Context: https://golang.org/issue/24283\n\t\tzw, err := zstd.NewWriter(bw, zstd.WithEncoderLevel(zstd.EncoderLevelFromZstd(level)))\n\t\tif err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\tif _, err := io.Copy(zw, r); err != nil {\n\t\t\tdefer r.Close()\n\t\t\tdefer zw.Close()\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// Close zstd writer to Flush it and write zstd trailers.\n\t\tif err := zw.Close(); err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// Flush bufio writer to ensure we write out everything.\n\t\tif err := bw.Flush(); err != nil {\n\t\t\treturn pw.CloseWithError(err)\n\t\t}\n\n\t\t// We don't really care if these fail.\n\t\tdefer pw.Close()\n\t\tdefer r.Close()\n\n\t\treturn nil\n\t}()\n\n\treturn pr\n}\n\n// UnzipReadCloser reads compressed input data from the io.ReadCloser and\n// returns an io.ReadCloser from which uncompressed data may be read.\nfunc UnzipReadCloser(r io.ReadCloser) (io.ReadCloser, error) {\n\tgr, err := zstd.NewReader(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &and.ReadCloser{\n\t\tReader: gr,\n\t\tCloseFunc: func() error {\n\t\t\t// If the unzip fails, then this seems to return the same\n\t\t\t// error as the read.  We don't want this to interfere with\n\t\t\t// us closing the main ReadCloser, since this could leave\n\t\t\t// an open file descriptor (fails on Windows).\n\t\t\tgr.Close()\n\t\t\treturn r.Close()\n\t\t},\n\t}, nil\n}\n\n// Is detects whether the input stream is compressed.\nfunc Is(r io.Reader) (bool, error) {\n\tmagicHeader := make([]byte, 4)\n\tn, err := r.Read(magicHeader)\n\tif n == 0 && err == io.EOF {\n\t\treturn false, nil\n\t}\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn bytes.Equal(magicHeader, MagicHeader), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/README.md",
    "content": "# `authn`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/authn?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/authn)\n\nThis README outlines how we acquire and use credentials when interacting with a registry.\n\nAs much as possible, we attempt to emulate `docker`'s authentication behavior and configuration so that this library \"just works\" if you've already configured credentials that work with `docker`; however, when things don't work, a basic understanding of what's going on can help with debugging.\n\nThe official documentation for how authentication with `docker` works is (reasonably) scattered across several different sites and GitHub repositories, so we've tried to summarize the relevant bits here.\n\n## tl;dr for consumers of this package\n\nBy default, [`pkg/v1/remote`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote) uses [`Anonymous`](https://godoc.org/github.com/google/go-containerregistry/pkg/authn#Anonymous) credentials (i.e. _none_), which for most registries will only allow read access to public images.\n\nTo use the credentials found in your Docker config file, you can use the [`DefaultKeychain`](https://godoc.org/github.com/google/go-containerregistry/pkg/authn#DefaultKeychain), e.g.:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\nfunc main() {\n\tref, err := name.ParseReference(\"registry.example.com/private/repo\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Fetch the manifest using default credentials.\n\timg, err := remote.Get(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Prints the digest of registry.example.com/private/repo\n\tfmt.Println(img.Digest)\n}\n```\n\nThe `DefaultKeychain` will use credentials as described in your Docker config file -- usually `~/.docker/config.json`, or `%USERPROFILE%\\.docker\\config.json` on Windows -- or the location described by the `DOCKER_CONFIG` environment variable, if set.\n\nIf those are not found, `DefaultKeychain` will look for credentials configured using [Podman's expectation](https://docs.podman.io/en/latest/markdown/podman-login.1.html) that these are found in `${XDG_RUNTIME_DIR}/containers/auth.json`.\n\n[See below](#docker-config-auth) for more information about what is configured in this file.\n\n## Emulating Cloud Provider Credential Helpers\n\n[`pkg/v1/google.Keychain`](https://pkg.go.dev/github.com/google/go-containerregistry/pkg/v1/google#Keychain) provides a `Keychain` implementation that emulates [`docker-credential-gcr`](https://github.com/GoogleCloudPlatform/docker-credential-gcr) to find credentials in the environment.\nSee [`google.NewEnvAuthenticator`](https://pkg.go.dev/github.com/google/go-containerregistry/pkg/v1/google#NewEnvAuthenticator) and [`google.NewGcloudAuthenticator`](https://pkg.go.dev/github.com/google/go-containerregistry/pkg/v1/google#NewGcloudAuthenticator) for more information.\n\nTo emulate other credential helpers without requiring them to be available as executables, [`NewKeychainFromHelper`](https://pkg.go.dev/github.com/google/go-containerregistry/pkg/authn#NewKeychainFromHelper) provides an adapter that takes a Go implementation satisfying a subset of the [`credentials.Helper`](https://pkg.go.dev/github.com/docker/docker-credential-helpers/credentials#Helper) interface, and makes it available as a `Keychain`.\n\nThis means that you can emulate, for example, [Amazon ECR's `docker-credential-ecr-login` credential helper](https://github.com/awslabs/amazon-ecr-credential-helper) using the same implementation:\n\n```go\nimport (\n\tecr \"github.com/awslabs/amazon-ecr-credential-helper/ecr-login\"\n\t\"github.com/awslabs/amazon-ecr-credential-helper/ecr-login/api\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\nfunc main() {\n\t// ...\n\tecrHelper := ecr.ECRHelper{ClientFactory: api.DefaultClientFactory{}}\n\timg, err := remote.Get(ref, remote.WithAuthFromKeychain(authn.NewKeychainFromHelper(ecrHelper)))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t// ...\n}\n```\n\nLikewise, you can emulate [Azure's ACR `docker-credential-acr-env` credential helper](https://github.com/chrismellard/docker-credential-acr-env):\n\n```go\nimport (\n\t\"github.com/chrismellard/docker-credential-acr-env/pkg/credhelper\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\nfunc main() {\n\t// ...\n\tacrHelper := credhelper.NewACRCredentialsHelper()\n\timg, err := remote.Get(ref, remote.WithAuthFromKeychain(authn.NewKeychainFromHelper(acrHelper)))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t// ...\n}\n```\n\n<!-- TODO(jasonhall): Wrap these in docker-credential-magic and reference those from here. -->\n\n## Using Multiple `Keychain`s\n\n[`NewMultiKeychain`](https://pkg.go.dev/github.com/google/go-containerregistry/pkg/authn#NewMultiKeychain) allows you to specify multiple `Keychain` implementations, which will be checked in order when credentials are needed.\n\nFor example:\n\n```go\nkc := authn.NewMultiKeychain(\n    authn.DefaultKeychain,\n    google.Keychain,\n    authn.NewKeychainFromHelper(ecr.ECRHelper{ClientFactory: api.DefaultClientFactory{}}),\n    authn.NewKeychainFromHelper(acr.ACRCredHelper{}),\n)\n```\n\nThis multi-keychain will:\n\n- first check for credentials found in the Docker config file, as describe above, then\n- check for GCP credentials available in the environment, as described above, then\n- check for ECR credentials by emulating the ECR credential helper, then\n- check for ACR credentials by emulating the ACR credential helper.\n\nIf any keychain implementation is able to provide credentials for the request, they will be used, and further keychain implementations will not be consulted.\n\nIf no implementations are able to provide credentials, `Anonymous` credentials will be used.\n\n## Docker Config Auth\n\nWhat follows attempts to gather useful information about Docker's config.json and make it available in one place.\n\nIf you have questions, please [file an issue](https://github.com/google/go-containerregistry/issues/new).\n\n### Plaintext\n\nThe config file is where your credentials are stored when you invoke `docker login`, e.g. the contents may look something like this:\n\n```json\n{\n\t\"auths\": {\n\t\t\"registry.example.com\": {\n\t\t\t\"auth\": \"QXp1cmVEaWFtb25kOmh1bnRlcjI=\"\n\t\t}\n\t}\n}\n```\n\nThe `auths` map has an entry per registry, and the `auth` field contains your username and password encoded as [HTTP 'Basic' Auth](https://tools.ietf.org/html/rfc7617).\n\n**NOTE**: This means that your credentials are stored _in plaintext_:\n\n```bash\n$ echo \"QXp1cmVEaWFtb25kOmh1bnRlcjI=\" | base64 -d\nAzureDiamond:hunter2\n```\n\nFor what it's worth, this config file is equivalent to:\n\n```json\n{\n\t\"auths\": {\n\t\t\"registry.example.com\": {\n\t\t\t\"username\": \"AzureDiamond\",\n\t\t\t\"password\": \"hunter2\"\n\t\t}\n\t}\n}\n```\n\n... which is useful to know if e.g. your CI system provides you a registry username and password via environment variables and you want to populate this file manually without invoking `docker login`.\n\n### Helpers\n\nIf you log in like this, `docker` will warn you that you should use a [credential helper](https://docs.docker.com/engine/reference/commandline/login/#credentials-store), and you should!\n\nTo configure a global credential helper:\n```json\n{\n\t\"credsStore\": \"osxkeychain\"\n}\n```\n\nTo configure a per-registry credential helper:\n```json\n{\n\t\"credHelpers\": {\n\t\t\"gcr.io\": \"gcr\"\n\t}\n}\n```\n\nWe use [`github.com/docker/cli/cli/config.Load`](https://godoc.org/github.com/docker/cli/cli/config#Load) to parse the config file and invoke any necessary credential helpers. This handles the logic of taking a [`ConfigFile`](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/configfile/file.go#L25-L54) + registry domain and producing an [`AuthConfig`](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/types/authconfig.go#L3-L22), which determines how we authenticate to the registry.\n\n## Credential Helpers\n\nThe [credential helper protocol](https://github.com/docker/docker-credential-helpers) allows you to configure a binary that supplies credentials for the registry, rather than hard-coding them in the config file.\n\nThe protocol has several verbs, but the one we most care about is `get`.\n\nFor example, using the following config file:\n```json\n{\n\t\"credHelpers\": {\n\t\t\"gcr.io\": \"gcr\",\n\t\t\"eu.gcr.io\": \"gcr\"\n\t}\n}\n```\n\nTo acquire credentials for `gcr.io`, we look in the `credHelpers` map to find\nthe credential helper for `gcr.io` is `gcr`. By appending that value to\n`docker-credential-`, we can get the name of the binary we need to use.\n\nFor this example, that's `docker-credential-gcr`, which must be on our `$PATH`.\nWe'll then invoke that binary to get credentials:\n\n```bash\n$ echo \"gcr.io\" | docker-credential-gcr get\n{\"Username\":\"_token\",\"Secret\":\"<long access token>\"}\n```\n\nYou can configure the same credential helper for multiple registries, which is\nwhy we need to pass the domain in via STDIN, e.g. if we were trying to access\n`eu.gcr.io`, we'd do this instead:\n\n```bash\n$ echo \"eu.gcr.io\" | docker-credential-gcr get\n{\"Username\":\"_token\",\"Secret\":\"<long access token>\"}\n```\n\n### Debugging credential helpers\n\nIf a credential helper is configured but doesn't seem to be working, it can be\nchallenging to debug. Implementing a fake credential helper lets you poke around\nto make it easier to see where the failure is happening.\n\nThis \"implements\" a credential helper with hard-coded values:\n```\n#!/usr/bin/env bash\necho '{\"Username\":\"<token>\",\"Secret\":\"hunter2\"}'\n```\n\n\nThis implements a credential helper that prints the output of\n`docker-credential-gcr` to both stderr and whatever called it, which allows you\nto snoop on another credential helper:\n```\n#!/usr/bin/env bash\ndocker-credential-gcr $@ | tee >(cat 1>&2)\n```\n\nPut those files somewhere on your path, naming them e.g.\n`docker-credential-hardcoded` and `docker-credential-tee`, then modify the\nconfig file to use them:\n\n```json\n{\n\t\"credHelpers\": {\n\t\t\"gcr.io\": \"tee\",\n\t\t\"eu.gcr.io\": \"hardcoded\"\n\t}\n}\n```\n\nThe `docker-credential-tee` trick works with both `crane` and `docker`:\n\n```bash\n$ crane manifest gcr.io/google-containers/pause > /dev/null\n{\"ServerURL\":\"\",\"Username\":\"_dcgcr_1_5_0_token\",\"Secret\":\"<redacted>\"}\n\n$ docker pull gcr.io/google-containers/pause\nUsing default tag: latest\n{\"ServerURL\":\"\",\"Username\":\"_dcgcr_1_5_0_token\",\"Secret\":\"<redacted>\"}\nlatest: Pulling from google-containers/pause\na3ed95caeb02: Pull complete\n4964c72cd024: Pull complete\nDigest: sha256:a78c2d6208eff9b672de43f880093100050983047b7b0afe0217d3656e1b0d5f\nStatus: Downloaded newer image for gcr.io/google-containers/pause:latest\ngcr.io/google-containers/pause:latest\n```\n\n## The Registry\n\nThere are two methods for authenticating against a registry:\n[token](https://docs.docker.com/registry/spec/auth/token/) and\n[oauth2](https://docs.docker.com/registry/spec/auth/oauth/).\n\nBoth methods are used to acquire an opaque `Bearer` token (or\n[RegistryToken](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/types/authconfig.go#L21))\nto use in the `Authorization` header. The registry will return a `401\nUnauthorized` during the [version\ncheck](https://github.com/opencontainers/distribution-spec/blob/2c3975d1f03b67c9a0203199038adea0413f0573/spec.md#api-version-check)\n(or during normal operations) with\n[Www-Authenticate](https://tools.ietf.org/html/rfc7235#section-4.1) challenge\nindicating how to proceed.\n\n### Token\n\nIf we get back an `AuthConfig` containing a [`Username/Password`](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/types/authconfig.go#L5-L6)\nor\n[`Auth`](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/types/authconfig.go#L7),\nwe'll use the token method for authentication:\n\n![basic](../../images/credhelper-basic.svg)\n\n### OAuth 2\n\nIf we get back an `AuthConfig` containing an [`IdentityToken`](https://github.com/docker/cli/blob/ba63a92655c0bea4857b8d6cc4991498858b3c60/cli/config/types/authconfig.go#L18)\nwe'll use the oauth2 method for authentication:\n\n![oauth](../../images/credhelper-oauth.svg)\n\nThis happens when a credential helper returns a response with the\n[`Username`](https://github.com/docker/docker-credential-helpers/blob/f78081d1f7fef6ad74ad6b79368de6348386e591/credentials/credentials.go#L16)\nset to `<token>` (no, that's not a placeholder, the literal string `\"<token>\"`).\nIt is unclear why: [moby/moby#36926](https://github.com/moby/moby/issues/36926).\n\nWe only support the oauth2 `grant_type` for `refresh_token` ([#629](https://github.com/google/go-containerregistry/issues/629)),\nsince it's impossible to determine from the registry response whether we should\nuse oauth, and the token method for authentication is widely implemented by\nregistries.\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/anon.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\n// anonymous implements Authenticator for anonymous authentication.\ntype anonymous struct{}\n\n// Authorization implements Authenticator.\nfunc (a *anonymous) Authorization() (*AuthConfig, error) {\n\treturn &AuthConfig{}, nil\n}\n\n// Anonymous is a singleton Authenticator for providing anonymous auth.\nvar Anonymous Authenticator = &anonymous{}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/auth.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\n// auth is an Authenticator that simply returns the wrapped AuthConfig.\ntype auth struct {\n\tconfig AuthConfig\n}\n\n// FromConfig returns an Authenticator that just returns the given AuthConfig.\nfunc FromConfig(cfg AuthConfig) Authenticator {\n\treturn &auth{cfg}\n}\n\n// Authorization implements Authenticator.\nfunc (a *auth) Authorization() (*AuthConfig, error) {\n\treturn &a.config, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/authn.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Authenticator is used to authenticate Docker transports.\ntype Authenticator interface {\n\t// Authorization returns the value to use in an http transport's Authorization header.\n\tAuthorization() (*AuthConfig, error)\n}\n\n// ContextAuthenticator is like Authenticator, but allows for context to be passed in.\ntype ContextAuthenticator interface {\n\t// Authorization returns the value to use in an http transport's Authorization header.\n\tAuthorizationContext(context.Context) (*AuthConfig, error)\n}\n\n// Authorization calls AuthorizationContext with ctx if the given [Authenticator] implements [ContextAuthenticator],\n// otherwise it calls Resolve with the given [Resource].\nfunc Authorization(ctx context.Context, authn Authenticator) (*AuthConfig, error) {\n\tif actx, ok := authn.(ContextAuthenticator); ok {\n\t\treturn actx.AuthorizationContext(ctx)\n\t}\n\n\treturn authn.Authorization()\n}\n\n// AuthConfig contains authorization information for connecting to a Registry\n// Inlined what we use from github.com/docker/cli/cli/config/types\ntype AuthConfig struct {\n\tUsername string `json:\"username,omitempty\"`\n\tPassword string `json:\"password,omitempty\"`\n\tAuth     string `json:\"auth,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// This is effectively a copy of the type AuthConfig. This simplifies\n// JSON unmarshalling since AuthConfig methods are not inherited\ntype authConfig AuthConfig\n\n// UnmarshalJSON implements json.Unmarshaler\nfunc (a *AuthConfig) UnmarshalJSON(data []byte) error {\n\tvar shadow authConfig\n\terr := json.Unmarshal(data, &shadow)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*a = (AuthConfig)(shadow)\n\n\tif len(shadow.Auth) != 0 {\n\t\tvar derr error\n\t\ta.Username, a.Password, derr = decodeDockerConfigFieldAuth(shadow.Auth)\n\t\tif derr != nil {\n\t\t\terr = fmt.Errorf(\"unable to decode auth field: %w\", derr)\n\t\t}\n\t} else if len(a.Username) != 0 && len(a.Password) != 0 {\n\t\ta.Auth = encodeDockerConfigFieldAuth(shadow.Username, shadow.Password)\n\t}\n\n\treturn err\n}\n\n// MarshalJSON implements json.Marshaler\nfunc (a AuthConfig) MarshalJSON() ([]byte, error) {\n\tshadow := (authConfig)(a)\n\tshadow.Auth = encodeDockerConfigFieldAuth(shadow.Username, shadow.Password)\n\treturn json.Marshal(shadow)\n}\n\n// decodeDockerConfigFieldAuth deserializes the \"auth\" field from dockercfg into a\n// username and a password. The format of the auth field is base64(<username>:<password>).\n//\n// From https://github.com/kubernetes/kubernetes/blob/75e49ec824b183288e1dbaccfd7dbe77d89db381/pkg/credentialprovider/config.go\n// Copyright 2014 The Kubernetes Authors.\n// SPDX-License-Identifier: Apache-2.0\nfunc decodeDockerConfigFieldAuth(field string) (username, password string, err error) {\n\tvar decoded []byte\n\t// StdEncoding can only decode padded string\n\t// RawStdEncoding can only decode unpadded string\n\tif strings.HasSuffix(strings.TrimSpace(field), \"=\") {\n\t\t// decode padded data\n\t\tdecoded, err = base64.StdEncoding.DecodeString(field)\n\t} else {\n\t\t// decode unpadded data\n\t\tdecoded, err = base64.RawStdEncoding.DecodeString(field)\n\t}\n\n\tif err != nil {\n\t\treturn\n\t}\n\n\tparts := strings.SplitN(string(decoded), \":\", 2)\n\tif len(parts) != 2 {\n\t\terr = fmt.Errorf(\"must be formatted as base64(username:password)\")\n\t\treturn\n\t}\n\n\tusername = parts[0]\n\tpassword = parts[1]\n\n\treturn\n}\n\nfunc encodeDockerConfigFieldAuth(username, password string) string {\n\treturn base64.StdEncoding.EncodeToString([]byte(username + \":\" + password))\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/basic.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\n// Basic implements Authenticator for basic authentication.\ntype Basic struct {\n\tUsername string\n\tPassword string\n}\n\n// Authorization implements Authenticator.\nfunc (b *Basic) Authorization() (*AuthConfig, error) {\n\treturn &AuthConfig{\n\t\tUsername: b.Username,\n\t\tPassword: b.Password,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\n// Bearer implements Authenticator for bearer authentication.\ntype Bearer struct {\n\tToken string `json:\"token\"`\n}\n\n// Authorization implements Authenticator.\nfunc (b *Bearer) Authorization() (*AuthConfig, error) {\n\treturn &AuthConfig{\n\t\tRegistryToken: b.Token,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn defines different methods of authentication for\n// talking to a container registry.\npackage authn\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/docker/cli/cli/config\"\n\t\"github.com/docker/cli/cli/config/configfile\"\n\t\"github.com/docker/cli/cli/config/types\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/mitchellh/go-homedir\"\n)\n\n// Resource represents a registry or repository that can be authenticated against.\ntype Resource interface {\n\t// String returns the full string representation of the target, e.g.\n\t// gcr.io/my-project or just gcr.io.\n\tString() string\n\n\t// RegistryStr returns just the registry portion of the target, e.g. for\n\t// gcr.io/my-project, this should just return gcr.io. This is needed to\n\t// pull out an appropriate hostname.\n\tRegistryStr() string\n}\n\n// Keychain is an interface for resolving an image reference to a credential.\ntype Keychain interface {\n\t// Resolve looks up the most appropriate credential for the specified target.\n\tResolve(Resource) (Authenticator, error)\n}\n\n// ContextKeychain is like Keychain, but allows for context to be passed in.\ntype ContextKeychain interface {\n\tResolveContext(context.Context, Resource) (Authenticator, error)\n}\n\n// defaultKeychain implements Keychain with the semantics of the standard Docker\n// credential keychain.\ntype defaultKeychain struct {\n\tmu sync.Mutex\n}\n\nvar (\n\t// DefaultKeychain implements Keychain by interpreting the docker config file.\n\tDefaultKeychain = &defaultKeychain{}\n)\n\nconst (\n\t// DefaultAuthKey is the key used for dockerhub in config files, which\n\t// is hardcoded for historical reasons.\n\tDefaultAuthKey = \"https://\" + name.DefaultRegistry + \"/v1/\"\n)\n\n// Resolve calls ResolveContext with ctx if the given [Keychain] implements [ContextKeychain],\n// otherwise it calls Resolve with the given [Resource].\nfunc Resolve(ctx context.Context, keychain Keychain, target Resource) (Authenticator, error) {\n\tif rctx, ok := keychain.(ContextKeychain); ok {\n\t\treturn rctx.ResolveContext(ctx, target)\n\t}\n\n\treturn keychain.Resolve(target)\n}\n\n// ResolveContext implements ContextKeychain.\nfunc (dk *defaultKeychain) Resolve(target Resource) (Authenticator, error) {\n\treturn dk.ResolveContext(context.Background(), target)\n}\n\n// Resolve implements Keychain.\nfunc (dk *defaultKeychain) ResolveContext(_ context.Context, target Resource) (Authenticator, error) {\n\tdk.mu.Lock()\n\tdefer dk.mu.Unlock()\n\n\t// Podman users may have their container registry auth configured in a\n\t// different location, that Docker packages aren't aware of.\n\t// If the Docker config file isn't found, we'll fallback to look where\n\t// Podman configures it, and parse that as a Docker auth config instead.\n\n\t// First, check $HOME/.docker/config.json\n\tfoundDockerConfig := false\n\thome, err := homedir.Dir()\n\tif err == nil {\n\t\tfoundDockerConfig = fileExists(filepath.Join(home, \".docker/config.json\"))\n\t}\n\t// If $HOME/.docker/config.json isn't found, check $DOCKER_CONFIG (if set)\n\tif !foundDockerConfig && os.Getenv(\"DOCKER_CONFIG\") != \"\" {\n\t\tfoundDockerConfig = fileExists(filepath.Join(os.Getenv(\"DOCKER_CONFIG\"), \"config.json\"))\n\t}\n\t// If either of those locations are found, load it using Docker's\n\t// config.Load, which may fail if the config can't be parsed.\n\t//\n\t// If neither was found, look for Podman's auth at\n\t// $REGISTRY_AUTH_FILE or $XDG_RUNTIME_DIR/containers/auth.json\n\t// and attempt to load it as a Docker config.\n\t//\n\t// If neither are found, fallback to Anonymous.\n\tvar cf *configfile.ConfigFile\n\tif foundDockerConfig {\n\t\tcf, err = config.Load(os.Getenv(\"DOCKER_CONFIG\"))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else if path := filepath.Clean(os.Getenv(\"REGISTRY_AUTH_FILE\")); fileExists(path) {\n\t\tf, err := os.Open(path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefer f.Close()\n\t\tcf, err = config.LoadFromReader(f)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else if path := filepath.Clean(filepath.Join(os.Getenv(\"XDG_RUNTIME_DIR\"), \"containers/auth.json\")); fileExists(path) {\n\t\tf, err := os.Open(path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefer f.Close()\n\t\tcf, err = config.LoadFromReader(f)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\treturn Anonymous, nil\n\t}\n\n\t// See:\n\t// https://github.com/google/ko/issues/90\n\t// https://github.com/moby/moby/blob/fc01c2b481097a6057bec3cd1ab2d7b4488c50c4/registry/config.go#L397-L404\n\tvar cfg, empty types.AuthConfig\n\tfor _, key := range []string{\n\t\ttarget.String(),\n\t\ttarget.RegistryStr(),\n\t} {\n\t\tif key == name.DefaultRegistry {\n\t\t\tkey = DefaultAuthKey\n\t\t}\n\n\t\tcfg, err = cf.GetAuthConfig(key)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// cf.GetAuthConfig automatically sets the ServerAddress attribute. Since\n\t\t// we don't make use of it, clear the value for a proper \"is-empty\" test.\n\t\t// See: https://github.com/google/go-containerregistry/issues/1510\n\t\tcfg.ServerAddress = \"\"\n\t\tif cfg != empty {\n\t\t\tbreak\n\t\t}\n\t}\n\tif cfg == empty {\n\t\treturn Anonymous, nil\n\t}\n\n\treturn FromConfig(AuthConfig{\n\t\tUsername:      cfg.Username,\n\t\tPassword:      cfg.Password,\n\t\tAuth:          cfg.Auth,\n\t\tIdentityToken: cfg.IdentityToken,\n\t\tRegistryToken: cfg.RegistryToken,\n\t}), nil\n}\n\n// fileExists returns true if the given path exists and is not a directory.\nfunc fileExists(path string) bool {\n\tfi, err := os.Stat(path)\n\treturn err == nil && !fi.IsDir()\n}\n\n// Helper is a subset of the Docker credential helper credentials.Helper\n// interface used by NewKeychainFromHelper.\n//\n// See:\n// https://pkg.go.dev/github.com/docker/docker-credential-helpers/credentials#Helper\ntype Helper interface {\n\tGet(serverURL string) (string, string, error)\n}\n\n// NewKeychainFromHelper returns a Keychain based on a Docker credential helper\n// implementation that can Get username and password credentials for a given\n// server URL.\nfunc NewKeychainFromHelper(h Helper) Keychain { return wrapper{h} }\n\ntype wrapper struct{ h Helper }\n\nfunc (w wrapper) Resolve(r Resource) (Authenticator, error) {\n\treturn w.ResolveContext(context.Background(), r)\n}\n\nfunc (w wrapper) ResolveContext(_ context.Context, r Resource) (Authenticator, error) {\n\tu, p, err := w.h.Get(r.RegistryStr())\n\tif err != nil {\n\t\treturn Anonymous, nil\n\t}\n\t// If the secret being stored is an identity token, the Username should be set to <token>\n\t// ref: https://docs.docker.com/engine/reference/commandline/login/#credential-helper-protocol\n\tif u == \"<token>\" {\n\t\treturn FromConfig(AuthConfig{Username: u, IdentityToken: p}), nil\n\t}\n\treturn FromConfig(AuthConfig{Username: u, Password: p}), nil\n}\n\nfunc RefreshingKeychain(inner Keychain, duration time.Duration) Keychain {\n\treturn &refreshingKeychain{\n\t\tkeychain: inner,\n\t\tduration: duration,\n\t}\n}\n\ntype refreshingKeychain struct {\n\tkeychain Keychain\n\tduration time.Duration\n\tclock    func() time.Time\n}\n\nfunc (r *refreshingKeychain) Resolve(target Resource) (Authenticator, error) {\n\treturn r.ResolveContext(context.Background(), target)\n}\n\nfunc (r *refreshingKeychain) ResolveContext(ctx context.Context, target Resource) (Authenticator, error) {\n\tlast := time.Now()\n\tauth, err := Resolve(ctx, r.keychain, target)\n\tif err != nil || auth == Anonymous {\n\t\treturn auth, err\n\t}\n\treturn &refreshing{\n\t\ttarget:   target,\n\t\tkeychain: r.keychain,\n\t\tlast:     last,\n\t\tcached:   auth,\n\t\tduration: r.duration,\n\t\tclock:    r.clock,\n\t}, nil\n}\n\ntype refreshing struct {\n\tsync.Mutex\n\ttarget   Resource\n\tkeychain Keychain\n\n\tduration time.Duration\n\n\tlast   time.Time\n\tcached Authenticator\n\n\t// for testing\n\tclock func() time.Time\n}\n\nfunc (r *refreshing) Authorization() (*AuthConfig, error) {\n\treturn r.AuthorizationContext(context.Background())\n}\n\nfunc (r *refreshing) AuthorizationContext(ctx context.Context) (*AuthConfig, error) {\n\tr.Lock()\n\tdefer r.Unlock()\n\tif r.cached == nil || r.expired() {\n\t\tr.last = r.now()\n\t\tauth, err := Resolve(ctx, r.keychain, r.target)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tr.cached = auth\n\t}\n\treturn Authorization(ctx, r.cached)\n}\n\nfunc (r *refreshing) now() time.Time {\n\tif r.clock == nil {\n\t\treturn time.Now()\n\t}\n\treturn r.clock()\n}\n\nfunc (r *refreshing) expired() bool {\n\treturn r.now().Sub(r.last) > r.duration\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 authn\n\nimport \"context\"\n\ntype multiKeychain struct {\n\tkeychains []Keychain\n}\n\n// Assert that our multi-keychain implements Keychain.\nvar _ (Keychain) = (*multiKeychain)(nil)\n\n// NewMultiKeychain composes a list of keychains into one new keychain.\nfunc NewMultiKeychain(kcs ...Keychain) Keychain {\n\treturn &multiKeychain{keychains: kcs}\n}\n\n// Resolve implements Keychain.\nfunc (mk *multiKeychain) Resolve(target Resource) (Authenticator, error) {\n\treturn mk.ResolveContext(context.Background(), target)\n}\n\nfunc (mk *multiKeychain) ResolveContext(ctx context.Context, target Resource) (Authenticator, error) {\n\tfor _, kc := range mk.keychains {\n\t\tauth, err := Resolve(ctx, kc, target)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif auth != Anonymous {\n\t\t\treturn auth, nil\n\t\t}\n\t}\n\treturn Anonymous, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/compression/compression.go",
    "content": "// Copyright 2022 Google LLC All Rights Reserved.\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 compression abstracts over gzip and zstd.\npackage compression\n\n// Compression is an enumeration of the supported compression algorithms\ntype Compression string\n\n// The collection of known MediaType values.\nconst (\n\tNone Compression = \"none\"\n\tGZip Compression = \"gzip\"\n\tZStd Compression = \"zstd\"\n)\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/append.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\tcomp \"github.com/google/go-containerregistry/internal/compression\"\n\t\"github.com/google/go-containerregistry/internal/windows\"\n\t\"github.com/google/go-containerregistry/pkg/compression\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/mutate\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nfunc isWindows(img v1.Image) (bool, error) {\n\tcfg, err := img.ConfigFile()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn cfg != nil && cfg.OS == \"windows\", nil\n}\n\n// Append reads a layer from path and appends it the the v1.Image base.\n//\n// If the base image is a Windows base image (i.e., its config.OS is\n// \"windows\"), the contents of the tarballs will be modified to be suitable for\n// a Windows container image.`,\nfunc Append(base v1.Image, paths ...string) (v1.Image, error) {\n\tif base == nil {\n\t\treturn nil, fmt.Errorf(\"invalid argument: base\")\n\t}\n\n\twin, err := isWindows(base)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting base image: %w\", err)\n\t}\n\n\tbaseMediaType, err := base.MediaType()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting base image media type: %w\", err)\n\t}\n\n\tlayerType := types.DockerLayer\n\tif baseMediaType == types.OCIManifestSchema1 {\n\t\tlayerType = types.OCILayer\n\t}\n\n\tlayers := make([]v1.Layer, 0, len(paths))\n\tfor _, path := range paths {\n\t\tlayer, err := getLayer(path, layerType)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"reading layer %q: %w\", path, err)\n\t\t}\n\n\t\tif win {\n\t\t\tlayer, err = windows.Windows(layer)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"converting %q for Windows: %w\", path, err)\n\t\t\t}\n\t\t}\n\n\t\tlayers = append(layers, layer)\n\t}\n\n\treturn mutate.AppendLayers(base, layers...)\n}\n\nfunc getLayer(path string, layerType types.MediaType) (v1.Layer, error) {\n\tf, err := streamFile(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif f != nil {\n\t\treturn stream.NewLayer(f, stream.WithMediaType(layerType)), nil\n\t}\n\n\t// This is dumb but the tarball package assumes things about mediaTypes that aren't true\n\t// and doesn't have enough context to know what the right default is.\n\tf, err = os.Open(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer f.Close()\n\tz, _, err := comp.PeekCompression(f)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif z == compression.ZStd {\n\t\tlayerType = types.OCILayerZStd\n\t}\n\n\treturn tarball.LayerFromFile(path, tarball.WithMediaType(layerType))\n}\n\n// If we're dealing with a named pipe, trying to open it multiple times will\n// fail, so we need to do a streaming upload.\n//\n// returns nil, nil for non-streaming files\nfunc streamFile(path string) (*os.File, error) {\n\tif path == \"-\" {\n\t\treturn os.Stdin, nil\n\t}\n\tfi, err := os.Stat(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !fi.Mode().IsRegular() {\n\t\treturn os.Open(path)\n\t}\n\n\treturn nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/catalog.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"context\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\n// Catalog returns the repositories in a registry's catalog.\nfunc Catalog(src string, opt ...Option) (res []string, err error) {\n\to := makeOptions(opt...)\n\treg, err := name.NewRegistry(src, o.Name...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// This context gets overridden by remote.WithContext, which is set by\n\t// crane.WithContext.\n\treturn remote.Catalog(context.Background(), reg, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/config.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\n// Config returns the config file for the remote image ref.\nfunc Config(ref string, opt ...Option) ([]byte, error) {\n\ti, _, err := getImage(ref, opt...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.RawConfigFile()\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/copy.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\n// ErrRefusingToClobberExistingTag is returned when NoClobber is true and the\n// tag already exists in the target registry/repo.\nvar ErrRefusingToClobberExistingTag = errors.New(\"refusing to clobber existing tag\")\n\n// Copy copies a remote image or index from src to dst.\nfunc Copy(src, dst string, opt ...Option) error {\n\to := makeOptions(opt...)\n\tsrcRef, err := name.ParseReference(src, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference %q: %w\", src, err)\n\t}\n\n\tdstRef, err := name.ParseReference(dst, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference for %q: %w\", dst, err)\n\t}\n\n\tpuller, err := remote.NewPuller(o.Remote...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif tag, ok := dstRef.(name.Tag); ok {\n\t\tif o.noclobber {\n\t\t\tlogs.Progress.Printf(\"Checking existing tag %v\", tag)\n\t\t\thead, err := puller.Head(o.ctx, tag)\n\t\t\tvar terr *transport.Error\n\t\t\tif errors.As(err, &terr) {\n\t\t\t\tif terr.StatusCode != http.StatusNotFound && terr.StatusCode != http.StatusForbidden {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else if err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif head != nil {\n\t\t\t\treturn fmt.Errorf(\"%w %s@%s\", ErrRefusingToClobberExistingTag, tag, head.Digest)\n\t\t\t}\n\t\t}\n\t}\n\n\tpusher, err := remote.NewPusher(o.Remote...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlogs.Progress.Printf(\"Copying from %v to %v\", srcRef, dstRef)\n\tdesc, err := puller.Get(o.ctx, srcRef)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"fetching %q: %w\", src, err)\n\t}\n\n\tif o.Platform == nil {\n\t\treturn pusher.Push(o.ctx, dstRef, desc)\n\t}\n\n\t// If platform is explicitly set, don't copy the whole index, just the appropriate image.\n\timg, err := desc.Image()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn pusher.Push(o.ctx, dstRef, img)\n}\n\n// CopyRepository copies every tag from src to dst.\nfunc CopyRepository(src, dst string, opt ...Option) error {\n\to := makeOptions(opt...)\n\n\tsrcRepo, err := name.NewRepository(src, o.Name...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstRepo, err := name.NewRepository(dst, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference for %q: %w\", dst, err)\n\t}\n\n\tpuller, err := remote.NewPuller(o.Remote...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tignoredTags := map[string]struct{}{}\n\tif o.noclobber {\n\t\t// TODO: It would be good to propagate noclobber down into remote so we can use Etags.\n\t\thave, err := puller.List(o.ctx, dstRepo)\n\t\tif err != nil {\n\t\t\tvar terr *transport.Error\n\t\t\tif errors.As(err, &terr) {\n\t\t\t\t// Some registries create repository on first push, so listing tags will fail.\n\t\t\t\t// If we see 404 or 403, assume we failed because the repository hasn't been created yet.\n\t\t\t\tif terr.StatusCode != http.StatusNotFound && terr.StatusCode != http.StatusForbidden {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tfor _, tag := range have {\n\t\t\tignoredTags[tag] = struct{}{}\n\t\t}\n\t}\n\n\tpusher, err := remote.NewPusher(o.Remote...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlister, err := puller.Lister(o.ctx, srcRepo)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tg, ctx := errgroup.WithContext(o.ctx)\n\tg.SetLimit(o.jobs)\n\n\tfor lister.HasNext() {\n\t\ttags, err := lister.Next(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor _, tag := range tags.Tags {\n\t\t\ttag := tag\n\n\t\t\tif o.noclobber {\n\t\t\t\tif _, ok := ignoredTags[tag]; ok {\n\t\t\t\t\tlogs.Progress.Printf(\"Skipping %s due to no-clobber\", tag)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tg.Go(func() error {\n\t\t\t\tsrcTag, err := name.ParseReference(src+\":\"+tag, o.Name...)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to parse tag: %w\", err)\n\t\t\t\t}\n\t\t\t\tdstTag, err := name.ParseReference(dst+\":\"+tag, o.Name...)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to parse tag: %w\", err)\n\t\t\t\t}\n\n\t\t\t\tlogs.Progress.Printf(\"Fetching %s\", srcTag)\n\t\t\t\tdesc, err := puller.Get(ctx, srcTag)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tlogs.Progress.Printf(\"Pushing %s\", dstTag)\n\t\t\t\treturn pusher.Push(ctx, dstTag, desc)\n\t\t\t})\n\t\t}\n\t}\n\n\treturn g.Wait()\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/delete.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\n// Delete deletes the remote reference at src.\nfunc Delete(src string, opt ...Option) error {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(src, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference %q: %w\", src, err)\n\t}\n\n\treturn remote.Delete(ref, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/digest.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport \"github.com/google/go-containerregistry/pkg/logs\"\n\n// Digest returns the sha256 hash of the remote image at ref.\nfunc Digest(ref string, opt ...Option) (string, error) {\n\to := makeOptions(opt...)\n\tif o.Platform != nil {\n\t\tdesc, err := getManifest(ref, opt...)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif !desc.MediaType.IsIndex() {\n\t\t\treturn desc.Digest.String(), nil\n\t\t}\n\n\t\t// TODO: does not work for indexes which contain schema v1 manifests\n\t\timg, err := desc.Image()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tdigest, err := img.Digest()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn digest.String(), nil\n\t}\n\tdesc, err := Head(ref, opt...)\n\tif err != nil {\n\t\tlogs.Warn.Printf(\"HEAD request failed, falling back on GET: %v\", err)\n\t\trdesc, err := getManifest(ref, opt...)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn rdesc.Digest.String(), nil\n\t}\n\treturn desc.Digest.String(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/doc.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 crane holds libraries used to implement the crane CLI.\npackage crane\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/export.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"io\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/mutate\"\n)\n\n// Export writes the filesystem contents (as a tarball) of img to w.\n// If img has a single layer, just write the (uncompressed) contents to w so\n// that this \"just works\" for images that just wrap a single blob.\nfunc Export(img v1.Image, w io.Writer) error {\n\tlayers, err := img.Layers()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(layers) == 1 {\n\t\t// If it's a single layer...\n\t\tl := layers[0]\n\t\tmt, err := l.MediaType()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !mt.IsLayer() {\n\t\t\t// ...and isn't an OCI mediaType, we don't have to flatten it.\n\t\t\t// This lets export work for single layer, non-tarball images.\n\t\t\trc, err := l.Uncompressed()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t_, err = io.Copy(w, rc)\n\t\t\treturn err\n\t\t}\n\t}\n\tfs := mutate.Extract(img)\n\t_, err = io.Copy(w, fs)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/filemap.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"io\"\n\t\"sort\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/empty\"\n\t\"github.com/google/go-containerregistry/pkg/v1/mutate\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\n// Layer creates a layer from a single file map. These layers are reproducible and consistent.\n// A filemap is a path -> file content map representing a file system.\nfunc Layer(filemap map[string][]byte) (v1.Layer, error) {\n\tb := &bytes.Buffer{}\n\tw := tar.NewWriter(b)\n\n\tfn := make([]string, 0, len(filemap))\n\tfor f := range filemap {\n\t\tfn = append(fn, f)\n\t}\n\tsort.Strings(fn)\n\n\tfor _, f := range fn {\n\t\tc := filemap[f]\n\t\tif err := w.WriteHeader(&tar.Header{\n\t\t\tName: f,\n\t\t\tSize: int64(len(c)),\n\t\t}); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif _, err := w.Write(c); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif err := w.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Return a new copy of the buffer each time it's opened.\n\treturn tarball.LayerFromOpener(func() (io.ReadCloser, error) {\n\t\treturn io.NopCloser(bytes.NewBuffer(b.Bytes())), nil\n\t})\n}\n\n// Image creates a image with the given filemaps as its contents. These images are reproducible and consistent.\n// A filemap is a path -> file content map representing a file system.\nfunc Image(filemap map[string][]byte) (v1.Image, error) {\n\ty, err := Layer(filemap)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn mutate.AppendLayers(empty.Image, y)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/get.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\nfunc getImage(r string, opt ...Option) (v1.Image, name.Reference, error) {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(r, o.Name...)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"parsing reference %q: %w\", r, err)\n\t}\n\timg, err := remote.Image(ref, o.Remote...)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"reading image %q: %w\", ref, err)\n\t}\n\treturn img, ref, nil\n}\n\nfunc getManifest(r string, opt ...Option) (*remote.Descriptor, error) {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(r, o.Name...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"parsing reference %q: %w\", r, err)\n\t}\n\treturn remote.Get(ref, o.Remote...)\n}\n\n// Get calls remote.Get and returns an uninterpreted response.\nfunc Get(r string, opt ...Option) (*remote.Descriptor, error) {\n\treturn getManifest(r, opt...)\n}\n\n// Head performs a HEAD request for a manifest and returns a content descriptor\n// based on the registry's response.\nfunc Head(r string, opt ...Option) (*v1.Descriptor, error) {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(r, o.Name...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn remote.Head(ref, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/list.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\n// ListTags returns the tags in repository src.\nfunc ListTags(src string, opt ...Option) ([]string, error) {\n\to := makeOptions(opt...)\n\trepo, err := name.NewRepository(src, o.Name...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"parsing repo %q: %w\", src, err)\n\t}\n\n\treturn remote.List(repo, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\n// Manifest returns the manifest for the remote image or index ref.\nfunc Manifest(ref string, opt ...Option) ([]byte, error) {\n\tdesc, err := getManifest(ref, opt...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\to := makeOptions(opt...)\n\tif o.Platform != nil {\n\t\timg, err := desc.Image()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn img.RawManifest()\n\t}\n\treturn desc.Manifest, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/options.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"net/http\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\n// Options hold the options that crane uses when calling other packages.\ntype Options struct {\n\tName      []name.Option\n\tRemote    []remote.Option\n\tPlatform  *v1.Platform\n\tKeychain  authn.Keychain\n\tTransport http.RoundTripper\n\n\tauth      authn.Authenticator\n\tinsecure  bool\n\tjobs      int\n\tnoclobber bool\n\tctx       context.Context\n}\n\n// GetOptions exposes the underlying []remote.Option, []name.Option, and\n// platform, based on the passed Option. Generally, you shouldn't need to use\n// this unless you've painted yourself into a dependency corner as we have\n// with the crane and gcrane cli packages.\nfunc GetOptions(opts ...Option) Options {\n\treturn makeOptions(opts...)\n}\n\nfunc makeOptions(opts ...Option) Options {\n\topt := Options{\n\t\tRemote: []remote.Option{\n\t\t\tremote.WithAuthFromKeychain(authn.DefaultKeychain),\n\t\t},\n\t\tKeychain: authn.DefaultKeychain,\n\t\tjobs:     4,\n\t\tctx:      context.Background(),\n\t}\n\n\tfor _, o := range opts {\n\t\to(&opt)\n\t}\n\n\t// Allow for untrusted certificates if the user\n\t// passed Insecure but no custom transport.\n\tif opt.insecure && opt.Transport == nil {\n\t\ttransport := remote.DefaultTransport.(*http.Transport).Clone()\n\t\ttransport.TLSClientConfig = &tls.Config{\n\t\t\tInsecureSkipVerify: true, //nolint: gosec\n\t\t}\n\n\t\tWithTransport(transport)(&opt)\n\t} else if opt.Transport == nil {\n\t\topt.Transport = remote.DefaultTransport\n\t}\n\n\treturn opt\n}\n\n// Option is a functional option for crane.\ntype Option func(*Options)\n\n// WithTransport is a functional option for overriding the default transport\n// for remote operations. Setting a transport will override the Insecure option's\n// configuration allowing for image registries to use untrusted certificates.\nfunc WithTransport(t http.RoundTripper) Option {\n\treturn func(o *Options) {\n\t\to.Remote = append(o.Remote, remote.WithTransport(t))\n\t\to.Transport = t\n\t}\n}\n\n// Insecure is an Option that allows image references to be fetched without TLS.\n// This will also allow for untrusted (e.g. self-signed) certificates in cases where\n// the default transport is used (i.e. when WithTransport is not used).\nfunc Insecure(o *Options) {\n\to.Name = append(o.Name, name.Insecure)\n\to.insecure = true\n}\n\n// WithPlatform is an Option to specify the platform.\nfunc WithPlatform(platform *v1.Platform) Option {\n\treturn func(o *Options) {\n\t\tif platform != nil {\n\t\t\to.Remote = append(o.Remote, remote.WithPlatform(*platform))\n\t\t}\n\t\to.Platform = platform\n\t}\n}\n\n// WithAuthFromKeychain is a functional option for overriding the default\n// authenticator for remote operations, using an authn.Keychain to find\n// credentials.\n//\n// By default, crane will use authn.DefaultKeychain.\nfunc WithAuthFromKeychain(keys authn.Keychain) Option {\n\treturn func(o *Options) {\n\t\t// Replace the default keychain at position 0.\n\t\to.Remote[0] = remote.WithAuthFromKeychain(keys)\n\t\to.Keychain = keys\n\t}\n}\n\n// WithAuth is a functional option for overriding the default authenticator\n// for remote operations.\n//\n// By default, crane will use authn.DefaultKeychain.\nfunc WithAuth(auth authn.Authenticator) Option {\n\treturn func(o *Options) {\n\t\t// Replace the default keychain at position 0.\n\t\to.Remote[0] = remote.WithAuth(auth)\n\t\to.auth = auth\n\t}\n}\n\n// WithUserAgent adds the given string to the User-Agent header for any HTTP\n// requests.\nfunc WithUserAgent(ua string) Option {\n\treturn func(o *Options) {\n\t\to.Remote = append(o.Remote, remote.WithUserAgent(ua))\n\t}\n}\n\n// WithNondistributable is an option that allows pushing non-distributable\n// layers.\nfunc WithNondistributable() Option {\n\treturn func(o *Options) {\n\t\to.Remote = append(o.Remote, remote.WithNondistributable)\n\t}\n}\n\n// WithContext is a functional option for setting the context.\nfunc WithContext(ctx context.Context) Option {\n\treturn func(o *Options) {\n\t\to.ctx = ctx\n\t\to.Remote = append(o.Remote, remote.WithContext(ctx))\n\t}\n}\n\n// WithJobs sets the number of concurrent jobs to run.\n//\n// The default number of jobs is GOMAXPROCS.\nfunc WithJobs(jobs int) Option {\n\treturn func(o *Options) {\n\t\tif jobs > 0 {\n\t\t\to.jobs = jobs\n\t\t}\n\t\to.Remote = append(o.Remote, remote.WithJobs(o.jobs))\n\t}\n}\n\n// WithNoClobber modifies behavior to avoid overwriting existing tags, if possible.\nfunc WithNoClobber(noclobber bool) Option {\n\treturn func(o *Options) {\n\t\to.noclobber = noclobber\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/pull.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\tlegacy \"github.com/google/go-containerregistry/pkg/legacy/tarball\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/empty\"\n\t\"github.com/google/go-containerregistry/pkg/v1/layout\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\n// Tag applied to images that were pulled by digest. This denotes that the\n// image was (probably) never tagged with this, but lets us avoid applying the\n// \":latest\" tag which might be misleading.\nconst iWasADigestTag = \"i-was-a-digest\"\n\n// Pull returns a v1.Image of the remote image src.\nfunc Pull(src string, opt ...Option) (v1.Image, error) {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(src, o.Name...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"parsing reference %q: %w\", src, err)\n\t}\n\n\treturn remote.Image(ref, o.Remote...)\n}\n\n// Save writes the v1.Image img as a tarball at path with tag src.\nfunc Save(img v1.Image, src, path string) error {\n\timgMap := map[string]v1.Image{src: img}\n\treturn MultiSave(imgMap, path)\n}\n\n// MultiSave writes collection of v1.Image img with tag as a tarball.\nfunc MultiSave(imgMap map[string]v1.Image, path string, opt ...Option) error {\n\to := makeOptions(opt...)\n\ttagToImage := map[name.Tag]v1.Image{}\n\n\tfor src, img := range imgMap {\n\t\tref, err := name.ParseReference(src, o.Name...)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"parsing ref %q: %w\", src, err)\n\t\t}\n\n\t\t// WriteToFile wants a tag to write to the tarball, but we might have\n\t\t// been given a digest.\n\t\t// If the original ref was a tag, use that. Otherwise, if it was a\n\t\t// digest, tag the image with :i-was-a-digest instead.\n\t\ttag, ok := ref.(name.Tag)\n\t\tif !ok {\n\t\t\td, ok := ref.(name.Digest)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"ref wasn't a tag or digest\")\n\t\t\t}\n\t\t\ttag = d.Tag(iWasADigestTag)\n\t\t}\n\t\ttagToImage[tag] = img\n\t}\n\t// no progress channel (for now)\n\treturn tarball.MultiWriteToFile(path, tagToImage)\n}\n\n// PullLayer returns the given layer from a registry.\nfunc PullLayer(ref string, opt ...Option) (v1.Layer, error) {\n\to := makeOptions(opt...)\n\tdigest, err := name.NewDigest(ref, o.Name...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn remote.Layer(digest, o.Remote...)\n}\n\n// SaveLegacy writes the v1.Image img as a legacy tarball at path with tag src.\nfunc SaveLegacy(img v1.Image, src, path string) error {\n\timgMap := map[string]v1.Image{src: img}\n\treturn MultiSave(imgMap, path)\n}\n\n// MultiSaveLegacy writes collection of v1.Image img with tag as a legacy tarball.\nfunc MultiSaveLegacy(imgMap map[string]v1.Image, path string) error {\n\trefToImage := map[name.Reference]v1.Image{}\n\n\tfor src, img := range imgMap {\n\t\tref, err := name.ParseReference(src)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"parsing ref %q: %w\", src, err)\n\t\t}\n\t\trefToImage[ref] = img\n\t}\n\n\tw, err := os.Create(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer w.Close()\n\n\treturn legacy.MultiWrite(refToImage, w)\n}\n\n// SaveOCI writes the v1.Image img as an OCI Image Layout at path. If a layout\n// already exists at that path, it will add the image to the index.\nfunc SaveOCI(img v1.Image, path string) error {\n\timgMap := map[string]v1.Image{\"\": img}\n\treturn MultiSaveOCI(imgMap, path)\n}\n\n// MultiSaveOCI writes collection of v1.Image img as an OCI Image Layout at path. If a layout\n// already exists at that path, it will add the image to the index.\nfunc MultiSaveOCI(imgMap map[string]v1.Image, path string) error {\n\tp, err := layout.FromPath(path)\n\tif err != nil {\n\t\tp, err = layout.Write(path, empty.Index)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tfor _, img := range imgMap {\n\t\tif err = p.AppendImage(img); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/push.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\n// Load reads the tarball at path as a v1.Image.\nfunc Load(path string, opt ...Option) (v1.Image, error) {\n\treturn LoadTag(path, \"\", opt...)\n}\n\n// LoadTag reads a tag from the tarball at path as a v1.Image.\n// If tag is \"\", will attempt to read the tarball as a single image.\nfunc LoadTag(path, tag string, opt ...Option) (v1.Image, error) {\n\tif tag == \"\" {\n\t\treturn tarball.ImageFromPath(path, nil)\n\t}\n\n\to := makeOptions(opt...)\n\tt, err := name.NewTag(tag, o.Name...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"parsing tag %q: %w\", tag, err)\n\t}\n\treturn tarball.ImageFromPath(path, &t)\n}\n\n// Push pushes the v1.Image img to a registry as dst.\nfunc Push(img v1.Image, dst string, opt ...Option) error {\n\to := makeOptions(opt...)\n\ttag, err := name.ParseReference(dst, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference %q: %w\", dst, err)\n\t}\n\treturn remote.Write(tag, img, o.Remote...)\n}\n\n// Upload pushes the v1.Layer to a given repo.\nfunc Upload(layer v1.Layer, repo string, opt ...Option) error {\n\to := makeOptions(opt...)\n\tref, err := name.NewRepository(repo, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing repo %q: %w\", repo, err)\n\t}\n\n\treturn remote.WriteLayer(ref, layer, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/crane/tag.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 crane\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\n// Tag adds tag to the remote img.\nfunc Tag(img, tag string, opt ...Option) error {\n\to := makeOptions(opt...)\n\tref, err := name.ParseReference(img, o.Name...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parsing reference %q: %w\", img, err)\n\t}\n\tdesc, err := remote.Get(ref, o.Remote...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"fetching %q: %w\", img, err)\n\t}\n\n\tdst := ref.Context().Tag(tag)\n\n\treturn remote.Tag(dst, desc, o.Remote...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/legacy/config.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 legacy\n\nimport (\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\n// LayerConfigFile is the configuration file that holds the metadata describing\n// a v1 layer. See:\n// https://github.com/moby/moby/blob/master/image/spec/v1.md\ntype LayerConfigFile struct {\n\tv1.ConfigFile\n\n\tContainerConfig v1.Config `json:\"container_config,omitempty\"`\n\n\tID        string `json:\"id,omitempty\"`\n\tParent    string `json:\"parent,omitempty\"`\n\tThrowaway bool   `json:\"throwaway,omitempty\"`\n\tComment   string `json:\"comment,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/legacy/doc.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 legacy provides functionality to work with docker images in the v1\n// format.\n// See: https://github.com/moby/moby/blob/master/image/spec/v1.md\npackage legacy\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/README.md",
    "content": "# `legacy/tarball`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/legacy/tarball?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/legacy/tarball)\n\nThis package implements support for writing legacy tarballs, as described\n[here](https://github.com/moby/moby/blob/749d90e10f989802638ae542daf54257f3bf71f2/image/spec/v1.2.md#combined-image-json--filesystem-changeset-format).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/doc.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 tarball provides facilities for writing v1 docker images\n// (https://github.com/moby/moby/blob/master/image/spec/v1.md) from/to a tarball\n// on-disk.\npackage tarball\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/write.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 tarball\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/pkg/legacy\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\n// repositoriesTarDescriptor represents the repositories file inside a `docker save` tarball.\ntype repositoriesTarDescriptor map[string]map[string]string\n\n// v1Layer represents a layer with metadata needed by the v1 image spec https://github.com/moby/moby/blob/master/image/spec/v1.md.\ntype v1Layer struct {\n\t// config is the layer metadata.\n\tconfig *legacy.LayerConfigFile\n\t// layer is the v1.Layer object this v1Layer represents.\n\tlayer v1.Layer\n}\n\n// json returns the raw bytes of the json metadata of the given v1Layer.\nfunc (l *v1Layer) json() ([]byte, error) {\n\treturn json.Marshal(l.config)\n}\n\n// version returns the raw bytes of the \"VERSION\" file of the given v1Layer.\nfunc (l *v1Layer) version() []byte {\n\treturn []byte(\"1.0\")\n}\n\n// v1LayerID computes the v1 image format layer id for the given v1.Layer with the given v1 parent ID and raw image config.\nfunc v1LayerID(layer v1.Layer, parentID string, rawConfig []byte) (string, error) {\n\td, err := layer.Digest()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"unable to get layer digest to generate v1 layer ID: %w\", err)\n\t}\n\ts := fmt.Sprintf(\"%s %s\", d.Hex, parentID)\n\tif len(rawConfig) != 0 {\n\t\ts = fmt.Sprintf(\"%s %s\", s, string(rawConfig))\n\t}\n\n\th, _, _ := v1.SHA256(strings.NewReader(s))\n\treturn h.Hex, nil\n}\n\n// newTopV1Layer creates a new v1Layer for a layer other than the top layer in a v1 image tarball.\nfunc newV1Layer(layer v1.Layer, parent *v1Layer, history v1.History) (*v1Layer, error) {\n\tparentID := \"\"\n\tif parent != nil {\n\t\tparentID = parent.config.ID\n\t}\n\tid, err := v1LayerID(layer, parentID, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to generate v1 layer ID: %w\", err)\n\t}\n\tresult := &v1Layer{\n\t\tlayer: layer,\n\t\tconfig: &legacy.LayerConfigFile{\n\t\t\tConfigFile: v1.ConfigFile{\n\t\t\t\tCreated: history.Created,\n\t\t\t\tAuthor:  history.Author,\n\t\t\t},\n\t\t\tContainerConfig: v1.Config{\n\t\t\t\tCmd: []string{history.CreatedBy},\n\t\t\t},\n\t\t\tID:        id,\n\t\t\tParent:    parentID,\n\t\t\tThrowaway: history.EmptyLayer,\n\t\t\tComment:   history.Comment,\n\t\t},\n\t}\n\treturn result, nil\n}\n\n// newTopV1Layer creates a new v1Layer for the top layer in a v1 image tarball.\nfunc newTopV1Layer(layer v1.Layer, parent *v1Layer, history v1.History, imgConfig *v1.ConfigFile, rawConfig []byte) (*v1Layer, error) {\n\tresult, err := newV1Layer(layer, parent, history)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tid, err := v1LayerID(layer, result.config.Parent, rawConfig)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to generate v1 layer ID for top layer: %w\", err)\n\t}\n\tresult.config.ID = id\n\tresult.config.Architecture = imgConfig.Architecture\n\tresult.config.Container = imgConfig.Container\n\tresult.config.DockerVersion = imgConfig.DockerVersion //nolint:staticcheck // Field will be removed in next release\n\tresult.config.OS = imgConfig.OS\n\tresult.config.Config = imgConfig.Config\n\tresult.config.Created = imgConfig.Created\n\treturn result, nil\n}\n\n// splitTag splits the given tagged image name <registry>/<repository>:<tag>\n// into <registry>/<repository> and <tag>.\nfunc splitTag(name string) (string, string) {\n\t// Split on \":\"\n\tparts := strings.Split(name, \":\")\n\t// Verify that we aren't confusing a tag for a hostname w/ port for the purposes of weak validation.\n\tif len(parts) > 1 && !strings.Contains(parts[len(parts)-1], \"/\") {\n\t\tbase := strings.Join(parts[:len(parts)-1], \":\")\n\t\ttag := parts[len(parts)-1]\n\t\treturn base, tag\n\t}\n\treturn name, \"\"\n}\n\n// addTags adds the given image tags to the given \"repositories\" file descriptor in a v1 image tarball.\nfunc addTags(repos repositoriesTarDescriptor, tags []string, topLayerID string) {\n\tfor _, t := range tags {\n\t\tbase, tag := splitTag(t)\n\t\ttagToID, ok := repos[base]\n\t\tif !ok {\n\t\t\ttagToID = make(map[string]string)\n\t\t\trepos[base] = tagToID\n\t\t}\n\t\ttagToID[tag] = topLayerID\n\t}\n}\n\n// updateLayerSources updates the given layer digest to descriptor map with the descriptor of the given layer in the given image if it's an undistributable layer.\nfunc updateLayerSources(layerSources map[v1.Hash]v1.Descriptor, layer v1.Layer, img v1.Image) error {\n\td, err := layer.Digest()\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Add to LayerSources if it's a foreign layer.\n\tdesc, err := partial.BlobDescriptor(img, d)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !desc.MediaType.IsDistributable() {\n\t\tdiffid, err := partial.BlobToDiffID(img, d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlayerSources[diffid] = *desc\n\t}\n\treturn nil\n}\n\n// Write is a wrapper to write a single image in V1 format and tag to a tarball.\nfunc Write(ref name.Reference, img v1.Image, w io.Writer) error {\n\treturn MultiWrite(map[name.Reference]v1.Image{ref: img}, w)\n}\n\n// filterEmpty filters out the history corresponding to empty layers from the\n// given history.\nfunc filterEmpty(h []v1.History) []v1.History {\n\tresult := []v1.History{}\n\tfor _, i := range h {\n\t\tif i.EmptyLayer {\n\t\t\tcontinue\n\t\t}\n\t\tresult = append(result, i)\n\t}\n\treturn result\n}\n\n// MultiWrite writes the contents of each image to the provided reader, in the V1 image tarball format.\n// The contents are written in the following format:\n// One manifest.json file at the top level containing information about several images.\n// One repositories file mapping from the image <registry>/<repo name> to <tag> to the id of the top most layer.\n// For every layer, a directory named with the layer ID is created with the following contents:\n//\n//\tlayer.tar - The uncompressed layer tarball.\n//\t<layer id>.json- Layer metadata json.\n//\tVERSION- Schema version string. Always set to \"1.0\".\n//\n// One file for the config blob, named after its SHA.\nfunc MultiWrite(refToImage map[name.Reference]v1.Image, w io.Writer) error {\n\ttf := tar.NewWriter(w)\n\tdefer tf.Close()\n\n\tsortedImages, imageToTags := dedupRefToImage(refToImage)\n\tvar m tarball.Manifest\n\trepos := make(repositoriesTarDescriptor)\n\n\tseenLayerIDs := make(map[string]struct{})\n\tfor _, img := range sortedImages {\n\t\ttags := imageToTags[img]\n\n\t\t// Write the config.\n\t\tcfgName, err := img.ConfigName()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfgFileName := fmt.Sprintf(\"%s.json\", cfgName.Hex)\n\t\tcfgBlob, err := img.RawConfigFile()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := writeTarEntry(tf, cfgFileName, bytes.NewReader(cfgBlob), int64(len(cfgBlob))); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg, err := img.ConfigFile()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Store foreign layer info.\n\t\tlayerSources := make(map[v1.Hash]v1.Descriptor)\n\n\t\t// Write the layers.\n\t\tlayers, err := img.Layers()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thistory := filterEmpty(cfg.History)\n\t\t// Create a blank config history if the config didn't have a history.\n\t\tif len(history) == 0 && len(layers) != 0 {\n\t\t\thistory = make([]v1.History, len(layers))\n\t\t} else if len(layers) != len(history) {\n\t\t\treturn fmt.Errorf(\"image config had layer history which did not match the number of layers, got len(history)=%d, len(layers)=%d, want len(history)=len(layers)\", len(history), len(layers))\n\t\t}\n\t\tlayerFiles := make([]string, len(layers))\n\t\tvar prev *v1Layer\n\t\tfor i, l := range layers {\n\t\t\tif err := updateLayerSources(layerSources, l, img); err != nil {\n\t\t\t\treturn fmt.Errorf(\"unable to update image metadata to include undistributable layer source information: %w\", err)\n\t\t\t}\n\t\t\tvar cur *v1Layer\n\t\t\tif i < (len(layers) - 1) {\n\t\t\t\tcur, err = newV1Layer(l, prev, history[i])\n\t\t\t} else {\n\t\t\t\tcur, err = newTopV1Layer(l, prev, history[i], cfg, cfgBlob)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlayerFiles[i] = fmt.Sprintf(\"%s/layer.tar\", cur.config.ID)\n\t\t\tif _, ok := seenLayerIDs[cur.config.ID]; ok {\n\t\t\t\tprev = cur\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tseenLayerIDs[cur.config.ID] = struct{}{}\n\n\t\t\t// If the v1.Layer implements UncompressedSize efficiently, use that\n\t\t\t// for the tar header. Otherwise, this iterates over Uncompressed().\n\t\t\t// NOTE: If using a streaming layer, this may consume the layer.\n\t\t\tsize, err := partial.UncompressedSize(l)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tu, err := l.Uncompressed()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer u.Close()\n\t\t\tif err := writeTarEntry(tf, layerFiles[i], u, size); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tj, err := cur.json()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := writeTarEntry(tf, fmt.Sprintf(\"%s/json\", cur.config.ID), bytes.NewReader(j), int64(len(j))); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tv := cur.version()\n\t\t\tif err := writeTarEntry(tf, fmt.Sprintf(\"%s/VERSION\", cur.config.ID), bytes.NewReader(v), int64(len(v))); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tprev = cur\n\t\t}\n\n\t\t// Generate the tar descriptor and write it.\n\t\tm = append(m, tarball.Descriptor{\n\t\t\tConfig:       cfgFileName,\n\t\t\tRepoTags:     tags,\n\t\t\tLayers:       layerFiles,\n\t\t\tLayerSources: layerSources,\n\t\t})\n\t\t// prev should be the top layer here. Use it to add the image tags\n\t\t// to the tarball repositories file.\n\t\taddTags(repos, tags, prev.config.ID)\n\t}\n\n\tmBytes, err := json.Marshal(m)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := writeTarEntry(tf, \"manifest.json\", bytes.NewReader(mBytes), int64(len(mBytes))); err != nil {\n\t\treturn err\n\t}\n\treposBytes, err := json.Marshal(&repos)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn writeTarEntry(tf, \"repositories\", bytes.NewReader(reposBytes), int64(len(reposBytes)))\n}\n\nfunc dedupRefToImage(refToImage map[name.Reference]v1.Image) ([]v1.Image, map[v1.Image][]string) {\n\timageToTags := make(map[v1.Image][]string)\n\n\tfor ref, img := range refToImage {\n\t\tif tag, ok := ref.(name.Tag); ok {\n\t\t\tif tags, ok := imageToTags[img]; ok && tags != nil {\n\t\t\t\timageToTags[img] = append(tags, tag.String())\n\t\t\t} else {\n\t\t\t\timageToTags[img] = []string{tag.String()}\n\t\t\t}\n\t\t} else {\n\t\t\tif _, ok := imageToTags[img]; !ok {\n\t\t\t\timageToTags[img] = nil\n\t\t\t}\n\t\t}\n\t}\n\n\t// Force specific order on tags\n\timgs := make([]v1.Image, 0, len(imageToTags))\n\tfor img, tags := range imageToTags {\n\t\tsort.Strings(tags)\n\t\timgs = append(imgs, img)\n\t}\n\n\tsort.Slice(imgs, func(i, j int) bool {\n\t\tcfI, err := imgs[i].ConfigName()\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tcfJ, err := imgs[j].ConfigName()\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn cfI.Hex < cfJ.Hex\n\t})\n\n\treturn imgs, imageToTags\n}\n\n// Writes a file to the provided writer with a corresponding tar header\nfunc writeTarEntry(tf *tar.Writer, path string, r io.Reader, size int64) error {\n\thdr := &tar.Header{\n\t\tMode:     0644,\n\t\tTypeflag: tar.TypeReg,\n\t\tSize:     size,\n\t\tName:     path,\n\t}\n\tif err := tf.WriteHeader(hdr); err != nil {\n\t\treturn err\n\t}\n\t_, err := io.Copy(tf, r)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/logs/logs.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 logs exposes the loggers used by this library.\npackage logs\n\nimport (\n\t\"io\"\n\t\"log\"\n)\n\nvar (\n\t// Warn is used to log non-fatal errors.\n\tWarn = log.New(io.Discard, \"\", log.LstdFlags)\n\n\t// Progress is used to log notable, successful events.\n\tProgress = log.New(io.Discard, \"\", log.LstdFlags)\n\n\t// Debug is used to log information that is useful for debugging.\n\tDebug = log.New(io.Discard, \"\", log.LstdFlags)\n)\n\n// Enabled checks to see if the logger's writer is set to something other\n// than io.Discard. This allows callers to avoid expensive operations\n// that will end up in /dev/null anyway.\nfunc Enabled(l *log.Logger) bool {\n\treturn l.Writer() != io.Discard\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/README.md",
    "content": "# `name`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/name?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/name)\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/check.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// stripRunesFn returns a function which returns -1 (i.e. a value which\n// signals deletion in strings.Map) for runes in 'runes', and the rune otherwise.\nfunc stripRunesFn(runes string) func(rune) rune {\n\treturn func(r rune) rune {\n\t\tif strings.ContainsRune(runes, r) {\n\t\t\treturn -1\n\t\t}\n\t\treturn r\n\t}\n}\n\n// checkElement checks a given named element matches character and length restrictions.\n// Returns true if the given element adheres to the given restrictions, false otherwise.\nfunc checkElement(name, element, allowedRunes string, minRunes, maxRunes int) error {\n\tnumRunes := utf8.RuneCountInString(element)\n\tif (numRunes < minRunes) || (maxRunes < numRunes) {\n\t\treturn newErrBadName(\"%s must be between %d and %d characters in length: %s\", name, minRunes, maxRunes, element)\n\t} else if len(strings.Map(stripRunesFn(allowedRunes), element)) != 0 {\n\t\treturn newErrBadName(\"%s can only contain the characters `%s`: %s\", name, allowedRunes, element)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/digest.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t// nolint: depguard\n\t_ \"crypto/sha256\" // Recommended by go-digest.\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/opencontainers/go-digest\"\n)\n\nconst digestDelim = \"@\"\n\n// Digest stores a digest name in a structured form.\ntype Digest struct {\n\tRepository\n\tdigest   string\n\toriginal string\n}\n\nvar _ Reference = (*Digest)(nil)\nvar _ encoding.TextMarshaler = (*Digest)(nil)\nvar _ encoding.TextUnmarshaler = (*Digest)(nil)\nvar _ json.Marshaler = (*Digest)(nil)\nvar _ json.Unmarshaler = (*Digest)(nil)\n\n// Context implements Reference.\nfunc (d Digest) Context() Repository {\n\treturn d.Repository\n}\n\n// Identifier implements Reference.\nfunc (d Digest) Identifier() string {\n\treturn d.DigestStr()\n}\n\n// DigestStr returns the digest component of the Digest.\nfunc (d Digest) DigestStr() string {\n\treturn d.digest\n}\n\n// Name returns the name from which the Digest was derived.\nfunc (d Digest) Name() string {\n\treturn d.Repository.Name() + digestDelim + d.DigestStr()\n}\n\n// String returns the original input string.\nfunc (d Digest) String() string {\n\treturn d.original\n}\n\n// MarshalJSON formats the digest into a string for JSON serialization.\nfunc (d Digest) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(d.String())\n}\n\n// UnmarshalJSON parses a JSON string into a Digest.\nfunc (d *Digest) UnmarshalJSON(data []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err != nil {\n\t\treturn err\n\t}\n\tn, err := NewDigest(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = n\n\treturn nil\n}\n\n// MarshalText formats the digest into a string for text serialization.\nfunc (d Digest) MarshalText() ([]byte, error) {\n\treturn []byte(d.String()), nil\n}\n\n// UnmarshalText parses a text string into a Digest.\nfunc (d *Digest) UnmarshalText(data []byte) error {\n\tn, err := NewDigest(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = n\n\treturn nil\n}\n\n// NewDigest returns a new Digest representing the given name.\nfunc NewDigest(name string, opts ...Option) (Digest, error) {\n\t// Split on \"@\"\n\tparts := strings.Split(name, digestDelim)\n\tif len(parts) != 2 {\n\t\treturn Digest{}, newErrBadName(\"a digest must contain exactly one '@' separator (e.g. registry/repository@digest) saw: %s\", name)\n\t}\n\tbase := parts[0]\n\tdig := parts[1]\n\tprefix := digest.Canonical.String() + \":\"\n\tif !strings.HasPrefix(dig, prefix) {\n\t\treturn Digest{}, newErrBadName(\"unsupported digest algorithm: %s\", dig)\n\t}\n\thex := strings.TrimPrefix(dig, prefix)\n\tif err := digest.Canonical.Validate(hex); err != nil {\n\t\treturn Digest{}, err\n\t}\n\n\ttag, err := NewTag(base, opts...)\n\tif err == nil {\n\t\tbase = tag.Repository.Name()\n\t}\n\n\trepo, err := NewRepository(base, opts...)\n\tif err != nil {\n\t\treturn Digest{}, err\n\t}\n\treturn Digest{\n\t\tRepository: repo,\n\t\tdigest:     dig,\n\t\toriginal:   name,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name defines structured types for representing image references.\n//\n// What's in a name? For image references, not nearly enough!\n//\n// Image references look a lot like URLs, but they differ in that they don't\n// contain the scheme (http or https), they can end with a :tag or a @digest\n// (the latter being validated), and they perform defaulting for missing\n// components.\n//\n// Since image references don't contain the scheme, we do our best to infer\n// if we use http or https from the given hostname. We allow http fallback for\n// any host that looks like localhost (localhost, 127.0.0.1, ::1), ends in\n// \".local\", or is in the \"private\" address space per RFC 1918. For everything\n// else, we assume https only. To override this heuristic, use the Insecure\n// option.\n//\n// Image references with a digest signal to us that we should verify the content\n// of the image matches the digest. E.g. when pulling a Digest reference, we'll\n// calculate the sha256 of the manifest returned by the registry and error out\n// if it doesn't match what we asked for.\n//\n// For defaulting, we interpret \"ubuntu\" as\n// \"index.docker.io/library/ubuntu:latest\" because we add the missing repo\n// \"library\", the missing registry \"index.docker.io\", and the missing tag\n// \"latest\". To disable this defaulting, use the StrictValidation option. This\n// is useful e.g. to only allow image references that explicitly set a tag or\n// digest, so that you don't accidentally pull \"latest\".\npackage name\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/errors.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// ErrBadName is an error for when a bad docker name is supplied.\ntype ErrBadName struct {\n\tinfo string\n}\n\nfunc (e *ErrBadName) Error() string {\n\treturn e.info\n}\n\n// Is reports whether target is an error of type ErrBadName\nfunc (e *ErrBadName) Is(target error) bool {\n\tvar berr *ErrBadName\n\treturn errors.As(target, &berr)\n}\n\n// newErrBadName returns a ErrBadName which returns the given formatted string from Error().\nfunc newErrBadName(fmtStr string, args ...any) *ErrBadName {\n\treturn &ErrBadName{fmt.Sprintf(fmtStr, args...)}\n}\n\n// IsErrBadName returns true if the given error is an ErrBadName.\n//\n// Deprecated: Use errors.Is.\nfunc IsErrBadName(err error) bool {\n\tvar berr *ErrBadName\n\treturn errors.As(err, &berr)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/options.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nconst (\n\t// DefaultRegistry is the registry name that will be used if no registry\n\t// provided and the default is not overridden.\n\tDefaultRegistry      = \"index.docker.io\"\n\tdefaultRegistryAlias = \"docker.io\"\n\n\t// DefaultTag is the tag name that will be used if no tag provided and the\n\t// default is not overridden.\n\tDefaultTag = \"latest\"\n)\n\ntype options struct {\n\tstrict          bool // weak by default\n\tinsecure        bool // secure by default\n\tdefaultRegistry string\n\tdefaultTag      string\n}\n\nfunc makeOptions(opts ...Option) options {\n\topt := options{\n\t\tdefaultRegistry: DefaultRegistry,\n\t\tdefaultTag:      DefaultTag,\n\t}\n\tfor _, o := range opts {\n\t\to(&opt)\n\t}\n\treturn opt\n}\n\n// Option is a functional option for name parsing.\ntype Option func(*options)\n\n// StrictValidation is an Option that requires image references to be fully\n// specified; i.e. no defaulting for registry (dockerhub), repo (library),\n// or tag (latest).\nfunc StrictValidation(opts *options) {\n\topts.strict = true\n}\n\n// WeakValidation is an Option that sets defaults when parsing names, see\n// StrictValidation.\nfunc WeakValidation(opts *options) {\n\topts.strict = false\n}\n\n// Insecure is an Option that allows image references to be fetched without TLS.\nfunc Insecure(opts *options) {\n\topts.insecure = true\n}\n\n// OptionFn is a function that returns an option.\ntype OptionFn func() Option\n\n// WithDefaultRegistry sets the default registry that will be used if one is not\n// provided.\nfunc WithDefaultRegistry(r string) Option {\n\treturn func(opts *options) {\n\t\topts.defaultRegistry = r\n\t}\n}\n\n// WithDefaultTag sets the default tag that will be used if one is not provided.\nfunc WithDefaultTag(t string) Option {\n\treturn func(opts *options) {\n\t\topts.defaultTag = t\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/ref.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"fmt\"\n)\n\n// Reference defines the interface that consumers use when they can\n// take either a tag or a digest.\ntype Reference interface {\n\tfmt.Stringer\n\n\t// Context accesses the Repository context of the reference.\n\tContext() Repository\n\n\t// Identifier accesses the type-specific portion of the reference.\n\tIdentifier() string\n\n\t// Name is the fully-qualified reference name.\n\tName() string\n\n\t// Scope is the scope needed to access this reference.\n\tScope(string) string\n}\n\n// ParseReference parses the string as a reference, either by tag or digest.\nfunc ParseReference(s string, opts ...Option) (Reference, error) {\n\tif t, err := NewTag(s, opts...); err == nil {\n\t\treturn t, nil\n\t}\n\tif d, err := NewDigest(s, opts...); err == nil {\n\t\treturn d, nil\n\t}\n\treturn nil, newErrBadName(\"could not parse reference: %s\", s)\n}\n\ntype stringConst string\n\n// MustParseReference behaves like ParseReference, but panics instead of\n// returning an error. It's intended for use in tests, or when a value is\n// expected to be valid at code authoring time.\n//\n// To discourage its use in scenarios where the value is not known at code\n// authoring time, it must be passed a string constant:\n//\n//\tconst str = \"valid/string\"\n//\tMustParseReference(str)\n//\tMustParseReference(\"another/valid/string\")\n//\tMustParseReference(str + \"/and/more\")\n//\n// These will not compile:\n//\n//\tvar str = \"valid/string\"\n//\tMustParseReference(str)\n//\tMustParseReference(strings.Join([]string{\"valid\", \"string\"}, \"/\"))\nfunc MustParseReference(s stringConst, opts ...Option) Reference {\n\tref, err := ParseReference(string(s), opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn ref\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/registry.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"net\"\n\t\"net/url\"\n\t\"path\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Detect more complex forms of local references.\nvar reLocal = regexp.MustCompile(`.*\\.local(?:host)?(?::\\d{1,5})?$`)\n\n// Detect the loopback IP (127.0.0.1)\nvar reLoopback = regexp.MustCompile(regexp.QuoteMeta(\"127.0.0.1\"))\n\n// Detect the loopback IPV6 (::1)\nvar reipv6Loopback = regexp.MustCompile(regexp.QuoteMeta(\"::1\"))\n\n// Registry stores a docker registry name in a structured form.\ntype Registry struct {\n\tinsecure bool\n\tregistry string\n}\n\nvar _ encoding.TextMarshaler = (*Registry)(nil)\nvar _ encoding.TextUnmarshaler = (*Registry)(nil)\nvar _ json.Marshaler = (*Registry)(nil)\nvar _ json.Unmarshaler = (*Registry)(nil)\n\n// RegistryStr returns the registry component of the Registry.\nfunc (r Registry) RegistryStr() string {\n\treturn r.registry\n}\n\n// Name returns the name from which the Registry was derived.\nfunc (r Registry) Name() string {\n\treturn r.RegistryStr()\n}\n\nfunc (r Registry) String() string {\n\treturn r.Name()\n}\n\n// Repo returns a Repository in the Registry with the given name.\nfunc (r Registry) Repo(repo ...string) Repository {\n\treturn Repository{Registry: r, repository: path.Join(repo...)}\n}\n\n// Scope returns the scope required to access the registry.\nfunc (r Registry) Scope(string) string {\n\t// The only resource under 'registry' is 'catalog'. http://goo.gl/N9cN9Z\n\treturn \"registry:catalog:*\"\n}\n\nfunc (r Registry) isRFC1918() bool {\n\tipStr := strings.Split(r.Name(), \":\")[0]\n\tip := net.ParseIP(ipStr)\n\tif ip == nil {\n\t\treturn false\n\t}\n\tfor _, cidr := range []string{\"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"} {\n\t\t_, block, _ := net.ParseCIDR(cidr)\n\t\tif block.Contains(ip) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Scheme returns https scheme for all the endpoints except localhost or when explicitly defined.\nfunc (r Registry) Scheme() string {\n\tif r.insecure {\n\t\treturn \"http\"\n\t}\n\tif r.isRFC1918() {\n\t\treturn \"http\"\n\t}\n\tif strings.HasPrefix(r.Name(), \"localhost:\") {\n\t\treturn \"http\"\n\t}\n\tif reLocal.MatchString(r.Name()) {\n\t\treturn \"http\"\n\t}\n\tif reLoopback.MatchString(r.Name()) {\n\t\treturn \"http\"\n\t}\n\tif reipv6Loopback.MatchString(r.Name()) {\n\t\treturn \"http\"\n\t}\n\treturn \"https\"\n}\n\nfunc checkRegistry(name string) error {\n\t// Per RFC 3986, registries (authorities) are required to be prefixed with \"//\"\n\t// url.Host == hostname[:port] == authority\n\tif url, err := url.Parse(\"//\" + name); err != nil || url.Host != name {\n\t\treturn newErrBadName(\"registries must be valid RFC 3986 URI authorities: %s\", name)\n\t}\n\treturn nil\n}\n\n// NewRegistry returns a Registry based on the given name.\n// Strict validation requires explicit, valid RFC 3986 URI authorities to be given.\nfunc NewRegistry(name string, opts ...Option) (Registry, error) {\n\topt := makeOptions(opts...)\n\tif opt.strict && len(name) == 0 {\n\t\treturn Registry{}, newErrBadName(\"strict validation requires the registry to be explicitly defined\")\n\t}\n\n\tif err := checkRegistry(name); err != nil {\n\t\treturn Registry{}, err\n\t}\n\n\tif name == \"\" {\n\t\tname = opt.defaultRegistry\n\t}\n\t// Rewrite \"docker.io\" to \"index.docker.io\".\n\t// See: https://github.com/google/go-containerregistry/issues/68\n\tif name == defaultRegistryAlias {\n\t\tname = DefaultRegistry\n\t}\n\n\treturn Registry{registry: name, insecure: opt.insecure}, nil\n}\n\n// NewInsecureRegistry returns an Insecure Registry based on the given name.\n//\n// Deprecated: Use the Insecure Option with NewRegistry instead.\nfunc NewInsecureRegistry(name string, opts ...Option) (Registry, error) {\n\topts = append(opts, Insecure)\n\treturn NewRegistry(name, opts...)\n}\n\n// MarshalJSON formats the Registry into a string for JSON serialization.\nfunc (r Registry) MarshalJSON() ([]byte, error) { return json.Marshal(r.String()) }\n\n// UnmarshalJSON parses a JSON string into a Registry.\nfunc (r *Registry) UnmarshalJSON(data []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err != nil {\n\t\treturn err\n\t}\n\tn, err := NewRegistry(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*r = n\n\treturn nil\n}\n\n// MarshalText formats the registry into a string for text serialization.\nfunc (r Registry) MarshalText() ([]byte, error) { return []byte(r.String()), nil }\n\n// UnmarshalText parses a text string into a Registry.\nfunc (r *Registry) UnmarshalText(data []byte) error {\n\tn, err := NewRegistry(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*r = n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/repository.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\tdefaultNamespace = \"library\"\n\trepositoryChars  = \"abcdefghijklmnopqrstuvwxyz0123456789_-./\"\n\tregRepoDelimiter = \"/\"\n)\n\n// Repository stores a docker repository name in a structured form.\ntype Repository struct {\n\tRegistry\n\trepository string\n}\n\nvar _ encoding.TextMarshaler = (*Repository)(nil)\nvar _ encoding.TextUnmarshaler = (*Repository)(nil)\nvar _ json.Marshaler = (*Repository)(nil)\nvar _ json.Unmarshaler = (*Repository)(nil)\n\n// See https://docs.docker.com/docker-hub/official_repos\nfunc hasImplicitNamespace(repo string, reg Registry) bool {\n\treturn !strings.ContainsRune(repo, '/') && reg.RegistryStr() == DefaultRegistry\n}\n\n// RepositoryStr returns the repository component of the Repository.\nfunc (r Repository) RepositoryStr() string {\n\tif hasImplicitNamespace(r.repository, r.Registry) {\n\t\treturn fmt.Sprintf(\"%s/%s\", defaultNamespace, r.repository)\n\t}\n\treturn r.repository\n}\n\n// Name returns the name from which the Repository was derived.\nfunc (r Repository) Name() string {\n\tregName := r.Registry.Name()\n\tif regName != \"\" {\n\t\treturn regName + regRepoDelimiter + r.RepositoryStr()\n\t}\n\t// TODO: As far as I can tell, this is unreachable.\n\treturn r.RepositoryStr()\n}\n\nfunc (r Repository) String() string {\n\treturn r.Name()\n}\n\n// Scope returns the scope required to perform the given action on the registry.\n// TODO(jonjohnsonjr): consider moving scopes to a separate package.\nfunc (r Repository) Scope(action string) string {\n\treturn fmt.Sprintf(\"repository:%s:%s\", r.RepositoryStr(), action)\n}\n\nfunc checkRepository(repository string) error {\n\treturn checkElement(\"repository\", repository, repositoryChars, 2, 255)\n}\n\n// NewRepository returns a new Repository representing the given name, according to the given strictness.\nfunc NewRepository(name string, opts ...Option) (Repository, error) {\n\topt := makeOptions(opts...)\n\tif len(name) == 0 {\n\t\treturn Repository{}, newErrBadName(\"a repository name must be specified\")\n\t}\n\n\tvar registry string\n\trepo := name\n\tparts := strings.SplitN(name, regRepoDelimiter, 2)\n\tif len(parts) == 2 && (strings.ContainsRune(parts[0], '.') || strings.ContainsRune(parts[0], ':')) {\n\t\t// The first part of the repository is treated as the registry domain\n\t\t// iff it contains a '.' or ':' character, otherwise it is all repository\n\t\t// and the domain defaults to Docker Hub.\n\t\tregistry = parts[0]\n\t\trepo = parts[1]\n\t}\n\n\tif err := checkRepository(repo); err != nil {\n\t\treturn Repository{}, err\n\t}\n\n\treg, err := NewRegistry(registry, opts...)\n\tif err != nil {\n\t\treturn Repository{}, err\n\t}\n\tif hasImplicitNamespace(repo, reg) && opt.strict {\n\t\treturn Repository{}, newErrBadName(\"strict validation requires the full repository path (missing 'library')\")\n\t}\n\treturn Repository{reg, repo}, nil\n}\n\n// Tag returns a Tag in this Repository.\nfunc (r Repository) Tag(identifier string) Tag {\n\tt := Tag{\n\t\ttag:        identifier,\n\t\tRepository: r,\n\t}\n\tt.original = t.Name()\n\treturn t\n}\n\n// Digest returns a Digest in this Repository.\nfunc (r Repository) Digest(identifier string) Digest {\n\td := Digest{\n\t\tdigest:     identifier,\n\t\tRepository: r,\n\t}\n\td.original = d.Name()\n\treturn d\n}\n\n// MarshalJSON formats the Repository into a string for JSON serialization.\nfunc (r Repository) MarshalJSON() ([]byte, error) { return json.Marshal(r.String()) }\n\n// UnmarshalJSON parses a JSON string into a Repository.\nfunc (r *Repository) UnmarshalJSON(data []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err != nil {\n\t\treturn err\n\t}\n\tn, err := NewRepository(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*r = n\n\treturn nil\n}\n\n// MarshalText formats the repository name into a string for text serialization.\nfunc (r Repository) MarshalText() ([]byte, error) { return []byte(r.String()), nil }\n\n// UnmarshalText parses a text string into a Repository.\nfunc (r *Repository) UnmarshalText(data []byte) error {\n\tn, err := NewRepository(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*r = n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/name/tag.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 name\n\nimport (\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"strings\"\n)\n\nconst (\n\t// TODO(dekkagaijin): use the docker/distribution regexes for validation.\n\ttagChars = \"abcdefghijklmnopqrstuvwxyz0123456789_-.ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\ttagDelim = \":\"\n)\n\n// Tag stores a docker tag name in a structured form.\ntype Tag struct {\n\tRepository\n\ttag      string\n\toriginal string\n}\n\nvar _ Reference = (*Tag)(nil)\nvar _ encoding.TextMarshaler = (*Tag)(nil)\nvar _ encoding.TextUnmarshaler = (*Tag)(nil)\nvar _ json.Marshaler = (*Tag)(nil)\nvar _ json.Unmarshaler = (*Tag)(nil)\n\n// Context implements Reference.\nfunc (t Tag) Context() Repository {\n\treturn t.Repository\n}\n\n// Identifier implements Reference.\nfunc (t Tag) Identifier() string {\n\treturn t.TagStr()\n}\n\n// TagStr returns the tag component of the Tag.\nfunc (t Tag) TagStr() string {\n\treturn t.tag\n}\n\n// Name returns the name from which the Tag was derived.\nfunc (t Tag) Name() string {\n\treturn t.Repository.Name() + tagDelim + t.TagStr()\n}\n\n// String returns the original input string.\nfunc (t Tag) String() string {\n\treturn t.original\n}\n\n// Scope returns the scope required to perform the given action on the tag.\nfunc (t Tag) Scope(action string) string {\n\treturn t.Repository.Scope(action)\n}\n\nfunc checkTag(name string) error {\n\treturn checkElement(\"tag\", name, tagChars, 1, 128)\n}\n\n// NewTag returns a new Tag representing the given name, according to the given strictness.\nfunc NewTag(name string, opts ...Option) (Tag, error) {\n\topt := makeOptions(opts...)\n\tbase := name\n\ttag := \"\"\n\n\t// Split on \":\"\n\tparts := strings.Split(name, tagDelim)\n\t// Verify that we aren't confusing a tag for a hostname w/ port for the purposes of weak validation.\n\tif len(parts) > 1 && !strings.Contains(parts[len(parts)-1], regRepoDelimiter) {\n\t\tbase = strings.Join(parts[:len(parts)-1], tagDelim)\n\t\ttag = parts[len(parts)-1]\n\t\tif tag == \"\" {\n\t\t\treturn Tag{}, newErrBadName(\"%s must specify a tag name after the colon\", name)\n\t\t}\n\t}\n\n\t// We don't require a tag, but if we get one check it's valid,\n\t// even when not being strict.\n\t// If we are being strict, we want to validate the tag regardless in case\n\t// it's empty.\n\tif tag != \"\" || opt.strict {\n\t\tif err := checkTag(tag); err != nil {\n\t\t\treturn Tag{}, err\n\t\t}\n\t}\n\n\tif tag == \"\" {\n\t\ttag = opt.defaultTag\n\t}\n\n\trepo, err := NewRepository(base, opts...)\n\tif err != nil {\n\t\treturn Tag{}, err\n\t}\n\treturn Tag{\n\t\tRepository: repo,\n\t\ttag:        tag,\n\t\toriginal:   name,\n\t}, nil\n}\n\n// MarshalJSON formats the Tag into a string for JSON serialization.\nfunc (t Tag) MarshalJSON() ([]byte, error) { return json.Marshal(t.String()) }\n\n// UnmarshalJSON parses a JSON string into a Tag.\nfunc (t *Tag) UnmarshalJSON(data []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err != nil {\n\t\treturn err\n\t}\n\tn, err := NewTag(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*t = n\n\treturn nil\n}\n\n// MarshalText formats the tag into a string for text serialization.\nfunc (t Tag) MarshalText() ([]byte, error) { return []byte(t.String()), nil }\n\n// UnmarshalText parses a text string into a Tag.\nfunc (t *Tag) UnmarshalText(data []byte) error {\n\tn, err := NewTag(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*t = n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/config.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"encoding/json\"\n\t\"io\"\n\t\"time\"\n)\n\n// ConfigFile is the configuration file that holds the metadata describing\n// how to launch a container. See:\n// https://github.com/opencontainers/image-spec/blob/master/config.md\n//\n// docker_version and os.version are not part of the spec but included\n// for backwards compatibility.\ntype ConfigFile struct {\n\tArchitecture string `json:\"architecture\"`\n\tAuthor       string `json:\"author,omitempty\"`\n\tContainer    string `json:\"container,omitempty\"`\n\tCreated      Time   `json:\"created,omitempty\"`\n\t// Deprecated: This field is deprecated and will be removed in the next release.\n\tDockerVersion string    `json:\"docker_version,omitempty\"`\n\tHistory       []History `json:\"history,omitempty\"`\n\tOS            string    `json:\"os\"`\n\tRootFS        RootFS    `json:\"rootfs\"`\n\tConfig        Config    `json:\"config\"`\n\tOSVersion     string    `json:\"os.version,omitempty\"`\n\tVariant       string    `json:\"variant,omitempty\"`\n\tOSFeatures    []string  `json:\"os.features,omitempty\"`\n}\n\n// Platform attempts to generates a Platform from the ConfigFile fields.\nfunc (cf *ConfigFile) Platform() *Platform {\n\tif cf.OS == \"\" && cf.Architecture == \"\" && cf.OSVersion == \"\" && cf.Variant == \"\" && len(cf.OSFeatures) == 0 {\n\t\treturn nil\n\t}\n\treturn &Platform{\n\t\tOS:           cf.OS,\n\t\tArchitecture: cf.Architecture,\n\t\tOSVersion:    cf.OSVersion,\n\t\tVariant:      cf.Variant,\n\t\tOSFeatures:   cf.OSFeatures,\n\t}\n}\n\n// History is one entry of a list recording how this container image was built.\ntype History struct {\n\tAuthor     string `json:\"author,omitempty\"`\n\tCreated    Time   `json:\"created,omitempty\"`\n\tCreatedBy  string `json:\"created_by,omitempty\"`\n\tComment    string `json:\"comment,omitempty\"`\n\tEmptyLayer bool   `json:\"empty_layer,omitempty\"`\n}\n\n// Time is a wrapper around time.Time to help with deep copying\ntype Time struct {\n\ttime.Time\n}\n\n// DeepCopyInto creates a deep-copy of the Time value.  The underlying time.Time\n// type is effectively immutable in the time API, so it is safe to\n// copy-by-assign, despite the presence of (unexported) Pointer fields.\nfunc (t *Time) DeepCopyInto(out *Time) {\n\t*out = *t\n}\n\n// RootFS holds the ordered list of file system deltas that comprise the\n// container image's root filesystem.\ntype RootFS struct {\n\tType    string `json:\"type\"`\n\tDiffIDs []Hash `json:\"diff_ids\"`\n}\n\n// HealthConfig holds configuration settings for the HEALTHCHECK feature.\ntype HealthConfig 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\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\n// Config is a submessage of the config file described as:\n//\n//\tThe execution parameters which SHOULD be used as a base when running\n//\ta container using the image.\n//\n// The names of the fields in this message are chosen to reflect the JSON\n// payload of the Config as defined here:\n// https://git.io/vrAET\n// and\n// https://github.com/opencontainers/image-spec/blob/master/config.md\ntype Config struct {\n\tAttachStderr    bool                `json:\"AttachStderr,omitempty\"`\n\tAttachStdin     bool                `json:\"AttachStdin,omitempty\"`\n\tAttachStdout    bool                `json:\"AttachStdout,omitempty\"`\n\tCmd             []string            `json:\"Cmd,omitempty\"`\n\tHealthcheck     *HealthConfig       `json:\"Healthcheck,omitempty\"`\n\tDomainname      string              `json:\"Domainname,omitempty\"`\n\tEntrypoint      []string            `json:\"Entrypoint,omitempty\"`\n\tEnv             []string            `json:\"Env,omitempty\"`\n\tHostname        string              `json:\"Hostname,omitempty\"`\n\tImage           string              `json:\"Image,omitempty\"`\n\tLabels          map[string]string   `json:\"Labels,omitempty\"`\n\tOnBuild         []string            `json:\"OnBuild,omitempty\"`\n\tOpenStdin       bool                `json:\"OpenStdin,omitempty\"`\n\tStdinOnce       bool                `json:\"StdinOnce,omitempty\"`\n\tTty             bool                `json:\"Tty,omitempty\"`\n\tUser            string              `json:\"User,omitempty\"`\n\tVolumes         map[string]struct{} `json:\"Volumes,omitempty\"`\n\tWorkingDir      string              `json:\"WorkingDir,omitempty\"`\n\tExposedPorts    map[string]struct{} `json:\"ExposedPorts,omitempty\"`\n\tArgsEscaped     bool                `json:\"ArgsEscaped,omitempty\"`\n\tNetworkDisabled bool                `json:\"NetworkDisabled,omitempty\"`\n\tMacAddress      string              `json:\"MacAddress,omitempty\"`\n\tStopSignal      string              `json:\"StopSignal,omitempty\"`\n\tShell           []string            `json:\"Shell,omitempty\"`\n}\n\n// ParseConfigFile parses the io.Reader's contents into a ConfigFile.\nfunc ParseConfigFile(r io.Reader) (*ConfigFile, error) {\n\tcf := ConfigFile{}\n\tif err := json.NewDecoder(r).Decode(&cf); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &cf, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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// +k8s:deepcopy-gen=package\n\n// Package v1 defines structured types for OCI v1 images\npackage v1\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/empty/README.md",
    "content": "# `empty`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/empty?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/empty)\n\nThe empty packages provides an empty base for constructing a `v1.Image` or `v1.ImageIndex`.\nThis is especially useful when paired with the [`mutate`](/pkg/v1/mutate) package,\nsee [`mutate.Append`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/mutate#Append)\nand [`mutate.AppendManifests`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/mutate#AppendManifests).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 empty provides an implementation of v1.Image equivalent to \"FROM scratch\".\npackage empty\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 empty\n\nimport (\n\t\"fmt\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Image is a singleton empty image, think: FROM scratch.\nvar Image, _ = partial.UncompressedToImage(emptyImage{})\n\ntype emptyImage struct{}\n\n// MediaType implements partial.UncompressedImageCore.\nfunc (i emptyImage) MediaType() (types.MediaType, error) {\n\treturn types.DockerManifestSchema2, nil\n}\n\n// RawConfigFile implements partial.UncompressedImageCore.\nfunc (i emptyImage) RawConfigFile() ([]byte, error) {\n\treturn partial.RawConfigFile(i)\n}\n\n// ConfigFile implements v1.Image.\nfunc (i emptyImage) ConfigFile() (*v1.ConfigFile, error) {\n\treturn &v1.ConfigFile{\n\t\tRootFS: v1.RootFS{\n\t\t\t// Some clients check this.\n\t\t\tType: \"layers\",\n\t\t},\n\t}, nil\n}\n\nfunc (i emptyImage) LayerByDiffID(h v1.Hash) (partial.UncompressedLayer, error) {\n\treturn nil, fmt.Errorf(\"LayerByDiffID(%s): empty image\", h)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/empty/index.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 empty\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Index is a singleton empty index, think: FROM scratch.\nvar Index = emptyIndex{}\n\ntype emptyIndex struct{}\n\nfunc (i emptyIndex) MediaType() (types.MediaType, error) {\n\treturn types.OCIImageIndex, nil\n}\n\nfunc (i emptyIndex) Digest() (v1.Hash, error) {\n\treturn partial.Digest(i)\n}\n\nfunc (i emptyIndex) Size() (int64, error) {\n\treturn partial.Size(i)\n}\n\nfunc (i emptyIndex) IndexManifest() (*v1.IndexManifest, error) {\n\treturn base(), nil\n}\n\nfunc (i emptyIndex) RawManifest() ([]byte, error) {\n\treturn json.Marshal(base())\n}\n\nfunc (i emptyIndex) Image(v1.Hash) (v1.Image, error) {\n\treturn nil, errors.New(\"empty index\")\n}\n\nfunc (i emptyIndex) ImageIndex(v1.Hash) (v1.ImageIndex, error) {\n\treturn nil, errors.New(\"empty index\")\n}\n\nfunc base() *v1.IndexManifest {\n\treturn &v1.IndexManifest{\n\t\tSchemaVersion: 2,\n\t\tMediaType:     types.OCIImageIndex,\n\t\tManifests:     []v1.Descriptor{},\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/hash.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"crypto\"\n\t\"encoding\"\n\t\"encoding/hex\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"strings\"\n)\n\n// Hash is an unqualified digest of some content, e.g. sha256:deadbeef\ntype Hash struct {\n\t// Algorithm holds the algorithm used to compute the hash.\n\tAlgorithm string\n\n\t// Hex holds the hex portion of the content hash.\n\tHex string\n}\n\nvar _ encoding.TextMarshaler = (*Hash)(nil)\nvar _ encoding.TextUnmarshaler = (*Hash)(nil)\nvar _ json.Marshaler = (*Hash)(nil)\nvar _ json.Unmarshaler = (*Hash)(nil)\n\n// String reverses NewHash returning the string-form of the hash.\nfunc (h Hash) String() string {\n\treturn fmt.Sprintf(\"%s:%s\", h.Algorithm, h.Hex)\n}\n\n// NewHash validates the input string is a hash and returns a strongly type Hash object.\nfunc NewHash(s string) (Hash, error) {\n\th := Hash{}\n\tif err := h.parse(s); err != nil {\n\t\treturn Hash{}, err\n\t}\n\treturn h, nil\n}\n\n// MarshalJSON implements json.Marshaler\nfunc (h Hash) MarshalJSON() ([]byte, error) { return json.Marshal(h.String()) }\n\n// UnmarshalJSON implements json.Unmarshaler\nfunc (h *Hash) UnmarshalJSON(data []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(data, &s); err != nil {\n\t\treturn err\n\t}\n\treturn h.parse(s)\n}\n\n// MarshalText implements encoding.TextMarshaler. This is required to use\n// v1.Hash as a key in a map when marshalling JSON.\nfunc (h Hash) MarshalText() ([]byte, error) { return []byte(h.String()), nil }\n\n// UnmarshalText implements encoding.TextUnmarshaler. This is required to use\n// v1.Hash as a key in a map when unmarshalling JSON.\nfunc (h *Hash) UnmarshalText(text []byte) error { return h.parse(string(text)) }\n\n// Hasher returns a hash.Hash for the named algorithm (e.g. \"sha256\")\nfunc Hasher(name string) (hash.Hash, error) {\n\tswitch name {\n\tcase \"sha256\":\n\t\treturn crypto.SHA256.New(), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported hash: %q\", name)\n\t}\n}\n\nfunc (h *Hash) parse(unquoted string) error {\n\talgo, body, ok := strings.Cut(unquoted, \":\")\n\tif !ok || algo == \"\" || body == \"\" {\n\t\treturn fmt.Errorf(\"cannot parse hash: %q\", unquoted)\n\t}\n\n\trest := strings.TrimLeft(body, \"0123456789abcdef\")\n\tif len(rest) != 0 {\n\t\treturn fmt.Errorf(\"found non-hex character in hash: %c\", rest[0])\n\t}\n\n\tvar wantBytes int\n\tswitch algo {\n\tcase \"sha256\":\n\t\twantBytes = crypto.SHA256.Size()\n\tdefault:\n\t\thasher, err := Hasher(algo)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twantBytes = hasher.Size()\n\t}\n\n\t// Compare the hex to the expected size (2 hex characters per byte)\n\tif len(body) != hex.EncodedLen(wantBytes) {\n\t\treturn fmt.Errorf(\"wrong number of hex digits for %s: %s\", algo, body)\n\t}\n\n\th.Algorithm = algo\n\th.Hex = body\n\treturn nil\n}\n\n// SHA256 computes the Hash of the provided io.Reader's content.\nfunc SHA256(r io.Reader) (Hash, int64, error) {\n\thasher := crypto.SHA256.New()\n\tn, err := io.Copy(hasher, r)\n\tif err != nil {\n\t\treturn Hash{}, 0, err\n\t}\n\treturn Hash{\n\t\tAlgorithm: \"sha256\",\n\t\tHex:       hex.EncodeToString(hasher.Sum(make([]byte, 0, hasher.Size()))),\n\t}, n, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Image defines the interface for interacting with an OCI v1 image.\ntype Image interface {\n\t// Layers returns the ordered collection of filesystem layers that comprise this image.\n\t// The order of the list is oldest/base layer first, and most-recent/top layer last.\n\tLayers() ([]Layer, error)\n\n\t// MediaType of this image's manifest.\n\tMediaType() (types.MediaType, error)\n\n\t// Size returns the size of the manifest.\n\tSize() (int64, error)\n\n\t// ConfigName returns the hash of the image's config file, also known as\n\t// the Image ID.\n\tConfigName() (Hash, error)\n\n\t// ConfigFile returns this image's config file.\n\tConfigFile() (*ConfigFile, error)\n\n\t// RawConfigFile returns the serialized bytes of ConfigFile().\n\tRawConfigFile() ([]byte, error)\n\n\t// Digest returns the sha256 of this image's manifest.\n\tDigest() (Hash, error)\n\n\t// Manifest returns this image's Manifest object.\n\tManifest() (*Manifest, error)\n\n\t// RawManifest returns the serialized bytes of Manifest()\n\tRawManifest() ([]byte, error)\n\n\t// LayerByDigest returns a Layer for interacting with a particular layer of\n\t// the image, looking it up by \"digest\" (the compressed hash).\n\tLayerByDigest(Hash) (Layer, error)\n\n\t// LayerByDiffID is an analog to LayerByDigest, looking up by \"diff id\"\n\t// (the uncompressed hash).\n\tLayerByDiffID(Hash) (Layer, error)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/index.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// ImageIndex defines the interface for interacting with an OCI image index.\ntype ImageIndex interface {\n\t// MediaType of this image's manifest.\n\tMediaType() (types.MediaType, error)\n\n\t// Digest returns the sha256 of this index's manifest.\n\tDigest() (Hash, error)\n\n\t// Size returns the size of the manifest.\n\tSize() (int64, error)\n\n\t// IndexManifest returns this image index's manifest object.\n\tIndexManifest() (*IndexManifest, error)\n\n\t// RawManifest returns the serialized bytes of IndexManifest().\n\tRawManifest() ([]byte, error)\n\n\t// Image returns a v1.Image that this ImageIndex references.\n\tImage(Hash) (Image, error)\n\n\t// ImageIndex returns a v1.ImageIndex that this ImageIndex references.\n\tImageIndex(Hash) (ImageIndex, error)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layer.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"io\"\n\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Layer is an interface for accessing the properties of a particular layer of a v1.Image\ntype Layer interface {\n\t// Digest returns the Hash of the compressed layer.\n\tDigest() (Hash, error)\n\n\t// DiffID returns the Hash of the uncompressed layer.\n\tDiffID() (Hash, error)\n\n\t// Compressed returns an io.ReadCloser for the compressed layer contents.\n\tCompressed() (io.ReadCloser, error)\n\n\t// Uncompressed returns an io.ReadCloser for the uncompressed layer contents.\n\tUncompressed() (io.ReadCloser, error)\n\n\t// Size returns the compressed size of the Layer.\n\tSize() (int64, error)\n\n\t// MediaType returns the media type of the Layer.\n\tMediaType() (types.MediaType, error)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/README.md",
    "content": "# `layout`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/layout?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/layout)\n\nThe `layout` package implements support for interacting with an [OCI Image Layout](https://github.com/opencontainers/image-spec/blob/master/image-layout.md).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/blob.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 layout\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\n// Blob returns a blob with the given hash from the Path.\nfunc (l Path) Blob(h v1.Hash) (io.ReadCloser, error) {\n\treturn os.Open(l.blobPath(h))\n}\n\n// Bytes is a convenience function to return a blob from the Path as\n// a byte slice.\nfunc (l Path) Bytes(h v1.Hash) ([]byte, error) {\n\treturn os.ReadFile(l.blobPath(h))\n}\n\nfunc (l Path) blobPath(h v1.Hash) string {\n\treturn l.path(\"blobs\", h.Algorithm, h.Hex)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 layout provides facilities for reading/writing artifacts from/to\n// an OCI image layout on disk, see:\n//\n// https://github.com/opencontainers/image-spec/blob/master/image-layout.md\npackage layout\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/gc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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// This is an EXPERIMENTAL package, and may change in arbitrary ways without notice.\npackage layout\n\nimport (\n\t\"fmt\"\n\t\"io/fs\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\n// GarbageCollect removes unreferenced blobs from the oci-layout\n//\n//\tThis is an experimental api, and not subject to any stability guarantees\n//\tWe may abandon it at any time, without prior notice.\n//\tDeprecated: Use it at your own risk!\nfunc (l Path) GarbageCollect() ([]v1.Hash, error) {\n\tidx, err := l.ImageIndex()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tblobsToKeep := map[string]bool{}\n\tif err := l.garbageCollectImageIndex(idx, blobsToKeep); err != nil {\n\t\treturn nil, err\n\t}\n\tblobsDir := l.path(\"blobs\")\n\tremovedBlobs := []v1.Hash{}\n\n\terr = filepath.WalkDir(blobsDir, func(path string, d fs.DirEntry, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif d.IsDir() {\n\t\t\treturn nil\n\t\t}\n\n\t\trel, err := filepath.Rel(blobsDir, path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thashString := strings.Replace(rel, \"/\", \":\", 1)\n\t\tif present := blobsToKeep[hashString]; !present {\n\t\t\th, err := v1.NewHash(hashString)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tremovedBlobs = append(removedBlobs, h)\n\t\t}\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn removedBlobs, nil\n}\n\nfunc (l Path) garbageCollectImageIndex(index v1.ImageIndex, blobsToKeep map[string]bool) error {\n\tidxm, err := index.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\th, err := index.Digest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tblobsToKeep[h.String()] = true\n\n\tfor _, descriptor := range idxm.Manifests {\n\t\tif descriptor.MediaType.IsImage() {\n\t\t\timg, err := index.Image(descriptor.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := l.garbageCollectImage(img, blobsToKeep); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else if descriptor.MediaType.IsIndex() {\n\t\t\tidx, err := index.ImageIndex(descriptor.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := l.garbageCollectImageIndex(idx, blobsToKeep); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"gc: unknown media type: %s\", descriptor.MediaType)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (l Path) garbageCollectImage(image v1.Image, blobsToKeep map[string]bool) error {\n\th, err := image.Digest()\n\tif err != nil {\n\t\treturn err\n\t}\n\tblobsToKeep[h.String()] = true\n\n\th, err = image.ConfigName()\n\tif err != nil {\n\t\treturn err\n\t}\n\tblobsToKeep[h.String()] = true\n\n\tls, err := image.Layers()\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor _, l := range ls {\n\t\th, err := l.Digest()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tblobsToKeep[h.String()] = true\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 layout\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sync\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype layoutImage struct {\n\tpath         Path\n\tdesc         v1.Descriptor\n\tmanifestLock sync.Mutex // Protects rawManifest\n\trawManifest  []byte\n}\n\nvar _ partial.CompressedImageCore = (*layoutImage)(nil)\n\n// Image reads a v1.Image with digest h from the Path.\nfunc (l Path) Image(h v1.Hash) (v1.Image, error) {\n\tii, err := l.ImageIndex()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ii.Image(h)\n}\n\nfunc (li *layoutImage) MediaType() (types.MediaType, error) {\n\treturn li.desc.MediaType, nil\n}\n\n// Implements WithManifest for partial.Blobset.\nfunc (li *layoutImage) Manifest() (*v1.Manifest, error) {\n\treturn partial.Manifest(li)\n}\n\nfunc (li *layoutImage) RawManifest() ([]byte, error) {\n\tli.manifestLock.Lock()\n\tdefer li.manifestLock.Unlock()\n\tif li.rawManifest != nil {\n\t\treturn li.rawManifest, nil\n\t}\n\n\tb, err := li.path.Bytes(li.desc.Digest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tli.rawManifest = b\n\treturn li.rawManifest, nil\n}\n\nfunc (li *layoutImage) RawConfigFile() ([]byte, error) {\n\tmanifest, err := li.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn li.path.Bytes(manifest.Config.Digest)\n}\n\nfunc (li *layoutImage) LayerByDigest(h v1.Hash) (partial.CompressedLayer, error) {\n\tmanifest, err := li.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif h == manifest.Config.Digest {\n\t\treturn &compressedBlob{\n\t\t\tpath: li.path,\n\t\t\tdesc: manifest.Config,\n\t\t}, nil\n\t}\n\n\tfor _, desc := range manifest.Layers {\n\t\tif h == desc.Digest {\n\t\t\treturn &compressedBlob{\n\t\t\t\tpath: li.path,\n\t\t\t\tdesc: desc,\n\t\t\t}, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"could not find layer in image: %s\", h)\n}\n\ntype compressedBlob struct {\n\tpath Path\n\tdesc v1.Descriptor\n}\n\nfunc (b *compressedBlob) Digest() (v1.Hash, error) {\n\treturn b.desc.Digest, nil\n}\n\nfunc (b *compressedBlob) Compressed() (io.ReadCloser, error) {\n\treturn b.path.Blob(b.desc.Digest)\n}\n\nfunc (b *compressedBlob) Size() (int64, error) {\n\treturn b.desc.Size, nil\n}\n\nfunc (b *compressedBlob) MediaType() (types.MediaType, error) {\n\treturn b.desc.MediaType, nil\n}\n\n// Descriptor implements partial.withDescriptor.\nfunc (b *compressedBlob) Descriptor() (*v1.Descriptor, error) {\n\treturn &b.desc, nil\n}\n\n// See partial.Exists.\nfunc (b *compressedBlob) Exists() (bool, error) {\n\t_, err := os.Stat(b.path.blobPath(b.desc.Digest))\n\tif os.IsNotExist(err) {\n\t\treturn false, nil\n\t}\n\treturn err == nil, err\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/index.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 layout\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nvar _ v1.ImageIndex = (*layoutIndex)(nil)\n\ntype layoutIndex struct {\n\tmediaType types.MediaType\n\tpath      Path\n\trawIndex  []byte\n}\n\n// ImageIndexFromPath is a convenience function which constructs a Path and returns its v1.ImageIndex.\nfunc ImageIndexFromPath(path string) (v1.ImageIndex, error) {\n\tlp, err := FromPath(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn lp.ImageIndex()\n}\n\n// ImageIndex returns a v1.ImageIndex for the Path.\nfunc (l Path) ImageIndex() (v1.ImageIndex, error) {\n\trawIndex, err := os.ReadFile(l.path(\"index.json\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tidx := &layoutIndex{\n\t\tmediaType: types.OCIImageIndex,\n\t\tpath:      l,\n\t\trawIndex:  rawIndex,\n\t}\n\n\treturn idx, nil\n}\n\nfunc (i *layoutIndex) MediaType() (types.MediaType, error) {\n\treturn i.mediaType, nil\n}\n\nfunc (i *layoutIndex) Digest() (v1.Hash, error) {\n\treturn partial.Digest(i)\n}\n\nfunc (i *layoutIndex) Size() (int64, error) {\n\treturn partial.Size(i)\n}\n\nfunc (i *layoutIndex) IndexManifest() (*v1.IndexManifest, error) {\n\tvar index v1.IndexManifest\n\terr := json.Unmarshal(i.rawIndex, &index)\n\treturn &index, err\n}\n\nfunc (i *layoutIndex) RawManifest() ([]byte, error) {\n\treturn i.rawIndex, nil\n}\n\nfunc (i *layoutIndex) Image(h v1.Hash) (v1.Image, error) {\n\t// Look up the digest in our manifest first to return a better error.\n\tdesc, err := i.findDescriptor(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !isExpectedMediaType(desc.MediaType, types.OCIManifestSchema1, types.DockerManifestSchema2) {\n\t\treturn nil, fmt.Errorf(\"unexpected media type for %v: %s\", h, desc.MediaType)\n\t}\n\n\timg := &layoutImage{\n\t\tpath: i.path,\n\t\tdesc: *desc,\n\t}\n\treturn partial.CompressedToImage(img)\n}\n\nfunc (i *layoutIndex) ImageIndex(h v1.Hash) (v1.ImageIndex, error) {\n\t// Look up the digest in our manifest first to return a better error.\n\tdesc, err := i.findDescriptor(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !isExpectedMediaType(desc.MediaType, types.OCIImageIndex, types.DockerManifestList) {\n\t\treturn nil, fmt.Errorf(\"unexpected media type for %v: %s\", h, desc.MediaType)\n\t}\n\n\trawIndex, err := i.path.Bytes(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &layoutIndex{\n\t\tmediaType: desc.MediaType,\n\t\tpath:      i.path,\n\t\trawIndex:  rawIndex,\n\t}, nil\n}\n\nfunc (i *layoutIndex) Blob(h v1.Hash) (io.ReadCloser, error) {\n\treturn i.path.Blob(h)\n}\n\nfunc (i *layoutIndex) findDescriptor(h v1.Hash) (*v1.Descriptor, error) {\n\tim, err := i.IndexManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif h == (v1.Hash{}) {\n\t\tif len(im.Manifests) != 1 {\n\t\t\treturn nil, errors.New(\"oci layout must contain only a single image to be used with layout.Image\")\n\t\t}\n\t\treturn &(im.Manifests)[0], nil\n\t}\n\n\tfor _, desc := range im.Manifests {\n\t\tif desc.Digest == h {\n\t\t\treturn &desc, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"could not find descriptor in index: %s\", h)\n}\n\n// TODO: Pull this out into methods on types.MediaType? e.g. instead, have:\n// * mt.IsIndex()\n// * mt.IsImage()\nfunc isExpectedMediaType(mt types.MediaType, expected ...types.MediaType) bool {\n\tfor _, allowed := range expected {\n\t\tif mt == allowed {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/layoutpath.go",
    "content": "// Copyright 2019 The original author or 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\npackage layout\n\nimport \"path/filepath\"\n\n// Path represents an OCI image layout rooted in a file system path\ntype Path string\n\nfunc (l Path) path(elem ...string) string {\n\tcomplete := []string{string(l)}\n\treturn filepath.Join(append(complete, elem...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/options.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 layout\n\nimport v1 \"github.com/google/go-containerregistry/pkg/v1\"\n\n// Option is a functional option for Layout.\ntype Option func(*options)\n\ntype options struct {\n\tdescOpts []descriptorOption\n}\n\nfunc makeOptions(opts ...Option) *options {\n\to := &options{\n\t\tdescOpts: []descriptorOption{},\n\t}\n\tfor _, apply := range opts {\n\t\tapply(o)\n\t}\n\treturn o\n}\n\ntype descriptorOption func(*v1.Descriptor)\n\n// WithAnnotations adds annotations to the artifact descriptor.\nfunc WithAnnotations(annotations map[string]string) Option {\n\treturn func(o *options) {\n\t\to.descOpts = append(o.descOpts, func(desc *v1.Descriptor) {\n\t\t\tif desc.Annotations == nil {\n\t\t\t\tdesc.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tfor k, v := range annotations {\n\t\t\t\tdesc.Annotations[k] = v\n\t\t\t}\n\t\t})\n\t}\n}\n\n// WithURLs adds urls to the artifact descriptor.\nfunc WithURLs(urls []string) Option {\n\treturn func(o *options) {\n\t\to.descOpts = append(o.descOpts, func(desc *v1.Descriptor) {\n\t\t\tif desc.URLs == nil {\n\t\t\t\tdesc.URLs = []string{}\n\t\t\t}\n\t\t\tdesc.URLs = append(desc.URLs, urls...)\n\t\t})\n\t}\n}\n\n// WithPlatform sets the platform of the artifact descriptor.\nfunc WithPlatform(platform v1.Platform) Option {\n\treturn func(o *options) {\n\t\to.descOpts = append(o.descOpts, func(desc *v1.Descriptor) {\n\t\t\tdesc.Platform = &platform\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/read.go",
    "content": "// Copyright 2019 The original author or 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\npackage layout\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\n// FromPath reads an OCI image layout at path and constructs a layout.Path.\nfunc FromPath(path string) (Path, error) {\n\t// TODO: check oci-layout exists\n\n\t_, err := os.Stat(filepath.Join(path, \"index.json\"))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn Path(path), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/layout/write.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 layout\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/match\"\n\t\"github.com/google/go-containerregistry/pkg/v1/mutate\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\nvar layoutFile = `{\n    \"imageLayoutVersion\": \"1.0.0\"\n}`\n\n// renameMutex guards os.Rename calls in AppendImage on Windows only.\nvar renameMutex sync.Mutex\n\n// AppendImage writes a v1.Image to the Path and updates\n// the index.json to reference it.\nfunc (l Path) AppendImage(img v1.Image, options ...Option) error {\n\tif err := l.WriteImage(img); err != nil {\n\t\treturn err\n\t}\n\n\tdesc, err := partial.Descriptor(img)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\to := makeOptions(options...)\n\tfor _, opt := range o.descOpts {\n\t\topt(desc)\n\t}\n\n\treturn l.AppendDescriptor(*desc)\n}\n\n// AppendIndex writes a v1.ImageIndex to the Path and updates\n// the index.json to reference it.\nfunc (l Path) AppendIndex(ii v1.ImageIndex, options ...Option) error {\n\tif err := l.WriteIndex(ii); err != nil {\n\t\treturn err\n\t}\n\n\tdesc, err := partial.Descriptor(ii)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\to := makeOptions(options...)\n\tfor _, opt := range o.descOpts {\n\t\topt(desc)\n\t}\n\n\treturn l.AppendDescriptor(*desc)\n}\n\n// AppendDescriptor adds a descriptor to the index.json of the Path.\nfunc (l Path) AppendDescriptor(desc v1.Descriptor) error {\n\tii, err := l.ImageIndex()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tindex, err := ii.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tindex.Manifests = append(index.Manifests, desc)\n\n\trawIndex, err := json.MarshalIndent(index, \"\", \"   \")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn l.WriteFile(\"index.json\", rawIndex, os.ModePerm)\n}\n\n// ReplaceImage writes a v1.Image to the Path and updates\n// the index.json to reference it, replacing any existing one that matches matcher, if found.\nfunc (l Path) ReplaceImage(img v1.Image, matcher match.Matcher, options ...Option) error {\n\tif err := l.WriteImage(img); err != nil {\n\t\treturn err\n\t}\n\n\treturn l.replaceDescriptor(img, matcher, options...)\n}\n\n// ReplaceIndex writes a v1.ImageIndex to the Path and updates\n// the index.json to reference it, replacing any existing one that matches matcher, if found.\nfunc (l Path) ReplaceIndex(ii v1.ImageIndex, matcher match.Matcher, options ...Option) error {\n\tif err := l.WriteIndex(ii); err != nil {\n\t\treturn err\n\t}\n\n\treturn l.replaceDescriptor(ii, matcher, options...)\n}\n\n// replaceDescriptor adds a descriptor to the index.json of the Path, replacing\n// any one matching matcher, if found.\nfunc (l Path) replaceDescriptor(appendable mutate.Appendable, matcher match.Matcher, options ...Option) error {\n\tii, err := l.ImageIndex()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdesc, err := partial.Descriptor(appendable)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\to := makeOptions(options...)\n\tfor _, opt := range o.descOpts {\n\t\topt(desc)\n\t}\n\n\tadd := mutate.IndexAddendum{\n\t\tAdd:        appendable,\n\t\tDescriptor: *desc,\n\t}\n\tii = mutate.AppendManifests(mutate.RemoveManifests(ii, matcher), add)\n\n\tindex, err := ii.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trawIndex, err := json.MarshalIndent(index, \"\", \"   \")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn l.WriteFile(\"index.json\", rawIndex, os.ModePerm)\n}\n\n// RemoveDescriptors removes any descriptors that match the match.Matcher from the index.json of the Path.\nfunc (l Path) RemoveDescriptors(matcher match.Matcher) error {\n\tii, err := l.ImageIndex()\n\tif err != nil {\n\t\treturn err\n\t}\n\tii = mutate.RemoveManifests(ii, matcher)\n\n\tindex, err := ii.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trawIndex, err := json.MarshalIndent(index, \"\", \"   \")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn l.WriteFile(\"index.json\", rawIndex, os.ModePerm)\n}\n\n// WriteFile write a file with arbitrary data at an arbitrary location in a v1\n// layout. Used mostly internally to write files like \"oci-layout\" and\n// \"index.json\", also can be used to write other arbitrary files. Do *not* use\n// this to write blobs. Use only WriteBlob() for that.\nfunc (l Path) WriteFile(name string, data []byte, perm os.FileMode) error {\n\tif err := os.MkdirAll(l.path(), os.ModePerm); err != nil && !os.IsExist(err) {\n\t\treturn err\n\t}\n\n\treturn os.WriteFile(l.path(name), data, perm)\n}\n\n// WriteBlob copies a file to the blobs/ directory in the Path from the given ReadCloser at\n// blobs/{hash.Algorithm}/{hash.Hex}.\nfunc (l Path) WriteBlob(hash v1.Hash, r io.ReadCloser) error {\n\treturn l.writeBlob(hash, -1, r, nil)\n}\n\nfunc (l Path) writeBlob(hash v1.Hash, size int64, rc io.ReadCloser, renamer func() (v1.Hash, error)) error {\n\tdefer rc.Close()\n\tif hash.Hex == \"\" && renamer == nil {\n\t\tpanic(\"writeBlob called an invalid hash and no renamer\")\n\t}\n\n\tdir := l.path(\"blobs\", hash.Algorithm)\n\tif err := os.MkdirAll(dir, os.ModePerm); err != nil && !os.IsExist(err) {\n\t\treturn err\n\t}\n\n\t// Check if blob already exists and is the correct size\n\tfile := filepath.Join(dir, hash.Hex)\n\tif s, err := os.Stat(file); err == nil && !s.IsDir() && (s.Size() == size || size == -1) {\n\t\treturn nil\n\t}\n\n\t// If a renamer func was provided write to a temporary file\n\topen := func() (*os.File, error) { return os.Create(file) }\n\tif renamer != nil {\n\t\topen = func() (*os.File, error) { return os.CreateTemp(dir, hash.Hex) }\n\t}\n\tw, err := open()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif renamer != nil {\n\t\t// Delete temp file if an error is encountered before renaming\n\t\tdefer func() {\n\t\t\tif err := os.Remove(w.Name()); err != nil && !errors.Is(err, os.ErrNotExist) {\n\t\t\t\tlogs.Warn.Printf(\"error removing temporary file after encountering an error while writing blob: %v\", err)\n\t\t\t}\n\t\t}()\n\t}\n\tdefer w.Close()\n\n\t// Write to file and exit if not renaming\n\tif n, err := io.Copy(w, rc); err != nil || renamer == nil {\n\t\treturn err\n\t} else if size != -1 && n != size {\n\t\treturn fmt.Errorf(\"expected blob size %d, but only wrote %d\", size, n)\n\t}\n\n\t// Always close reader before renaming, since Close computes the digest in\n\t// the case of streaming layers. If Close is not called explicitly, it will\n\t// occur in a goroutine that is not guaranteed to succeed before renamer is\n\t// called. When renamer is the layer's Digest method, it can return\n\t// ErrNotComputed.\n\tif err := rc.Close(); err != nil {\n\t\treturn err\n\t}\n\n\t// Always close file before renaming\n\tif err := w.Close(); err != nil {\n\t\treturn err\n\t}\n\n\t// Rename file based on the final hash\n\tfinalHash, err := renamer()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error getting final digest of layer: %w\", err)\n\t}\n\n\trenamePath := l.path(\"blobs\", finalHash.Algorithm, finalHash.Hex)\n\n\tif runtime.GOOS == \"windows\" {\n\t\trenameMutex.Lock()\n\t\tdefer renameMutex.Unlock()\n\t}\n\treturn os.Rename(w.Name(), renamePath)\n}\n\n// writeLayer writes the compressed layer to a blob. Unlike WriteBlob it will\n// write to a temporary file (suffixed with .tmp) within the layout until the\n// compressed reader is fully consumed and written to disk. Also unlike\n// WriteBlob, it will not skip writing and exit without error when a blob file\n// exists, but does not have the correct size. (The blob hash is not\n// considered, because it may be expensive to compute.)\nfunc (l Path) writeLayer(layer v1.Layer) error {\n\td, err := layer.Digest()\n\tif errors.Is(err, stream.ErrNotComputed) {\n\t\t// Allow digest errors, since streams may not have calculated the hash\n\t\t// yet. Instead, use an empty value, which will be transformed into a\n\t\t// random file name with `os.CreateTemp` and the final digest will be\n\t\t// calculated after writing to a temp file and before renaming to the\n\t\t// final path.\n\t\td = v1.Hash{Algorithm: \"sha256\", Hex: \"\"}\n\t} else if err != nil {\n\t\treturn err\n\t}\n\n\ts, err := layer.Size()\n\tif errors.Is(err, stream.ErrNotComputed) {\n\t\t// Allow size errors, since streams may not have calculated the size\n\t\t// yet. Instead, use zero as a sentinel value meaning that no size\n\t\t// comparison can be done and any sized blob file should be considered\n\t\t// valid and not overwritten.\n\t\t//\n\t\t// TODO: Provide an option to always overwrite blobs.\n\t\ts = -1\n\t} else if err != nil {\n\t\treturn err\n\t}\n\n\tr, err := layer.Compressed()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := l.writeBlob(d, s, r, layer.Digest); err != nil {\n\t\treturn fmt.Errorf(\"error writing layer: %w\", err)\n\t}\n\treturn nil\n}\n\n// RemoveBlob removes a file from the blobs directory in the Path\n// at blobs/{hash.Algorithm}/{hash.Hex}\n// It does *not* remove any reference to it from other manifests or indexes, or\n// from the root index.json.\nfunc (l Path) RemoveBlob(hash v1.Hash) error {\n\tdir := l.path(\"blobs\", hash.Algorithm)\n\terr := os.Remove(filepath.Join(dir, hash.Hex))\n\tif err != nil && !os.IsNotExist(err) {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// WriteImage writes an image, including its manifest, config and all of its\n// layers, to the blobs directory. If any blob already exists, as determined by\n// the hash filename, does not write it.\n// This function does *not* update the `index.json` file. If you want to write the\n// image and also update the `index.json`, call AppendImage(), which wraps this\n// and also updates the `index.json`.\nfunc (l Path) WriteImage(img v1.Image) error {\n\tlayers, err := img.Layers()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Write the layers concurrently.\n\tvar g errgroup.Group\n\tfor _, layer := range layers {\n\t\tlayer := layer\n\t\tg.Go(func() error {\n\t\t\treturn l.writeLayer(layer)\n\t\t})\n\t}\n\tif err := g.Wait(); err != nil {\n\t\treturn err\n\t}\n\n\t// Write the config.\n\tcfgName, err := img.ConfigName()\n\tif err != nil {\n\t\treturn err\n\t}\n\tcfgBlob, err := img.RawConfigFile()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := l.WriteBlob(cfgName, io.NopCloser(bytes.NewReader(cfgBlob))); err != nil {\n\t\treturn err\n\t}\n\n\t// Write the img manifest.\n\td, err := img.Digest()\n\tif err != nil {\n\t\treturn err\n\t}\n\tmanifest, err := img.RawManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn l.WriteBlob(d, io.NopCloser(bytes.NewReader(manifest)))\n}\n\ntype withLayer interface {\n\tLayer(v1.Hash) (v1.Layer, error)\n}\n\ntype withBlob interface {\n\tBlob(v1.Hash) (io.ReadCloser, error)\n}\n\nfunc (l Path) writeIndexToFile(indexFile string, ii v1.ImageIndex) error {\n\tindex, err := ii.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Walk the descriptors and write any v1.Image or v1.ImageIndex that we find.\n\t// If we come across something we don't expect, just write it as a blob.\n\tfor _, desc := range index.Manifests {\n\t\tswitch desc.MediaType {\n\t\tcase types.OCIImageIndex, types.DockerManifestList:\n\t\t\tii, err := ii.ImageIndex(desc.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := l.WriteIndex(ii); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase types.OCIManifestSchema1, types.DockerManifestSchema2:\n\t\t\timg, err := ii.Image(desc.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := l.WriteImage(img); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\t// TODO: The layout could reference arbitrary things, which we should\n\t\t\t// probably just pass through.\n\n\t\t\tvar blob io.ReadCloser\n\t\t\t// Workaround for #819.\n\t\t\tif wl, ok := ii.(withLayer); ok {\n\t\t\t\tlayer, lerr := wl.Layer(desc.Digest)\n\t\t\t\tif lerr != nil {\n\t\t\t\t\treturn lerr\n\t\t\t\t}\n\t\t\t\tblob, err = layer.Compressed()\n\t\t\t} else if wb, ok := ii.(withBlob); ok {\n\t\t\t\tblob, err = wb.Blob(desc.Digest)\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := l.WriteBlob(desc.Digest, blob); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\trawIndex, err := ii.RawManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn l.WriteFile(indexFile, rawIndex, os.ModePerm)\n}\n\n// WriteIndex writes an index to the blobs directory. Walks down the children,\n// including its children manifests and/or indexes, and down the tree until all of\n// config and all layers, have been written. If any blob already exists, as determined by\n// the hash filename, does not write it.\n// This function does *not* update the `index.json` file. If you want to write the\n// index and also update the `index.json`, call AppendIndex(), which wraps this\n// and also updates the `index.json`.\nfunc (l Path) WriteIndex(ii v1.ImageIndex) error {\n\t// Always just write oci-layout file, since it's small.\n\tif err := l.WriteFile(\"oci-layout\", []byte(layoutFile), os.ModePerm); err != nil {\n\t\treturn err\n\t}\n\n\th, err := ii.Digest()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tindexFile := filepath.Join(\"blobs\", h.Algorithm, h.Hex)\n\treturn l.writeIndexToFile(indexFile, ii)\n}\n\n// Write constructs a Path at path from an ImageIndex.\n//\n// The contents are written in the following format:\n// At the top level, there is:\n//\n//\tOne oci-layout file containing the version of this image-layout.\n//\tOne index.json file listing descriptors for the contained images.\n//\n// Under blobs/, there is, for each image:\n//\n//\tOne file for each layer, named after the layer's SHA.\n//\tOne file for each config blob, named after its SHA.\n//\tOne file for each manifest blob, named after its SHA.\nfunc Write(path string, ii v1.ImageIndex) (Path, error) {\n\tlp := Path(path)\n\t// Always just write oci-layout file, since it's small.\n\tif err := lp.WriteFile(\"oci-layout\", []byte(layoutFile), os.ModePerm); err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// TODO create blobs/ in case there is a blobs file which would prevent the directory from being created\n\n\treturn lp, lp.writeIndexToFile(\"index.json\", ii)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Manifest represents the OCI image manifest in a structured way.\ntype Manifest struct {\n\tSchemaVersion int64             `json:\"schemaVersion\"`\n\tMediaType     types.MediaType   `json:\"mediaType,omitempty\"`\n\tConfig        Descriptor        `json:\"config\"`\n\tLayers        []Descriptor      `json:\"layers\"`\n\tAnnotations   map[string]string `json:\"annotations,omitempty\"`\n\tSubject       *Descriptor       `json:\"subject,omitempty\"`\n}\n\n// IndexManifest represents an OCI image index in a structured way.\ntype IndexManifest struct {\n\tSchemaVersion int64             `json:\"schemaVersion\"`\n\tMediaType     types.MediaType   `json:\"mediaType,omitempty\"`\n\tManifests     []Descriptor      `json:\"manifests\"`\n\tAnnotations   map[string]string `json:\"annotations,omitempty\"`\n\tSubject       *Descriptor       `json:\"subject,omitempty\"`\n}\n\n// Descriptor holds a reference from the manifest to one of its constituent elements.\ntype Descriptor struct {\n\tMediaType    types.MediaType   `json:\"mediaType\"`\n\tSize         int64             `json:\"size\"`\n\tDigest       Hash              `json:\"digest\"`\n\tData         []byte            `json:\"data,omitempty\"`\n\tURLs         []string          `json:\"urls,omitempty\"`\n\tAnnotations  map[string]string `json:\"annotations,omitempty\"`\n\tPlatform     *Platform         `json:\"platform,omitempty\"`\n\tArtifactType string            `json:\"artifactType,omitempty\"`\n}\n\n// ParseManifest parses the io.Reader's contents into a Manifest.\nfunc ParseManifest(r io.Reader) (*Manifest, error) {\n\tm := Manifest{}\n\tif err := json.NewDecoder(r).Decode(&m); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &m, nil\n}\n\n// ParseIndexManifest parses the io.Reader's contents into an IndexManifest.\nfunc ParseIndexManifest(r io.Reader) (*IndexManifest, error) {\n\tim := IndexManifest{}\n\tif err := json.NewDecoder(r).Decode(&im); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &im, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/match/match.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 match provides functionality for conveniently matching a v1.Descriptor.\npackage match\n\nimport (\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\timagespec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// Matcher function that is given a v1.Descriptor, and returns whether or\n// not it matches a given rule. Can match on anything it wants in the Descriptor.\ntype Matcher func(desc v1.Descriptor) bool\n\n// Name returns a match.Matcher that matches based on the value of the\n//\n//\t\"org.opencontainers.image.ref.name\" annotation:\n//\n// github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md#pre-defined-annotation-keys\nfunc Name(name string) Matcher {\n\treturn Annotation(imagespec.AnnotationRefName, name)\n}\n\n// Annotation returns a match.Matcher that matches based on the provided annotation.\nfunc Annotation(key, value string) Matcher {\n\treturn func(desc v1.Descriptor) bool {\n\t\tif desc.Annotations == nil {\n\t\t\treturn false\n\t\t}\n\t\tif aValue, ok := desc.Annotations[key]; ok && aValue == value {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n}\n\n// Platforms returns a match.Matcher that matches on any one of the provided platforms.\n// Ignores any descriptors that do not have a platform.\nfunc Platforms(platforms ...v1.Platform) Matcher {\n\treturn func(desc v1.Descriptor) bool {\n\t\tif desc.Platform == nil {\n\t\t\treturn false\n\t\t}\n\t\tfor _, platform := range platforms {\n\t\t\tif desc.Platform.Equals(platform) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n}\n\n// MediaTypes returns a match.Matcher that matches at least one of the provided media types.\nfunc MediaTypes(mediaTypes ...string) Matcher {\n\tmts := map[string]bool{}\n\tfor _, media := range mediaTypes {\n\t\tmts[media] = true\n\t}\n\treturn func(desc v1.Descriptor) bool {\n\t\tif desc.MediaType == \"\" {\n\t\t\treturn false\n\t\t}\n\t\tif _, ok := mts[string(desc.MediaType)]; ok {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n}\n\n// Digests returns a match.Matcher that matches at least one of the provided Digests\nfunc Digests(digests ...v1.Hash) Matcher {\n\tdigs := map[v1.Hash]bool{}\n\tfor _, digest := range digests {\n\t\tdigs[digest] = true\n\t}\n\treturn func(desc v1.Descriptor) bool {\n\t\t_, ok := digs[desc.Digest]\n\t\treturn ok\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/README.md",
    "content": "# `mutate`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/mutate?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/mutate)\n\nThe `v1.Image`, `v1.ImageIndex`, and `v1.Layer` interfaces provide only\naccessor methods, so they are essentially immutable. If you want to change\nsomething about them, you need to produce a new instance of that interface.\n\nA common use case for this library is to read an image from somewhere (a source),\nchange something about it, and write the image somewhere else (a sink).\n\nGraphically, this looks something like:\n\n<p align=\"center\">\n  <img src=\"/images/mutate.dot.svg\" />\n</p>\n\n## Mutations\n\nThis is obviously not a comprehensive set of useful transformations (PRs welcome!),\nbut a rough summary of what the `mutate` package currently does:\n\n### `Config` and `ConfigFile`\n\nThese allow you to change the [image configuration](https://github.com/opencontainers/image-spec/blob/master/config.md#properties),\ne.g. to change the entrypoint, environment, author, etc.\n\n### `Time`, `Canonical`, and `CreatedAt`\n\nThese are useful in the context of [reproducible builds](https://reproducible-builds.org/),\nwhere you may want to strip timestamps and other non-reproducible information.\n\n### `Append`, `AppendLayers`, and `AppendManifests`\n\nThese functions allow the extension of a `v1.Image` or `v1.ImageIndex` with\nnew layers or manifests.\n\nFor constructing an image `FROM scratch`, see the [`empty`](/pkg/v1/empty) package.\n\n### `MediaType` and `IndexMediaType`\n\nSometimes, it is necessary to change the media type of an image or index,\ne.g. to appease a registry with strict validation of images (_looking at you, GCR_).\n\n### `Rebase`\n\nRebase has [its own README](/cmd/crane/rebase.md).\n\nThis is the underlying implementation of [`crane rebase`](https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane_rebase.md).\n\n### `Extract`\n\nExtract will flatten an image filesystem into a single tar stream,\nrespecting whiteout files.\n\nThis is the underlying implementation of [`crane export`](https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane_export.md).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 mutate provides facilities for mutating v1.Images of any kind.\npackage mutate\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/image.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 mutate\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"sync\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype image struct {\n\tbase v1.Image\n\tadds []Addendum\n\n\tcomputed        bool\n\tconfigFile      *v1.ConfigFile\n\tmanifest        *v1.Manifest\n\tannotations     map[string]string\n\tmediaType       *types.MediaType\n\tconfigMediaType *types.MediaType\n\tdiffIDMap       map[v1.Hash]v1.Layer\n\tdigestMap       map[v1.Hash]v1.Layer\n\tsubject         *v1.Descriptor\n\n\tsync.Mutex\n}\n\nvar _ v1.Image = (*image)(nil)\n\nfunc (i *image) MediaType() (types.MediaType, error) {\n\tif i.mediaType != nil {\n\t\treturn *i.mediaType, nil\n\t}\n\treturn i.base.MediaType()\n}\n\nfunc (i *image) compute() error {\n\ti.Lock()\n\tdefer i.Unlock()\n\n\t// Don't re-compute if already computed.\n\tif i.computed {\n\t\treturn nil\n\t}\n\tvar configFile *v1.ConfigFile\n\tif i.configFile != nil {\n\t\tconfigFile = i.configFile\n\t} else {\n\t\tcf, err := i.base.ConfigFile()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconfigFile = cf.DeepCopy()\n\t}\n\tdiffIDs := configFile.RootFS.DiffIDs\n\thistory := configFile.History\n\n\tdiffIDMap := make(map[v1.Hash]v1.Layer)\n\tdigestMap := make(map[v1.Hash]v1.Layer)\n\n\tfor _, add := range i.adds {\n\t\thistory = append(history, add.History)\n\t\tif add.Layer != nil {\n\t\t\tdiffID, err := add.Layer.DiffID()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdiffIDs = append(diffIDs, diffID)\n\t\t\tdiffIDMap[diffID] = add.Layer\n\t\t}\n\t}\n\n\tm, err := i.base.Manifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\tmanifest := m.DeepCopy()\n\tmanifestLayers := manifest.Layers\n\tfor _, add := range i.adds {\n\t\tif add.Layer == nil {\n\t\t\t// Empty layers include only history in manifest.\n\t\t\tcontinue\n\t\t}\n\n\t\tdesc, err := partial.Descriptor(add.Layer)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Fields in the addendum override the original descriptor.\n\t\tif len(add.Annotations) != 0 {\n\t\t\tdesc.Annotations = add.Annotations\n\t\t}\n\t\tif len(add.URLs) != 0 {\n\t\t\tdesc.URLs = add.URLs\n\t\t}\n\n\t\tif add.MediaType != \"\" {\n\t\t\tdesc.MediaType = add.MediaType\n\t\t}\n\n\t\tmanifestLayers = append(manifestLayers, *desc)\n\t\tdigestMap[desc.Digest] = add.Layer\n\t}\n\n\tconfigFile.RootFS.DiffIDs = diffIDs\n\tconfigFile.History = history\n\n\tmanifest.Layers = manifestLayers\n\n\trcfg, err := json.Marshal(configFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\td, sz, err := v1.SHA256(bytes.NewBuffer(rcfg))\n\tif err != nil {\n\t\treturn err\n\t}\n\tmanifest.Config.Digest = d\n\tmanifest.Config.Size = sz\n\n\t// If Data was set in the base image, we need to update it in the mutated image.\n\tif m.Config.Data != nil {\n\t\tmanifest.Config.Data = rcfg\n\t}\n\n\t// If the user wants to mutate the media type of the config\n\tif i.configMediaType != nil {\n\t\tmanifest.Config.MediaType = *i.configMediaType\n\t}\n\n\tif i.mediaType != nil {\n\t\tmanifest.MediaType = *i.mediaType\n\t}\n\n\tif i.annotations != nil {\n\t\tif manifest.Annotations == nil {\n\t\t\tmanifest.Annotations = map[string]string{}\n\t\t}\n\n\t\tfor k, v := range i.annotations {\n\t\t\tmanifest.Annotations[k] = v\n\t\t}\n\t}\n\tmanifest.Subject = i.subject\n\n\ti.configFile = configFile\n\ti.manifest = manifest\n\ti.diffIDMap = diffIDMap\n\ti.digestMap = digestMap\n\ti.computed = true\n\treturn nil\n}\n\n// Layers returns the ordered collection of filesystem layers that comprise this image.\n// The order of the list is oldest/base layer first, and most-recent/top layer last.\nfunc (i *image) Layers() ([]v1.Layer, error) {\n\tif err := i.compute(); errors.Is(err, stream.ErrNotComputed) {\n\t\t// Image contains a streamable layer which has not yet been\n\t\t// consumed. Just return the layers we have in case the caller\n\t\t// is going to consume the layers.\n\t\tlayers, err := i.base.Layers()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, add := range i.adds {\n\t\t\tlayers = append(layers, add.Layer)\n\t\t}\n\t\treturn layers, nil\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiffIDs, err := partial.DiffIDs(i)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tls := make([]v1.Layer, 0, len(diffIDs))\n\tfor _, h := range diffIDs {\n\t\tl, err := i.LayerByDiffID(h)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tls = append(ls, l)\n\t}\n\treturn ls, nil\n}\n\n// ConfigName returns the hash of the image's config file.\nfunc (i *image) ConfigName() (v1.Hash, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\treturn partial.ConfigName(i)\n}\n\n// ConfigFile returns this image's config file.\nfunc (i *image) ConfigFile() (*v1.ConfigFile, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.configFile.DeepCopy(), nil\n}\n\n// RawConfigFile returns the serialized bytes of ConfigFile()\nfunc (i *image) RawConfigFile() ([]byte, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(i.configFile)\n}\n\n// Digest returns the sha256 of this image's manifest.\nfunc (i *image) Digest() (v1.Hash, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\treturn partial.Digest(i)\n}\n\n// Size implements v1.Image.\nfunc (i *image) Size() (int64, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn -1, err\n\t}\n\treturn partial.Size(i)\n}\n\n// Manifest returns this image's Manifest object.\nfunc (i *image) Manifest() (*v1.Manifest, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.manifest.DeepCopy(), nil\n}\n\n// RawManifest returns the serialized bytes of Manifest()\nfunc (i *image) RawManifest() ([]byte, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(i.manifest)\n}\n\n// LayerByDigest returns a Layer for interacting with a particular layer of\n// the image, looking it up by \"digest\" (the compressed hash).\nfunc (i *image) LayerByDigest(h v1.Hash) (v1.Layer, error) {\n\tif cn, err := i.ConfigName(); err != nil {\n\t\treturn nil, err\n\t} else if h == cn {\n\t\treturn partial.ConfigLayer(i)\n\t}\n\tif layer, ok := i.digestMap[h]; ok {\n\t\treturn layer, nil\n\t}\n\treturn i.base.LayerByDigest(h)\n}\n\n// LayerByDiffID is an analog to LayerByDigest, looking up by \"diff id\"\n// (the uncompressed hash).\nfunc (i *image) LayerByDiffID(h v1.Hash) (v1.Layer, error) {\n\tif layer, ok := i.diffIDMap[h]; ok {\n\t\treturn layer, nil\n\t}\n\treturn i.base.LayerByDiffID(h)\n}\n\nfunc validate(adds []Addendum) error {\n\tfor _, add := range adds {\n\t\tif add.Layer == nil && !add.History.EmptyLayer {\n\t\t\treturn errors.New(\"unable to add a nil layer to the image\")\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/index.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 mutate\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/match\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nfunc computeDescriptor(ia IndexAddendum) (*v1.Descriptor, error) {\n\tdesc, err := partial.Descriptor(ia.Add)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The IndexAddendum allows overriding Descriptor values.\n\tif ia.Size != 0 {\n\t\tdesc.Size = ia.Size\n\t}\n\tif string(ia.MediaType) != \"\" {\n\t\tdesc.MediaType = ia.MediaType\n\t}\n\tif ia.Digest != (v1.Hash{}) {\n\t\tdesc.Digest = ia.Digest\n\t}\n\tif ia.Platform != nil {\n\t\tdesc.Platform = ia.Platform\n\t}\n\tif len(ia.URLs) != 0 {\n\t\tdesc.URLs = ia.URLs\n\t}\n\tif len(ia.Annotations) != 0 {\n\t\tdesc.Annotations = ia.Annotations\n\t}\n\tif ia.Data != nil {\n\t\tdesc.Data = ia.Data\n\t}\n\n\treturn desc, nil\n}\n\ntype index struct {\n\tbase v1.ImageIndex\n\tadds []IndexAddendum\n\t// remove is removed before adds\n\tremove match.Matcher\n\n\tcomputed    bool\n\tmanifest    *v1.IndexManifest\n\tannotations map[string]string\n\tmediaType   *types.MediaType\n\timageMap    map[v1.Hash]v1.Image\n\tindexMap    map[v1.Hash]v1.ImageIndex\n\tlayerMap    map[v1.Hash]v1.Layer\n\tsubject     *v1.Descriptor\n\n\tsync.Mutex\n}\n\nvar _ v1.ImageIndex = (*index)(nil)\n\nfunc (i *index) MediaType() (types.MediaType, error) {\n\tif i.mediaType != nil {\n\t\treturn *i.mediaType, nil\n\t}\n\treturn i.base.MediaType()\n}\n\nfunc (i *index) Size() (int64, error) { return partial.Size(i) }\n\nfunc (i *index) compute() error {\n\ti.Lock()\n\tdefer i.Unlock()\n\n\t// Don't re-compute if already computed.\n\tif i.computed {\n\t\treturn nil\n\t}\n\n\ti.imageMap = make(map[v1.Hash]v1.Image)\n\ti.indexMap = make(map[v1.Hash]v1.ImageIndex)\n\ti.layerMap = make(map[v1.Hash]v1.Layer)\n\n\tm, err := i.base.IndexManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\tmanifest := m.DeepCopy()\n\tmanifests := manifest.Manifests\n\n\tif i.remove != nil {\n\t\tvar cleanedManifests []v1.Descriptor\n\t\tfor _, m := range manifests {\n\t\t\tif !i.remove(m) {\n\t\t\t\tcleanedManifests = append(cleanedManifests, m)\n\t\t\t}\n\t\t}\n\t\tmanifests = cleanedManifests\n\t}\n\n\tfor _, add := range i.adds {\n\t\tdesc, err := computeDescriptor(add)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tmanifests = append(manifests, *desc)\n\t\tif idx, ok := add.Add.(v1.ImageIndex); ok {\n\t\t\ti.indexMap[desc.Digest] = idx\n\t\t} else if img, ok := add.Add.(v1.Image); ok {\n\t\t\ti.imageMap[desc.Digest] = img\n\t\t} else if l, ok := add.Add.(v1.Layer); ok {\n\t\t\ti.layerMap[desc.Digest] = l\n\t\t} else {\n\t\t\tlogs.Warn.Printf(\"Unexpected index addendum: %T\", add.Add)\n\t\t}\n\t}\n\n\tmanifest.Manifests = manifests\n\n\tif i.mediaType != nil {\n\t\tmanifest.MediaType = *i.mediaType\n\t}\n\n\tif i.annotations != nil {\n\t\tif manifest.Annotations == nil {\n\t\t\tmanifest.Annotations = map[string]string{}\n\t\t}\n\t\tfor k, v := range i.annotations {\n\t\t\tmanifest.Annotations[k] = v\n\t\t}\n\t}\n\tmanifest.Subject = i.subject\n\n\ti.manifest = manifest\n\ti.computed = true\n\treturn nil\n}\n\nfunc (i *index) Image(h v1.Hash) (v1.Image, error) {\n\tif img, ok := i.imageMap[h]; ok {\n\t\treturn img, nil\n\t}\n\treturn i.base.Image(h)\n}\n\nfunc (i *index) ImageIndex(h v1.Hash) (v1.ImageIndex, error) {\n\tif idx, ok := i.indexMap[h]; ok {\n\t\treturn idx, nil\n\t}\n\treturn i.base.ImageIndex(h)\n}\n\ntype withLayer interface {\n\tLayer(v1.Hash) (v1.Layer, error)\n}\n\n// Workaround for #819.\nfunc (i *index) Layer(h v1.Hash) (v1.Layer, error) {\n\tif layer, ok := i.layerMap[h]; ok {\n\t\treturn layer, nil\n\t}\n\tif wl, ok := i.base.(withLayer); ok {\n\t\treturn wl.Layer(h)\n\t}\n\treturn nil, fmt.Errorf(\"layer not found: %s\", h)\n}\n\n// Digest returns the sha256 of this image's manifest.\nfunc (i *index) Digest() (v1.Hash, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\treturn partial.Digest(i)\n}\n\n// Manifest returns this image's Manifest object.\nfunc (i *index) IndexManifest() (*v1.IndexManifest, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.manifest.DeepCopy(), nil\n}\n\n// RawManifest returns the serialized bytes of Manifest()\nfunc (i *index) RawManifest() ([]byte, error) {\n\tif err := i.compute(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(i.manifest)\n}\n\nfunc (i *index) Manifests() ([]partial.Describable, error) {\n\tif err := i.compute(); errors.Is(err, stream.ErrNotComputed) {\n\t\t// Index contains a streamable layer which has not yet been\n\t\t// consumed. Just return the manifests we have in case the caller\n\t\t// is going to consume the streamable layers.\n\t\tmanifests, err := partial.Manifests(i.base)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, add := range i.adds {\n\t\t\tmanifests = append(manifests, add.Add)\n\t\t}\n\t\treturn manifests, nil\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn partial.ComputeManifests(i)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 mutate\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"maps\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/google/go-containerregistry/internal/gzip\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/empty\"\n\t\"github.com/google/go-containerregistry/pkg/v1/match\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nconst whiteoutPrefix = \".wh.\"\n\n// Addendum contains layers and history to be appended\n// to a base image\ntype Addendum struct {\n\tLayer       v1.Layer\n\tHistory     v1.History\n\tURLs        []string\n\tAnnotations map[string]string\n\tMediaType   types.MediaType\n}\n\n// AppendLayers applies layers to a base image.\nfunc AppendLayers(base v1.Image, layers ...v1.Layer) (v1.Image, error) {\n\tadditions := make([]Addendum, 0, len(layers))\n\tfor _, layer := range layers {\n\t\tadditions = append(additions, Addendum{Layer: layer})\n\t}\n\n\treturn Append(base, additions...)\n}\n\n// Append will apply the list of addendums to the base image\nfunc Append(base v1.Image, adds ...Addendum) (v1.Image, error) {\n\tif len(adds) == 0 {\n\t\treturn base, nil\n\t}\n\tif err := validate(adds); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &image{\n\t\tbase: base,\n\t\tadds: adds,\n\t}, nil\n}\n\n// Appendable is an interface that represents something that can be appended\n// to an ImageIndex. We need to be able to construct a v1.Descriptor in order\n// to append something, and this is the minimum required information for that.\ntype Appendable interface {\n\tMediaType() (types.MediaType, error)\n\tDigest() (v1.Hash, error)\n\tSize() (int64, error)\n}\n\n// IndexAddendum represents an appendable thing and all the properties that\n// we may want to override in the resulting v1.Descriptor.\ntype IndexAddendum struct {\n\tAdd Appendable\n\tv1.Descriptor\n}\n\n// AppendManifests appends a manifest to the ImageIndex.\nfunc AppendManifests(base v1.ImageIndex, adds ...IndexAddendum) v1.ImageIndex {\n\treturn &index{\n\t\tbase: base,\n\t\tadds: adds,\n\t}\n}\n\n// RemoveManifests removes any descriptors that match the match.Matcher.\nfunc RemoveManifests(base v1.ImageIndex, matcher match.Matcher) v1.ImageIndex {\n\treturn &index{\n\t\tbase:   base,\n\t\tremove: matcher,\n\t}\n}\n\n// Config mutates the provided v1.Image to have the provided v1.Config\nfunc Config(base v1.Image, cfg v1.Config) (v1.Image, error) {\n\tcf, err := base.ConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcf.Config = cfg\n\n\treturn ConfigFile(base, cf)\n}\n\n// Subject mutates the subject on an image or index manifest.\n//\n// The input is expected to be a v1.Image or v1.ImageIndex, and\n// returns the same type. You can type-assert the result like so:\n//\n//\timg := Subject(empty.Image, subj).(v1.Image)\n//\n// Or for an index:\n//\n//\tidx := Subject(empty.Index, subj).(v1.ImageIndex)\n//\n// If the input is not an Image or ImageIndex, the result will\n// attempt to lazily annotate the raw manifest.\nfunc Subject(f partial.WithRawManifest, subject v1.Descriptor) partial.WithRawManifest {\n\tif img, ok := f.(v1.Image); ok {\n\t\treturn &image{\n\t\t\tbase:    img,\n\t\t\tsubject: &subject,\n\t\t}\n\t}\n\tif idx, ok := f.(v1.ImageIndex); ok {\n\t\treturn &index{\n\t\t\tbase:    idx,\n\t\t\tsubject: &subject,\n\t\t}\n\t}\n\treturn arbitraryRawManifest{a: f, subject: &subject}\n}\n\n// Annotations mutates the annotations on an annotatable image or index manifest.\n//\n// The annotatable input is expected to be a v1.Image or v1.ImageIndex, and\n// returns the same type. You can type-assert the result like so:\n//\n//\timg := Annotations(empty.Image, map[string]string{\n//\t    \"foo\": \"bar\",\n//\t}).(v1.Image)\n//\n// Or for an index:\n//\n//\tidx := Annotations(empty.Index, map[string]string{\n//\t    \"foo\": \"bar\",\n//\t}).(v1.ImageIndex)\n//\n// If the input Annotatable is not an Image or ImageIndex, the result will\n// attempt to lazily annotate the raw manifest.\nfunc Annotations(f partial.WithRawManifest, anns map[string]string) partial.WithRawManifest {\n\tif img, ok := f.(v1.Image); ok {\n\t\treturn &image{\n\t\t\tbase:        img,\n\t\t\tannotations: maps.Clone(anns),\n\t\t}\n\t}\n\tif idx, ok := f.(v1.ImageIndex); ok {\n\t\treturn &index{\n\t\t\tbase:        idx,\n\t\t\tannotations: maps.Clone(anns),\n\t\t}\n\t}\n\treturn arbitraryRawManifest{a: f, anns: maps.Clone(anns)}\n}\n\ntype arbitraryRawManifest struct {\n\ta       partial.WithRawManifest\n\tanns    map[string]string\n\tsubject *v1.Descriptor\n}\n\nfunc (a arbitraryRawManifest) RawManifest() ([]byte, error) {\n\tb, err := a.a.RawManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar m map[string]any\n\tif err := json.Unmarshal(b, &m); err != nil {\n\t\treturn nil, err\n\t}\n\tif ann, ok := m[\"annotations\"]; ok {\n\t\tif annm, ok := ann.(map[string]string); ok {\n\t\t\tfor k, v := range a.anns {\n\t\t\t\tannm[k] = v\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\".annotations is not a map: %T\", ann)\n\t\t}\n\t} else {\n\t\tm[\"annotations\"] = a.anns\n\t}\n\tif a.subject != nil {\n\t\tm[\"subject\"] = a.subject\n\t}\n\treturn json.Marshal(m)\n}\n\n// ConfigFile mutates the provided v1.Image to have the provided v1.ConfigFile\nfunc ConfigFile(base v1.Image, cfg *v1.ConfigFile) (v1.Image, error) {\n\tm, err := base.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\timage := &image{\n\t\tbase:       base,\n\t\tmanifest:   m.DeepCopy(),\n\t\tconfigFile: cfg,\n\t}\n\n\treturn image, nil\n}\n\n// CreatedAt mutates the provided v1.Image to have the provided v1.Time\nfunc CreatedAt(base v1.Image, created v1.Time) (v1.Image, error) {\n\tcf, err := base.ConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcfg := cf.DeepCopy()\n\tcfg.Created = created\n\n\treturn ConfigFile(base, cfg)\n}\n\n// Extract takes an image and returns an io.ReadCloser containing the image's\n// flattened filesystem.\n//\n// Callers can read the filesystem contents by passing the reader to\n// tar.NewReader, or io.Copy it directly to some output.\n//\n// If a caller doesn't read the full contents, they should Close it to free up\n// resources used during extraction.\nfunc Extract(img v1.Image) io.ReadCloser {\n\tpr, pw := io.Pipe()\n\n\tgo func() {\n\t\t// Close the writer with any errors encountered during\n\t\t// extraction. These errors will be returned by the reader end\n\t\t// on subsequent reads. If err == nil, the reader will return\n\t\t// EOF.\n\t\tpw.CloseWithError(extract(img, pw))\n\t}()\n\n\treturn pr\n}\n\n// Adapted from https://github.com/google/containerregistry/blob/da03b395ccdc4e149e34fbb540483efce962dc64/client/v2_2/docker_image_.py#L816\nfunc extract(img v1.Image, w io.Writer) error {\n\ttarWriter := tar.NewWriter(w)\n\tdefer tarWriter.Close()\n\n\tfileMap := map[string]bool{}\n\n\tlayers, err := img.Layers()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"retrieving image layers: %w\", err)\n\t}\n\n\t// we iterate through the layers in reverse order because it makes handling\n\t// whiteout layers more efficient, since we can just keep track of the removed\n\t// files as we see .wh. layers and ignore those in previous layers.\n\tfor i := len(layers) - 1; i >= 0; i-- {\n\t\tlayer := layers[i]\n\t\tlayerReader, err := layer.Uncompressed()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"reading layer contents: %w\", err)\n\t\t}\n\t\tdefer layerReader.Close()\n\t\ttarReader := tar.NewReader(layerReader)\n\t\tfor {\n\t\t\theader, err := tarReader.Next()\n\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"reading tar: %w\", err)\n\t\t\t}\n\n\t\t\t// Some tools prepend everything with \"./\", so if we don't Clean the\n\t\t\t// name, we may have duplicate entries, which angers tar-split.\n\t\t\theader.Name = filepath.Clean(header.Name)\n\t\t\t// force PAX format to remove Name/Linkname length limit of 100 characters\n\t\t\t// required by USTAR and to not depend on internal tar package guess which\n\t\t\t// prefers USTAR over PAX\n\t\t\theader.Format = tar.FormatPAX\n\n\t\t\tbasename := filepath.Base(header.Name)\n\t\t\tdirname := filepath.Dir(header.Name)\n\t\t\ttombstone := strings.HasPrefix(basename, whiteoutPrefix)\n\t\t\tif tombstone {\n\t\t\t\tbasename = basename[len(whiteoutPrefix):]\n\t\t\t}\n\n\t\t\t// check if we have seen value before\n\t\t\t// if we're checking a directory, don't filepath.Join names\n\t\t\tvar name string\n\t\t\tif header.Typeflag == tar.TypeDir {\n\t\t\t\tname = header.Name\n\t\t\t} else {\n\t\t\t\tname = filepath.Join(dirname, basename)\n\t\t\t}\n\n\t\t\tif _, ok := fileMap[name]; ok && !tombstone {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// check for a whited out parent directory\n\t\t\tif inWhiteoutDir(fileMap, name) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// mark file as handled. non-directory implicitly tombstones\n\t\t\t// any entries with a matching (or child) name\n\t\t\tfileMap[name] = tombstone || (header.Typeflag != tar.TypeDir)\n\t\t\tif !tombstone {\n\t\t\t\tif err := tarWriter.WriteHeader(header); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif header.Size > 0 {\n\t\t\t\t\tif _, err := io.CopyN(tarWriter, tarReader, header.Size); 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\nfunc inWhiteoutDir(fileMap map[string]bool, file string) bool {\n\tfor file != \"\" {\n\t\tdirname := filepath.Dir(file)\n\t\tif file == dirname {\n\t\t\tbreak\n\t\t}\n\t\tif val, ok := fileMap[dirname]; ok && val {\n\t\t\treturn true\n\t\t}\n\t\tfile = dirname\n\t}\n\treturn false\n}\n\n// Time sets all timestamps in an image to the given timestamp.\nfunc Time(img v1.Image, t time.Time) (v1.Image, error) {\n\tnewImage := empty.Image\n\n\tlayers, err := img.Layers()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting image layers: %w\", err)\n\t}\n\n\tocf, err := img.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting original config file: %w\", err)\n\t}\n\n\taddendums := make([]Addendum, max(len(ocf.History), len(layers)))\n\tvar historyIdx, addendumIdx int\n\tfor layerIdx := 0; layerIdx < len(layers); addendumIdx, layerIdx = addendumIdx+1, layerIdx+1 {\n\t\tnewLayer, err := layerTime(layers[layerIdx], t)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"setting layer times: %w\", err)\n\t\t}\n\n\t\t// try to search for the history entry that corresponds to this layer\n\t\tfor ; historyIdx < len(ocf.History); historyIdx++ {\n\t\t\taddendums[addendumIdx].History = ocf.History[historyIdx]\n\t\t\t// if it's an EmptyLayer, do not set the Layer and have the Addendum with just the History\n\t\t\t// and move on to the next History entry\n\t\t\tif ocf.History[historyIdx].EmptyLayer {\n\t\t\t\taddendumIdx++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// otherwise, we can exit from the cycle\n\t\t\thistoryIdx++\n\t\t\tbreak\n\t\t}\n\t\tif addendumIdx < len(addendums) {\n\t\t\taddendums[addendumIdx].Layer = newLayer\n\t\t}\n\t}\n\n\t// add all leftover History entries\n\tfor ; historyIdx < len(ocf.History); historyIdx, addendumIdx = historyIdx+1, addendumIdx+1 {\n\t\taddendums[addendumIdx].History = ocf.History[historyIdx]\n\t}\n\n\tnewImage, err = Append(newImage, addendums...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"appending layers: %w\", err)\n\t}\n\n\tcf, err := newImage.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"setting config file: %w\", err)\n\t}\n\n\tcfg := cf.DeepCopy()\n\n\t// Copy basic config over\n\tcfg.Architecture = ocf.Architecture\n\tcfg.OS = ocf.OS\n\tcfg.OSVersion = ocf.OSVersion\n\tcfg.Config = ocf.Config\n\n\t// Strip away timestamps from the config file\n\tcfg.Created = v1.Time{Time: t}\n\n\tfor i, h := range cfg.History {\n\t\th.Created = v1.Time{Time: t}\n\t\th.CreatedBy = ocf.History[i].CreatedBy\n\t\th.Comment = ocf.History[i].Comment\n\t\th.EmptyLayer = ocf.History[i].EmptyLayer\n\t\t// Explicitly ignore Author field; which hinders reproducibility\n\t\th.Author = \"\"\n\t\tcfg.History[i] = h\n\t}\n\n\treturn ConfigFile(newImage, cfg)\n}\n\nfunc layerTime(layer v1.Layer, t time.Time) (v1.Layer, error) {\n\tlayerReader, err := layer.Uncompressed()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting layer: %w\", err)\n\t}\n\tdefer layerReader.Close()\n\tw := new(bytes.Buffer)\n\ttarWriter := tar.NewWriter(w)\n\tdefer tarWriter.Close()\n\n\ttarReader := tar.NewReader(layerReader)\n\tfor {\n\t\theader, err := tarReader.Next()\n\t\tif errors.Is(err, io.EOF) {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"reading layer: %w\", err)\n\t\t}\n\n\t\theader.ModTime = t\n\n\t\t//PAX and GNU Format support additional timestamps in the header\n\t\tif header.Format == tar.FormatPAX || header.Format == tar.FormatGNU {\n\t\t\theader.AccessTime = t\n\t\t\theader.ChangeTime = t\n\t\t}\n\n\t\tif err := tarWriter.WriteHeader(header); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"writing tar header: %w\", err)\n\t\t}\n\n\t\tif header.Typeflag == tar.TypeReg {\n\t\t\t// TODO(#1168): This should be lazy, and not buffer the entire layer contents.\n\t\t\tif _, err = io.CopyN(tarWriter, tarReader, header.Size); err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"writing layer file: %w\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := tarWriter.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tb := w.Bytes()\n\t// gzip the contents, then create the layer\n\topener := func() (io.ReadCloser, error) {\n\t\treturn gzip.ReadCloser(io.NopCloser(bytes.NewReader(b))), nil\n\t}\n\tlayer, err = tarball.LayerFromOpener(opener)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating layer: %w\", err)\n\t}\n\n\treturn layer, nil\n}\n\n// Canonical is a helper function to combine Time and configFile\n// to remove any randomness during a docker build.\nfunc Canonical(img v1.Image) (v1.Image, error) {\n\t// Set all timestamps to 0\n\tcreated := time.Time{}\n\timg, err := Time(img, created)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcf, err := img.ConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Get rid of host-dependent random config\n\tcfg := cf.DeepCopy()\n\n\tcfg.Container = \"\"\n\tcfg.Config.Hostname = \"\"\n\tcfg.DockerVersion = \"\" //nolint:staticcheck // Field will be removed in next release\n\n\treturn ConfigFile(img, cfg)\n}\n\n// MediaType modifies the MediaType() of the given image.\nfunc MediaType(img v1.Image, mt types.MediaType) v1.Image {\n\treturn &image{\n\t\tbase:      img,\n\t\tmediaType: &mt,\n\t}\n}\n\n// ConfigMediaType modifies the MediaType() of the given image's Config.\n//\n// If !mt.IsConfig(), this will be the image's artifactType in any indexes it's a part of.\nfunc ConfigMediaType(img v1.Image, mt types.MediaType) v1.Image {\n\treturn &image{\n\t\tbase:            img,\n\t\tconfigMediaType: &mt,\n\t}\n}\n\n// IndexMediaType modifies the MediaType() of the given index.\nfunc IndexMediaType(idx v1.ImageIndex, mt types.MediaType) v1.ImageIndex {\n\treturn &index{\n\t\tbase:      idx,\n\t\tmediaType: &mt,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 mutate\n\nimport (\n\t\"fmt\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/empty\"\n)\n\n// Rebase returns a new v1.Image where the oldBase in orig is replaced by newBase.\nfunc Rebase(orig, oldBase, newBase v1.Image) (v1.Image, error) {\n\t// Verify that oldBase's layers are present in orig, otherwise orig is\n\t// not based on oldBase at all.\n\torigLayers, err := orig.Layers()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get layers for original: %w\", err)\n\t}\n\toldBaseLayers, err := oldBase.Layers()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(oldBaseLayers) > len(origLayers) {\n\t\treturn nil, fmt.Errorf(\"image %q is not based on %q (too few layers)\", orig, oldBase)\n\t}\n\tfor i, l := range oldBaseLayers {\n\t\toldLayerDigest, err := l.Digest()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get digest of layer %d of %q: %w\", i, oldBase, err)\n\t\t}\n\t\torigLayerDigest, err := origLayers[i].Digest()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get digest of layer %d of %q: %w\", i, orig, err)\n\t\t}\n\t\tif oldLayerDigest != origLayerDigest {\n\t\t\treturn nil, fmt.Errorf(\"image %q is not based on %q (layer %d mismatch)\", orig, oldBase, i)\n\t\t}\n\t}\n\n\toldConfig, err := oldBase.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get config for old base: %w\", err)\n\t}\n\n\torigConfig, err := orig.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get config for original: %w\", err)\n\t}\n\n\tnewConfig, err := newBase.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not get config for new base: %w\", err)\n\t}\n\n\t// Stitch together an image that contains:\n\t// - original image's config\n\t// - new base image's os/arch properties\n\t// - new base image's layers + top of original image's layers\n\t// - new base image's history + top of original image's history\n\trebasedImage, err := Config(empty.Image, *origConfig.Config.DeepCopy())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create empty image with original config: %w\", err)\n\t}\n\n\t// Add new config properties from existing images.\n\trebasedConfig, err := rebasedImage.ConfigFile()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not get config for rebased image: %w\", err)\n\t}\n\t// OS/Arch properties from new base\n\trebasedConfig.Architecture = newConfig.Architecture\n\trebasedConfig.OS = newConfig.OS\n\trebasedConfig.OSVersion = newConfig.OSVersion\n\n\t// Apply config properties to rebased.\n\trebasedImage, err = ConfigFile(rebasedImage, rebasedConfig)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to replace config for rebased image: %w\", err)\n\t}\n\n\t// Get new base layers and config for history.\n\tnewBaseLayers, err := newBase.Layers()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not get new base layers for new base: %w\", err)\n\t}\n\t// Add new base layers.\n\trebasedImage, err = Append(rebasedImage, createAddendums(0, 0, newConfig.History, newBaseLayers)...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to append new base image: %w\", err)\n\t}\n\n\t// Add original layers above the old base.\n\trebasedImage, err = Append(rebasedImage, createAddendums(len(oldConfig.History), len(oldBaseLayers)+1, origConfig.History, origLayers)...)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to append original image: %w\", err)\n\t}\n\n\treturn rebasedImage, nil\n}\n\n// createAddendums makes a list of addendums from a history and layers starting from a specific history and layer\n// indexes.\nfunc createAddendums(startHistory, startLayer int, history []v1.History, layers []v1.Layer) []Addendum {\n\tvar adds []Addendum\n\t// History should be a superset of layers; empty layers (e.g. ENV statements) only exist in history.\n\t// They cannot be iterated identically but must be walked independently, only advancing the iterator for layers\n\t// when a history entry for a non-empty layer is seen.\n\tlayerIndex := 0\n\tfor historyIndex := range history {\n\t\tvar layer v1.Layer\n\t\temptyLayer := history[historyIndex].EmptyLayer\n\t\tif !emptyLayer {\n\t\t\tlayer = layers[layerIndex]\n\t\t\tlayerIndex++\n\t\t}\n\t\tif historyIndex >= startHistory || layerIndex >= startLayer {\n\t\t\tadds = append(adds, Addendum{\n\t\t\t\tLayer:   layer,\n\t\t\t\tHistory: history[historyIndex],\n\t\t\t})\n\t\t}\n\t}\n\t// In the event history was malformed or non-existent, append the remaining layers.\n\tfor i := layerIndex; i < len(layers); i++ {\n\t\tif i >= startLayer {\n\t\t\tadds = append(adds, Addendum{Layer: layers[layerIndex]})\n\t\t}\n\t}\n\n\treturn adds\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/README.md",
    "content": "# `partial`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/partial?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/partial)\n\n## Partial Implementations\n\nThere are roughly two kinds of image representations: compressed and uncompressed.\n\nThe implementations for these kinds of images are almost identical, with the only\nmajor difference being how blobs (config and layers) are fetched. This common\ncode lives in this package, where you provide a _partial_ implementation of a\ncompressed or uncompressed image, and you get back a full `v1.Image` implementation.\n\n### Examples\n\nIn a registry, blobs are compressed, so it's easiest to implement a `v1.Image` in terms\nof compressed layers. `remote.remoteImage` does this by implementing `CompressedImageCore`:\n\n```go\ntype CompressedImageCore interface {\n\tRawConfigFile() ([]byte, error)\n\tMediaType() (types.MediaType, error)\n\tRawManifest() ([]byte, error)\n\tLayerByDigest(v1.Hash) (CompressedLayer, error)\n}\n```\n\nIn a tarball, blobs are (often) uncompressed, so it's easiest to implement a `v1.Image` in terms\nof uncompressed layers. `tarball.uncompressedImage` does this by implementing `UncompressedImageCore`:\n\n```go\ntype UncompressedImageCore interface {\n\tRawConfigFile() ([]byte, error)\n\tMediaType() (types.MediaType, error)\n\tLayerByDiffID(v1.Hash) (UncompressedLayer, error)\n}\n```\n\n## Optional Methods\n\nWhere possible, we access some information via optional methods as an optimization.\n\n### [`partial.Descriptor`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/partial#Descriptor)\n\nThere are some properties of a [`Descriptor`](https://github.com/opencontainers/image-spec/blob/master/descriptor.md#properties) that aren't derivable from just image data:\n\n* `MediaType`\n* `Platform`\n* `URLs`\n* `Annotations`\n\nFor example, in a `tarball.Image`, there is a `LayerSources` field that contains\nan entire layer descriptor with `URLs` information for foreign layers. This\ninformation can be passed through to callers by implementing this optional\n`Descriptor` method.\n\nSee [`#654`](https://github.com/google/go-containerregistry/pull/654).\n\n### [`partial.UncompressedSize`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/partial#UncompressedSize)\n\nUsually, you don't need to know the uncompressed size of a layer, since that\ninformation isn't stored in a config file (just he sha256 is needed); however,\nthere are cases where it is very helpful to know the layer size, e.g. when\nwriting the uncompressed layer into a tarball.\n\nSee [`#655`](https://github.com/google/go-containerregistry/pull/655).\n\n### [`partial.Exists`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/partial#Exists)\n\nWe generally don't care about the existence of something as granular as a\nlayer, and would rather ensure all the invariants of an image are upheld via\nthe `validate` package. However, there are situations where we want to do a\nquick smoke test to ensure that the underlying storage engine hasn't been\ncorrupted by something e.g. deleting files or blobs. Thus, we've exposed an\noptional `Exists` method that does an existence check without actually reading\nany bytes.\n\nThe `remote` package implements this via `HEAD` requests.\n\nThe `layout` package implements this via `os.Stat`.\n\nSee [`#838`](https://github.com/google/go-containerregistry/pull/838).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 partial\n\nimport (\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/and\"\n\t\"github.com/google/go-containerregistry/internal/compression\"\n\t\"github.com/google/go-containerregistry/internal/gzip\"\n\t\"github.com/google/go-containerregistry/internal/zstd\"\n\tcomp \"github.com/google/go-containerregistry/pkg/compression\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// CompressedLayer represents the bare minimum interface a natively\n// compressed layer must implement for us to produce a v1.Layer\ntype CompressedLayer interface {\n\t// Digest returns the Hash of the compressed layer.\n\tDigest() (v1.Hash, error)\n\n\t// Compressed returns an io.ReadCloser for the compressed layer contents.\n\tCompressed() (io.ReadCloser, error)\n\n\t// Size returns the compressed size of the Layer.\n\tSize() (int64, error)\n\n\t// Returns the mediaType for the compressed Layer\n\tMediaType() (types.MediaType, error)\n}\n\n// compressedLayerExtender implements v1.Image using the compressed base properties.\ntype compressedLayerExtender struct {\n\tCompressedLayer\n}\n\n// Uncompressed implements v1.Layer\nfunc (cle *compressedLayerExtender) Uncompressed() (io.ReadCloser, error) {\n\trc, err := cle.Compressed()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Often, the \"compressed\" bytes are not actually-compressed.\n\t// Peek at the first two bytes to determine whether it's correct to\n\t// wrap this with gzip.UnzipReadCloser or zstd.UnzipReadCloser.\n\tcp, pr, err := compression.PeekCompression(rc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprc := &and.ReadCloser{\n\t\tReader:    pr,\n\t\tCloseFunc: rc.Close,\n\t}\n\n\tswitch cp {\n\tcase comp.GZip:\n\t\treturn gzip.UnzipReadCloser(prc)\n\tcase comp.ZStd:\n\t\treturn zstd.UnzipReadCloser(prc)\n\tdefault:\n\t\treturn prc, nil\n\t}\n}\n\n// DiffID implements v1.Layer\nfunc (cle *compressedLayerExtender) DiffID() (v1.Hash, error) {\n\t// If our nested CompressedLayer implements DiffID,\n\t// then delegate to it instead.\n\tif wdi, ok := cle.CompressedLayer.(WithDiffID); ok {\n\t\treturn wdi.DiffID()\n\t}\n\tr, err := cle.Uncompressed()\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tdefer r.Close()\n\th, _, err := v1.SHA256(r)\n\treturn h, err\n}\n\n// CompressedToLayer fills in the missing methods from a CompressedLayer so that it implements v1.Layer\nfunc CompressedToLayer(ul CompressedLayer) (v1.Layer, error) {\n\treturn &compressedLayerExtender{ul}, nil\n}\n\n// CompressedImageCore represents the base minimum interface a natively\n// compressed image must implement for us to produce a v1.Image.\ntype CompressedImageCore interface {\n\tImageCore\n\n\t// RawManifest returns the serialized bytes of the manifest.\n\tRawManifest() ([]byte, error)\n\n\t// LayerByDigest is a variation on the v1.Image method, which returns\n\t// a CompressedLayer instead.\n\tLayerByDigest(v1.Hash) (CompressedLayer, error)\n}\n\n// compressedImageExtender implements v1.Image by extending CompressedImageCore with the\n// appropriate methods computed from the minimal core.\ntype compressedImageExtender struct {\n\tCompressedImageCore\n}\n\n// Assert that our extender type completes the v1.Image interface\nvar _ v1.Image = (*compressedImageExtender)(nil)\n\n// Digest implements v1.Image\nfunc (i *compressedImageExtender) Digest() (v1.Hash, error) {\n\treturn Digest(i)\n}\n\n// ConfigName implements v1.Image\nfunc (i *compressedImageExtender) ConfigName() (v1.Hash, error) {\n\treturn ConfigName(i)\n}\n\n// Layers implements v1.Image\nfunc (i *compressedImageExtender) Layers() ([]v1.Layer, error) {\n\ths, err := FSLayers(i)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tls := make([]v1.Layer, 0, len(hs))\n\tfor _, h := range hs {\n\t\tl, err := i.LayerByDigest(h)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tls = append(ls, l)\n\t}\n\treturn ls, nil\n}\n\n// LayerByDigest implements v1.Image\nfunc (i *compressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) {\n\tcl, err := i.CompressedImageCore.LayerByDigest(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn CompressedToLayer(cl)\n}\n\n// LayerByDiffID implements v1.Image\nfunc (i *compressedImageExtender) LayerByDiffID(h v1.Hash) (v1.Layer, error) {\n\th, err := DiffIDToBlob(i, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.LayerByDigest(h)\n}\n\n// ConfigFile implements v1.Image\nfunc (i *compressedImageExtender) ConfigFile() (*v1.ConfigFile, error) {\n\treturn ConfigFile(i)\n}\n\n// Manifest implements v1.Image\nfunc (i *compressedImageExtender) Manifest() (*v1.Manifest, error) {\n\treturn Manifest(i)\n}\n\n// Size implements v1.Image\nfunc (i *compressedImageExtender) Size() (int64, error) {\n\treturn Size(i)\n}\n\n// CompressedToImage fills in the missing methods from a CompressedImageCore so that it implements v1.Image\nfunc CompressedToImage(cic CompressedImageCore) (v1.Image, error) {\n\treturn &compressedImageExtender{\n\t\tCompressedImageCore: cic,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 partial defines methods for building up a v1.Image from\n// minimal subsets that are sufficient for defining a v1.Image.\npackage partial\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 partial\n\nimport (\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// ImageCore is the core set of properties without which we cannot build a v1.Image\ntype ImageCore interface {\n\t// RawConfigFile returns the serialized bytes of this image's config file.\n\tRawConfigFile() ([]byte, error)\n\n\t// MediaType of this image's manifest.\n\tMediaType() (types.MediaType, error)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/index.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 partial\n\nimport (\n\t\"fmt\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/match\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// FindManifests given a v1.ImageIndex, find the manifests that fit the matcher.\nfunc FindManifests(index v1.ImageIndex, matcher match.Matcher) ([]v1.Descriptor, error) {\n\t// get the actual manifest list\n\tindexManifest, err := index.IndexManifest()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to get raw index: %w\", err)\n\t}\n\tmanifests := []v1.Descriptor{}\n\t// try to get the root of our image\n\tfor _, manifest := range indexManifest.Manifests {\n\t\tif matcher(manifest) {\n\t\t\tmanifests = append(manifests, manifest)\n\t\t}\n\t}\n\treturn manifests, nil\n}\n\n// FindImages given a v1.ImageIndex, find the images that fit the matcher. If a Descriptor\n// matches the provider Matcher, but the referenced item is not an Image, ignores it.\n// Only returns those that match the Matcher and are images.\nfunc FindImages(index v1.ImageIndex, matcher match.Matcher) ([]v1.Image, error) {\n\tmatches := []v1.Image{}\n\tmanifests, err := FindManifests(index, matcher)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, desc := range manifests {\n\t\t// if it is not an image, ignore it\n\t\tif !desc.MediaType.IsImage() {\n\t\t\tcontinue\n\t\t}\n\t\timg, err := index.Image(desc.Digest)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmatches = append(matches, img)\n\t}\n\treturn matches, nil\n}\n\n// FindIndexes given a v1.ImageIndex, find the indexes that fit the matcher. If a Descriptor\n// matches the provider Matcher, but the referenced item is not an Index, ignores it.\n// Only returns those that match the Matcher and are indexes.\nfunc FindIndexes(index v1.ImageIndex, matcher match.Matcher) ([]v1.ImageIndex, error) {\n\tmatches := []v1.ImageIndex{}\n\tmanifests, err := FindManifests(index, matcher)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, desc := range manifests {\n\t\tif !desc.MediaType.IsIndex() {\n\t\t\tcontinue\n\t\t}\n\t\t// if it is not an index, ignore it\n\t\tidx, err := index.ImageIndex(desc.Digest)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmatches = append(matches, idx)\n\t}\n\treturn matches, nil\n}\n\ntype withManifests interface {\n\tManifests() ([]Describable, error)\n}\n\ntype withLayer interface {\n\tLayer(v1.Hash) (v1.Layer, error)\n}\n\ntype describable struct {\n\tdesc v1.Descriptor\n}\n\nfunc (d describable) Digest() (v1.Hash, error) {\n\treturn d.desc.Digest, nil\n}\n\nfunc (d describable) Size() (int64, error) {\n\treturn d.desc.Size, nil\n}\n\nfunc (d describable) MediaType() (types.MediaType, error) {\n\treturn d.desc.MediaType, nil\n}\n\nfunc (d describable) Descriptor() (*v1.Descriptor, error) {\n\treturn &d.desc, nil\n}\n\n// Manifests is analogous to v1.Image.Layers in that it allows values in the\n// returned list to be lazily evaluated, which enables an index to contain\n// an image that contains a streaming layer.\n//\n// This should have been part of the v1.ImageIndex interface, but wasn't.\n// It is instead usable through this extension interface.\nfunc Manifests(idx v1.ImageIndex) ([]Describable, error) {\n\tif wm, ok := idx.(withManifests); ok {\n\t\treturn wm.Manifests()\n\t}\n\n\treturn ComputeManifests(idx)\n}\n\n// ComputeManifests provides a fallback implementation for Manifests.\nfunc ComputeManifests(idx v1.ImageIndex) ([]Describable, error) {\n\tm, err := idx.IndexManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmanifests := []Describable{}\n\tfor _, desc := range m.Manifests {\n\t\tswitch {\n\t\tcase desc.MediaType.IsImage():\n\t\t\timg, err := idx.Image(desc.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tmanifests = append(manifests, img)\n\t\tcase desc.MediaType.IsIndex():\n\t\t\tidx, err := idx.ImageIndex(desc.Digest)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tmanifests = append(manifests, idx)\n\t\tdefault:\n\t\t\tif wl, ok := idx.(withLayer); ok {\n\t\t\t\tlayer, err := wl.Layer(desc.Digest)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tmanifests = append(manifests, layer)\n\t\t\t} else {\n\t\t\t\tmanifests = append(manifests, describable{desc})\n\t\t\t}\n\t\t}\n\t}\n\n\treturn manifests, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 partial\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/internal/gzip\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// UncompressedLayer represents the bare minimum interface a natively\n// uncompressed layer must implement for us to produce a v1.Layer\ntype UncompressedLayer interface {\n\t// DiffID returns the Hash of the uncompressed layer.\n\tDiffID() (v1.Hash, error)\n\n\t// Uncompressed returns an io.ReadCloser for the uncompressed layer contents.\n\tUncompressed() (io.ReadCloser, error)\n\n\t// Returns the mediaType for the compressed Layer\n\tMediaType() (types.MediaType, error)\n}\n\n// uncompressedLayerExtender implements v1.Image using the uncompressed base properties.\ntype uncompressedLayerExtender struct {\n\tUncompressedLayer\n\t// Memoize size/hash so that the methods aren't twice as\n\t// expensive as doing this manually.\n\thash          v1.Hash\n\tsize          int64\n\thashSizeError error\n\tonce          sync.Once\n}\n\n// Compressed implements v1.Layer\nfunc (ule *uncompressedLayerExtender) Compressed() (io.ReadCloser, error) {\n\tu, err := ule.Uncompressed()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn gzip.ReadCloser(u), nil\n}\n\n// Digest implements v1.Layer\nfunc (ule *uncompressedLayerExtender) Digest() (v1.Hash, error) {\n\tule.calcSizeHash()\n\treturn ule.hash, ule.hashSizeError\n}\n\n// Size implements v1.Layer\nfunc (ule *uncompressedLayerExtender) Size() (int64, error) {\n\tule.calcSizeHash()\n\treturn ule.size, ule.hashSizeError\n}\n\nfunc (ule *uncompressedLayerExtender) calcSizeHash() {\n\tule.once.Do(func() {\n\t\tvar r io.ReadCloser\n\t\tr, ule.hashSizeError = ule.Compressed()\n\t\tif ule.hashSizeError != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer r.Close()\n\t\tule.hash, ule.size, ule.hashSizeError = v1.SHA256(r)\n\t})\n}\n\n// UncompressedToLayer fills in the missing methods from an UncompressedLayer so that it implements v1.Layer\nfunc UncompressedToLayer(ul UncompressedLayer) (v1.Layer, error) {\n\treturn &uncompressedLayerExtender{UncompressedLayer: ul}, nil\n}\n\n// UncompressedImageCore represents the bare minimum interface a natively\n// uncompressed image must implement for us to produce a v1.Image\ntype UncompressedImageCore interface {\n\tImageCore\n\n\t// LayerByDiffID is a variation on the v1.Image method, which returns\n\t// an UncompressedLayer instead.\n\tLayerByDiffID(v1.Hash) (UncompressedLayer, error)\n}\n\n// UncompressedToImage fills in the missing methods from an UncompressedImageCore so that it implements v1.Image.\nfunc UncompressedToImage(uic UncompressedImageCore) (v1.Image, error) {\n\treturn &uncompressedImageExtender{\n\t\tUncompressedImageCore: uic,\n\t}, nil\n}\n\n// uncompressedImageExtender implements v1.Image by extending UncompressedImageCore with the\n// appropriate methods computed from the minimal core.\ntype uncompressedImageExtender struct {\n\tUncompressedImageCore\n\n\tlock     sync.Mutex\n\tmanifest *v1.Manifest\n}\n\n// Assert that our extender type completes the v1.Image interface\nvar _ v1.Image = (*uncompressedImageExtender)(nil)\n\n// Digest implements v1.Image\nfunc (i *uncompressedImageExtender) Digest() (v1.Hash, error) {\n\treturn Digest(i)\n}\n\n// Manifest implements v1.Image\nfunc (i *uncompressedImageExtender) Manifest() (*v1.Manifest, error) {\n\ti.lock.Lock()\n\tdefer i.lock.Unlock()\n\tif i.manifest != nil {\n\t\treturn i.manifest, nil\n\t}\n\n\tb, err := i.RawConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcfgHash, cfgSize, err := v1.SHA256(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tm := &v1.Manifest{\n\t\tSchemaVersion: 2,\n\t\tMediaType:     types.DockerManifestSchema2,\n\t\tConfig: v1.Descriptor{\n\t\t\tMediaType: types.DockerConfigJSON,\n\t\t\tSize:      cfgSize,\n\t\t\tDigest:    cfgHash,\n\t\t},\n\t}\n\n\tls, err := i.Layers()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tm.Layers = make([]v1.Descriptor, len(ls))\n\tfor i, l := range ls {\n\t\tdesc, err := Descriptor(l)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tm.Layers[i] = *desc\n\t}\n\n\ti.manifest = m\n\treturn i.manifest, nil\n}\n\n// RawManifest implements v1.Image\nfunc (i *uncompressedImageExtender) RawManifest() ([]byte, error) {\n\treturn RawManifest(i)\n}\n\n// Size implements v1.Image\nfunc (i *uncompressedImageExtender) Size() (int64, error) {\n\treturn Size(i)\n}\n\n// ConfigName implements v1.Image\nfunc (i *uncompressedImageExtender) ConfigName() (v1.Hash, error) {\n\treturn ConfigName(i)\n}\n\n// ConfigFile implements v1.Image\nfunc (i *uncompressedImageExtender) ConfigFile() (*v1.ConfigFile, error) {\n\treturn ConfigFile(i)\n}\n\n// Layers implements v1.Image\nfunc (i *uncompressedImageExtender) Layers() ([]v1.Layer, error) {\n\tdiffIDs, err := DiffIDs(i)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tls := make([]v1.Layer, 0, len(diffIDs))\n\tfor _, h := range diffIDs {\n\t\tl, err := i.LayerByDiffID(h)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tls = append(ls, l)\n\t}\n\treturn ls, nil\n}\n\n// LayerByDiffID implements v1.Image\nfunc (i *uncompressedImageExtender) LayerByDiffID(diffID v1.Hash) (v1.Layer, error) {\n\tul, err := i.UncompressedImageCore.LayerByDiffID(diffID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn UncompressedToLayer(ul)\n}\n\n// LayerByDigest implements v1.Image\nfunc (i *uncompressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) {\n\tdiffID, err := BlobToDiffID(i, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i.LayerByDiffID(diffID)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 partial\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// WithRawConfigFile defines the subset of v1.Image used by these helper methods\ntype WithRawConfigFile interface {\n\t// RawConfigFile returns the serialized bytes of this image's config file.\n\tRawConfigFile() ([]byte, error)\n}\n\n// ConfigFile is a helper for implementing v1.Image\nfunc ConfigFile(i WithRawConfigFile) (*v1.ConfigFile, error) {\n\tb, err := i.RawConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn v1.ParseConfigFile(bytes.NewReader(b))\n}\n\n// ConfigName is a helper for implementing v1.Image\nfunc ConfigName(i WithRawConfigFile) (v1.Hash, error) {\n\tb, err := i.RawConfigFile()\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\th, _, err := v1.SHA256(bytes.NewReader(b))\n\treturn h, err\n}\n\ntype configLayer struct {\n\thash    v1.Hash\n\tcontent []byte\n}\n\n// Digest implements v1.Layer\nfunc (cl *configLayer) Digest() (v1.Hash, error) {\n\treturn cl.hash, nil\n}\n\n// DiffID implements v1.Layer\nfunc (cl *configLayer) DiffID() (v1.Hash, error) {\n\treturn cl.hash, nil\n}\n\n// Uncompressed implements v1.Layer\nfunc (cl *configLayer) Uncompressed() (io.ReadCloser, error) {\n\treturn io.NopCloser(bytes.NewBuffer(cl.content)), nil\n}\n\n// Compressed implements v1.Layer\nfunc (cl *configLayer) Compressed() (io.ReadCloser, error) {\n\treturn io.NopCloser(bytes.NewBuffer(cl.content)), nil\n}\n\n// Size implements v1.Layer\nfunc (cl *configLayer) Size() (int64, error) {\n\treturn int64(len(cl.content)), nil\n}\n\nfunc (cl *configLayer) MediaType() (types.MediaType, error) {\n\t// Defaulting this to OCIConfigJSON as it should remain\n\t// backwards compatible with DockerConfigJSON\n\treturn types.OCIConfigJSON, nil\n}\n\nvar _ v1.Layer = (*configLayer)(nil)\n\n// withConfigLayer allows partial image implementations to provide a layer\n// for their config file.\ntype withConfigLayer interface {\n\tConfigLayer() (v1.Layer, error)\n}\n\n// ConfigLayer implements v1.Layer from the raw config bytes.\n// This is so that clients (e.g. remote) can access the config as a blob.\n//\n// Images that want to return a specific layer implementation can implement\n// withConfigLayer.\nfunc ConfigLayer(i WithRawConfigFile) (v1.Layer, error) {\n\tif wcl, ok := unwrap(i).(withConfigLayer); ok {\n\t\treturn wcl.ConfigLayer()\n\t}\n\n\th, err := ConfigName(i)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trcfg, err := i.RawConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &configLayer{\n\t\thash:    h,\n\t\tcontent: rcfg,\n\t}, nil\n}\n\n// WithConfigFile defines the subset of v1.Image used by these helper methods\ntype WithConfigFile interface {\n\t// ConfigFile returns this image's config file.\n\tConfigFile() (*v1.ConfigFile, error)\n}\n\n// DiffIDs is a helper for implementing v1.Image\nfunc DiffIDs(i WithConfigFile) ([]v1.Hash, error) {\n\tcfg, err := i.ConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cfg.RootFS.DiffIDs, nil\n}\n\n// RawConfigFile is a helper for implementing v1.Image\nfunc RawConfigFile(i WithConfigFile) ([]byte, error) {\n\tcfg, err := i.ConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(cfg)\n}\n\n// WithRawManifest defines the subset of v1.Image used by these helper methods\ntype WithRawManifest interface {\n\t// RawManifest returns the serialized bytes of this image's config file.\n\tRawManifest() ([]byte, error)\n}\n\n// Digest is a helper for implementing v1.Image\nfunc Digest(i WithRawManifest) (v1.Hash, error) {\n\tmb, err := i.RawManifest()\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tdigest, _, err := v1.SHA256(bytes.NewReader(mb))\n\treturn digest, err\n}\n\n// Manifest is a helper for implementing v1.Image\nfunc Manifest(i WithRawManifest) (*v1.Manifest, error) {\n\tb, err := i.RawManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn v1.ParseManifest(bytes.NewReader(b))\n}\n\n// WithManifest defines the subset of v1.Image used by these helper methods\ntype WithManifest interface {\n\t// Manifest returns this image's Manifest object.\n\tManifest() (*v1.Manifest, error)\n}\n\n// RawManifest is a helper for implementing v1.Image\nfunc RawManifest(i WithManifest) ([]byte, error) {\n\tm, err := i.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(m)\n}\n\n// Size is a helper for implementing v1.Image\nfunc Size(i WithRawManifest) (int64, error) {\n\tb, err := i.RawManifest()\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treturn int64(len(b)), nil\n}\n\n// FSLayers is a helper for implementing v1.Image\nfunc FSLayers(i WithManifest) ([]v1.Hash, error) {\n\tm, err := i.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfsl := make([]v1.Hash, len(m.Layers))\n\tfor i, l := range m.Layers {\n\t\tfsl[i] = l.Digest\n\t}\n\treturn fsl, nil\n}\n\n// BlobSize is a helper for implementing v1.Image\nfunc BlobSize(i WithManifest, h v1.Hash) (int64, error) {\n\td, err := BlobDescriptor(i, h)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treturn d.Size, nil\n}\n\n// BlobDescriptor is a helper for implementing v1.Image\nfunc BlobDescriptor(i WithManifest, h v1.Hash) (*v1.Descriptor, error) {\n\tm, err := i.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif m.Config.Digest == h {\n\t\treturn &m.Config, nil\n\t}\n\n\tfor _, l := range m.Layers {\n\t\tif l.Digest == h {\n\t\t\treturn &l, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"blob %v not found\", h)\n}\n\n// WithManifestAndConfigFile defines the subset of v1.Image used by these helper methods\ntype WithManifestAndConfigFile interface {\n\tWithConfigFile\n\n\t// Manifest returns this image's Manifest object.\n\tManifest() (*v1.Manifest, error)\n}\n\n// BlobToDiffID is a helper for mapping between compressed\n// and uncompressed blob hashes.\nfunc BlobToDiffID(i WithManifestAndConfigFile, h v1.Hash) (v1.Hash, error) {\n\tblobs, err := FSLayers(i)\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tdiffIDs, err := DiffIDs(i)\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tif len(blobs) != len(diffIDs) {\n\t\treturn v1.Hash{}, fmt.Errorf(\"mismatched fs layers (%d) and diff ids (%d)\", len(blobs), len(diffIDs))\n\t}\n\tfor i, blob := range blobs {\n\t\tif blob == h {\n\t\t\treturn diffIDs[i], nil\n\t\t}\n\t}\n\treturn v1.Hash{}, fmt.Errorf(\"unknown blob %v\", h)\n}\n\n// DiffIDToBlob is a helper for mapping between uncompressed\n// and compressed blob hashes.\nfunc DiffIDToBlob(wm WithManifestAndConfigFile, h v1.Hash) (v1.Hash, error) {\n\tblobs, err := FSLayers(wm)\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tdiffIDs, err := DiffIDs(wm)\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tif len(blobs) != len(diffIDs) {\n\t\treturn v1.Hash{}, fmt.Errorf(\"mismatched fs layers (%d) and diff ids (%d)\", len(blobs), len(diffIDs))\n\t}\n\tfor i, diffID := range diffIDs {\n\t\tif diffID == h {\n\t\t\treturn blobs[i], nil\n\t\t}\n\t}\n\treturn v1.Hash{}, fmt.Errorf(\"unknown diffID %v\", h)\n}\n\n// WithDiffID defines the subset of v1.Layer for exposing the DiffID method.\ntype WithDiffID interface {\n\tDiffID() (v1.Hash, error)\n}\n\n// withDescriptor allows partial layer implementations to provide a layer\n// descriptor to the partial image manifest builder. This allows partial\n// uncompressed layers to provide foreign layer metadata like URLs to the\n// uncompressed image manifest.\ntype withDescriptor interface {\n\tDescriptor() (*v1.Descriptor, error)\n}\n\n// Describable represents something for which we can produce a v1.Descriptor.\ntype Describable interface {\n\tDigest() (v1.Hash, error)\n\tMediaType() (types.MediaType, error)\n\tSize() (int64, error)\n}\n\n// Descriptor returns a v1.Descriptor given a Describable. It also encodes\n// some logic for unwrapping things that have been wrapped by\n// CompressedToLayer, UncompressedToLayer, CompressedToImage, or\n// UncompressedToImage.\nfunc Descriptor(d Describable) (*v1.Descriptor, error) {\n\t// If Describable implements Descriptor itself, return that.\n\tif wd, ok := unwrap(d).(withDescriptor); ok {\n\t\treturn wd.Descriptor()\n\t}\n\n\t// If all else fails, compute the descriptor from the individual methods.\n\tvar (\n\t\tdesc v1.Descriptor\n\t\terr  error\n\t)\n\n\tif desc.Size, err = d.Size(); err != nil {\n\t\treturn nil, err\n\t}\n\tif desc.Digest, err = d.Digest(); err != nil {\n\t\treturn nil, err\n\t}\n\tif desc.MediaType, err = d.MediaType(); err != nil {\n\t\treturn nil, err\n\t}\n\tif wat, ok := d.(withArtifactType); ok {\n\t\tif desc.ArtifactType, err = wat.ArtifactType(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tif wrm, ok := d.(WithRawManifest); ok && desc.MediaType.IsImage() {\n\t\t\tmf, _ := Manifest(wrm)\n\t\t\t// Failing to parse as a manifest should just be ignored.\n\t\t\t// The manifest might not be valid, and that's okay.\n\t\t\tif mf != nil && !mf.Config.MediaType.IsConfig() {\n\t\t\t\tdesc.ArtifactType = string(mf.Config.MediaType)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &desc, nil\n}\n\ntype withArtifactType interface {\n\tArtifactType() (string, error)\n}\n\ntype withUncompressedSize interface {\n\tUncompressedSize() (int64, error)\n}\n\n// UncompressedSize returns the size of the Uncompressed layer. If the\n// underlying implementation doesn't implement UncompressedSize directly,\n// this will compute the uncompressedSize by reading everything returned\n// by Compressed(). This is potentially expensive and may consume the contents\n// for streaming layers.\nfunc UncompressedSize(l v1.Layer) (int64, error) {\n\t// If the layer implements UncompressedSize itself, return that.\n\tif wus, ok := unwrap(l).(withUncompressedSize); ok {\n\t\treturn wus.UncompressedSize()\n\t}\n\n\t// The layer doesn't implement UncompressedSize, we need to compute it.\n\trc, err := l.Uncompressed()\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tdefer rc.Close()\n\n\treturn io.Copy(io.Discard, rc)\n}\n\ntype withExists interface {\n\tExists() (bool, error)\n}\n\n// Exists checks to see if a layer exists. This is a hack to work around the\n// mistakes of the partial package. Don't use this.\nfunc Exists(l v1.Layer) (bool, error) {\n\t// If the layer implements Exists itself, return that.\n\tif we, ok := unwrap(l).(withExists); ok {\n\t\treturn we.Exists()\n\t}\n\n\t// The layer doesn't implement Exists, so we hope that calling Compressed()\n\t// is enough to trigger an error if the layer does not exist.\n\trc, err := l.Compressed()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tdefer rc.Close()\n\n\t// We may want to try actually reading a single byte, but if we need to do\n\t// that, we should just fix this hack.\n\treturn true, nil\n}\n\n// Recursively unwrap our wrappers so that we can check for the original implementation.\n// We might want to expose this?\nfunc unwrap(i any) any {\n\tif ule, ok := i.(*uncompressedLayerExtender); ok {\n\t\treturn unwrap(ule.UncompressedLayer)\n\t}\n\tif cle, ok := i.(*compressedLayerExtender); ok {\n\t\treturn unwrap(cle.CompressedLayer)\n\t}\n\tif uie, ok := i.(*uncompressedImageExtender); ok {\n\t\treturn unwrap(uie.UncompressedImageCore)\n\t}\n\tif cie, ok := i.(*compressedImageExtender); ok {\n\t\treturn unwrap(cie.CompressedImageCore)\n\t}\n\treturn i\n}\n\n// ArtifactType returns the artifact type for the given manifest.\n//\n// If the manifest reports its own artifact type, that's returned, otherwise\n// the manifest is parsed and, if successful, its config.mediaType is returned.\nfunc ArtifactType(w WithManifest) (string, error) {\n\tif wat, ok := w.(withArtifactType); ok {\n\t\treturn wat.ArtifactType()\n\t}\n\tmf, _ := w.Manifest()\n\t// Failing to parse as a manifest should just be ignored.\n\t// The manifest might not be valid, and that's okay.\n\tif mf != nil && !mf.Config.MediaType.IsConfig() {\n\t\treturn string(mf.Config.MediaType), nil\n\t}\n\treturn \"\", nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/platform.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Platform represents the target os/arch for an image.\ntype Platform struct {\n\tArchitecture string   `json:\"architecture\"`\n\tOS           string   `json:\"os\"`\n\tOSVersion    string   `json:\"os.version,omitempty\"`\n\tOSFeatures   []string `json:\"os.features,omitempty\"`\n\tVariant      string   `json:\"variant,omitempty\"`\n\tFeatures     []string `json:\"features,omitempty\"`\n}\n\nfunc (p Platform) String() string {\n\tif p.OS == \"\" {\n\t\treturn \"\"\n\t}\n\tvar b strings.Builder\n\tb.WriteString(p.OS)\n\tif p.Architecture != \"\" {\n\t\tb.WriteString(\"/\")\n\t\tb.WriteString(p.Architecture)\n\t}\n\tif p.Variant != \"\" {\n\t\tb.WriteString(\"/\")\n\t\tb.WriteString(p.Variant)\n\t}\n\tif p.OSVersion != \"\" {\n\t\tb.WriteString(\":\")\n\t\tb.WriteString(p.OSVersion)\n\t}\n\treturn b.String()\n}\n\n// ParsePlatform parses a string representing a Platform, if possible.\nfunc ParsePlatform(s string) (*Platform, error) {\n\tvar p Platform\n\tparts := strings.Split(strings.TrimSpace(s), \":\")\n\tif len(parts) == 2 {\n\t\tp.OSVersion = parts[1]\n\t}\n\tparts = strings.Split(parts[0], \"/\")\n\tif len(parts) > 0 {\n\t\tp.OS = parts[0]\n\t}\n\tif len(parts) > 1 {\n\t\tp.Architecture = parts[1]\n\t}\n\tif len(parts) > 2 {\n\t\tp.Variant = parts[2]\n\t}\n\tif len(parts) > 3 {\n\t\treturn nil, fmt.Errorf(\"too many slashes in platform spec: %s\", s)\n\t}\n\treturn &p, nil\n}\n\n// Equals returns true if the given platform is semantically equivalent to this one.\n// The order of Features and OSFeatures is not important.\nfunc (p Platform) Equals(o Platform) bool {\n\treturn p.OS == o.OS &&\n\t\tp.Architecture == o.Architecture &&\n\t\tp.Variant == o.Variant &&\n\t\tp.OSVersion == o.OSVersion &&\n\t\tstringSliceEqualIgnoreOrder(p.OSFeatures, o.OSFeatures) &&\n\t\tstringSliceEqualIgnoreOrder(p.Features, o.Features)\n}\n\n// Satisfies returns true if this Platform \"satisfies\" the given spec Platform.\n//\n// Note that this is different from Equals and that Satisfies is not reflexive.\n//\n// The given spec represents \"requirements\" such that any missing values in the\n// spec are not compared.\n//\n// For OSFeatures and Features, Satisfies will return true if this Platform's\n// fields contain a superset of the values in the spec's fields (order ignored).\nfunc (p Platform) Satisfies(spec Platform) bool {\n\treturn satisfies(spec.OS, p.OS) &&\n\t\tsatisfies(spec.Architecture, p.Architecture) &&\n\t\tsatisfies(spec.Variant, p.Variant) &&\n\t\tsatisfies(spec.OSVersion, p.OSVersion) &&\n\t\tsatisfiesList(spec.OSFeatures, p.OSFeatures) &&\n\t\tsatisfiesList(spec.Features, p.Features)\n}\n\nfunc satisfies(want, have string) bool {\n\treturn want == \"\" || want == have\n}\n\nfunc satisfiesList(want, have []string) bool {\n\tif len(want) == 0 {\n\t\treturn true\n\t}\n\n\tset := map[string]struct{}{}\n\tfor _, h := range have {\n\t\tset[h] = struct{}{}\n\t}\n\n\tfor _, w := range want {\n\t\tif _, ok := set[w]; !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// stringSliceEqual compares 2 string slices and returns if their contents are identical.\nfunc stringSliceEqual(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i, elm := range a {\n\t\tif elm != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// stringSliceEqualIgnoreOrder compares 2 string slices and returns if their contents are identical, ignoring order\nfunc stringSliceEqualIgnoreOrder(a, b []string) bool {\n\tif a != nil && b != nil {\n\t\tsort.Strings(a)\n\t\tsort.Strings(b)\n\t}\n\treturn stringSliceEqual(a, b)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/progress.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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\n// Update representation of an update of transfer progress. Some functions\n// in this module can take a channel to which updates will be sent while a\n// transfer is in progress.\n// +k8s:deepcopy-gen=false\ntype Update struct {\n\tTotal    int64\n\tComplete int64\n\tError    error\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/README.md",
    "content": "# `remote`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote)\n\nThe `remote` package implements a client for accessing a registry,\nper the [OCI distribution spec](https://github.com/opencontainers/distribution-spec/blob/master/spec.md).\n\nIt leans heavily on the lower level [`transport`](/pkg/v1/remote/transport) package, which handles the\nauthentication handshake and structured errors.\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n)\n\nfunc main() {\n\tref, err := name.ParseReference(\"gcr.io/google-containers/pause\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\timg, err := remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// do stuff with img\n}\n```\n\n## Structure\n\n<p align=\"center\">\n  <img src=\"/images/remote.dot.svg\" />\n</p>\n\n\n## Background\n\nThere are a lot of confusingly similar terms that come up when talking about images in registries.\n\n### Anatomy of an image\n\nIn general...\n\n* A tag refers to an image manifest.\n* An image manifest references a config file and an orderered list of _compressed_ layers by sha256 digest.\n* A config file references an ordered list of _uncompressed_ layers by sha256 digest and contains runtime configuration.\n* The sha256 digest of the config file is the [image id](https://github.com/opencontainers/image-spec/blob/master/config.md#imageid) for the image.\n\nFor example, an image with two layers would look something like this:\n\n![image anatomy](/images/image-anatomy.dot.svg)\n\n### Anatomy of an index\n\nIn the normal case, an [index](https://github.com/opencontainers/image-spec/blob/master/image-index.md) is used to represent a multi-platform image.\nThis was the original use case for a [manifest\nlist](https://docs.docker.com/registry/spec/manifest-v2-2/#manifest-list).\n\n![image index anatomy](/images/index-anatomy.dot.svg)\n\nIt is possible for an index to reference another index, per the OCI\n[image-spec](https://github.com/opencontainers/image-spec/blob/master/media-types.md#compatibility-matrix).\nIn theory, both an image and image index can reference arbitrary things via\n[descriptors](https://github.com/opencontainers/image-spec/blob/master/descriptor.md),\ne.g. see the [image layout\nexample](https://github.com/opencontainers/image-spec/blob/master/image-layout.md#index-example),\nwhich references an application/xml file from an image index.\n\nThat could look something like this:\n\n![strange image index anatomy](/images/index-anatomy-strange.dot.svg)\n\nUsing a recursive index like this might not be possible with all registries,\nbut this flexibility allows for some interesting applications, e.g. the\n[OCI Artifacts](https://github.com/opencontainers/artifacts) effort.\n\n### Anatomy of an image upload\n\nThe structure of an image requires a delicate ordering when uploading an image to a registry.\nBelow is a (slightly simplified) figure that describes how an image is prepared for upload\nto a registry and how the data flows between various artifacts:\n\n![upload](/images/upload.dot.svg)\n\nNote that:\n\n* A config file references the uncompressed layer contents by sha256.\n* A manifest references the compressed layer contents by sha256 and the size of the layer.\n* A manifest references the config file contents by sha256 and the size of the file.\n\nIt follows that during an upload, we need to upload layers before the config file,\nand we need to upload the config file before the manifest.\n\nSometimes, we know all of this information ahead of time, (e.g. when copying from remote.Image),\nso the ordering is less important.\n\nIn other cases, e.g. when using a [`stream.Layer`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/stream#Layer),\nwe can't compute anything until we have already uploaded the layer, so we need to be careful about ordering.\n\n## Caveats\n\n### schema 1\n\nThis package does not support schema 1 images, see [`#377`](https://github.com/google/go-containerregistry/issues/377),\nhowever, it's possible to do _something_ useful with them via [`remote.Get`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote#Get),\nwhich doesn't try to interpret what is returned by the registry.\n\n[`crane.Copy`](https://godoc.org/github.com/google/go-containerregistry/pkg/crane#Copy) takes advantage of this to implement support for copying schema 1 images,\nsee [here](https://github.com/google/go-containerregistry/blob/main/pkg/internal/legacy/copy.go).\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/catalog.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n)\n\ntype Catalogs struct {\n\tRepos []string `json:\"repositories\"`\n\tNext  string   `json:\"next,omitempty\"`\n}\n\n// CatalogPage calls /_catalog, returning the list of repositories on the registry.\nfunc CatalogPage(target name.Registry, last string, n int, options ...Option) ([]string, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf, err := newPuller(o).fetcher(o.context, target)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\turi := url.URL{\n\t\tScheme:   target.Scheme(),\n\t\tHost:     target.RegistryStr(),\n\t\tPath:     \"/v2/_catalog\",\n\t\tRawQuery: fmt.Sprintf(\"last=%s&n=%d\", url.QueryEscape(last), n),\n\t}\n\n\treq, err := http.NewRequest(http.MethodGet, uri.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp, err := f.client.Do(req.WithContext(o.context))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar parsed Catalogs\n\tif err := json.NewDecoder(resp.Body).Decode(&parsed); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn parsed.Repos, nil\n}\n\n// Catalog calls /_catalog, returning the list of repositories on the registry.\nfunc Catalog(ctx context.Context, target name.Registry, options ...Option) ([]string, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// WithContext overrides the ctx passed directly.\n\tif o.context != context.Background() {\n\t\tctx = o.context\n\t}\n\n\treturn newPuller(o).catalog(ctx, target, o.pageSize)\n}\n\nfunc (f *fetcher) catalogPage(ctx context.Context, reg name.Registry, next string, pageSize int) (*Catalogs, error) {\n\tif next == \"\" {\n\t\turi := &url.URL{\n\t\t\tScheme: reg.Scheme(),\n\t\t\tHost:   reg.RegistryStr(),\n\t\t\tPath:   \"/v2/_catalog\",\n\t\t}\n\t\tif pageSize > 0 {\n\t\t\turi.RawQuery = fmt.Sprintf(\"n=%d\", pageSize)\n\t\t}\n\t\tnext = uri.String()\n\t}\n\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", next, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := f.client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\treturn nil, err\n\t}\n\n\tparsed := Catalogs{}\n\tif err := json.NewDecoder(resp.Body).Decode(&parsed); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := resp.Body.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\turi, err := getNextPageURL(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif uri != nil {\n\t\tparsed.Next = uri.String()\n\t}\n\n\treturn &parsed, nil\n}\n\ntype Catalogger struct {\n\tf        *fetcher\n\treg      name.Registry\n\tpageSize int\n\n\tpage *Catalogs\n\terr  error\n\n\tneedMore bool\n}\n\nfunc (l *Catalogger) Next(ctx context.Context) (*Catalogs, error) {\n\tif l.needMore {\n\t\tl.page, l.err = l.f.catalogPage(ctx, l.reg, l.page.Next, l.pageSize)\n\t} else {\n\t\tl.needMore = true\n\t}\n\treturn l.page, l.err\n}\n\nfunc (l *Catalogger) HasNext() bool {\n\treturn l.page != nil && (!l.needMore || l.page.Next != \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/check.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n)\n\n// CheckPushPermission returns an error if the given keychain cannot authorize\n// a push operation to the given ref.\n//\n// This can be useful to check whether the caller has permission to push an\n// image before doing work to construct the image.\n//\n// TODO(#412): Remove the need for this method.\nfunc CheckPushPermission(ref name.Reference, kc authn.Keychain, t http.RoundTripper) error {\n\tauth, err := kc.Resolve(ref.Context().Registry)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"resolving authorization for %v failed: %w\", ref.Context().Registry, err)\n\t}\n\n\tscopes := []string{ref.Scope(transport.PushScope)}\n\ttr, err := transport.NewWithContext(context.TODO(), ref.Context().Registry, auth, t, scopes)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"creating push check transport for %v failed: %w\", ref.Context().Registry, err)\n\t}\n\t// TODO(jasonhall): Against GCR, just doing the token handshake is\n\t// enough, but this doesn't extend to Dockerhub\n\t// (https://github.com/docker/hub-feedback/issues/1771), so we actually\n\t// need to initiate an upload to tell whether the credentials can\n\t// authorize a push. Figure out how to return early here when we can,\n\t// to avoid a roundtrip for spec-compliant registries.\n\tw := writer{\n\t\trepo:   ref.Context(),\n\t\tclient: &http.Client{Transport: tr},\n\t}\n\tloc, _, err := w.initiateUpload(context.Background(), \"\", \"\", \"\")\n\tif loc != \"\" {\n\t\t// Since we're only initiating the upload to check whether we\n\t\t// can, we should attempt to cancel it, in case initiating\n\t\t// reserves some resources on the server. We shouldn't wait for\n\t\t// cancelling to complete, and we don't care if it fails.\n\t\tgo w.cancelUpload(loc)\n\t}\n\treturn err\n}\n\nfunc (w *writer) cancelUpload(loc string) {\n\treq, err := http.NewRequest(http.MethodDelete, loc, nil)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _ = w.client.Do(req)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"github.com/google/go-containerregistry/pkg/name\"\n)\n\n// Delete removes the specified image reference from the remote registry.\nfunc Delete(ref name.Reference, options ...Option) error {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn newPusher(o).Delete(o.context, ref)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/descriptor.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nvar allManifestMediaTypes = append(append([]types.MediaType{\n\ttypes.DockerManifestSchema1,\n\ttypes.DockerManifestSchema1Signed,\n}, acceptableImageMediaTypes...), acceptableIndexMediaTypes...)\n\n// ErrSchema1 indicates that we received a schema1 manifest from the registry.\n// This library doesn't have plans to support this legacy image format:\n// https://github.com/google/go-containerregistry/issues/377\nvar ErrSchema1 = errors.New(\"see https://github.com/google/go-containerregistry/issues/377\")\n\n// newErrSchema1 returns an ErrSchema1 with the unexpected MediaType.\nfunc newErrSchema1(schema types.MediaType) error {\n\treturn fmt.Errorf(\"unsupported MediaType: %q, %w\", schema, ErrSchema1)\n}\n\n// Descriptor provides access to metadata about remote artifact and accessors\n// for efficiently converting it into a v1.Image or v1.ImageIndex.\ntype Descriptor struct {\n\tfetcher fetcher\n\tv1.Descriptor\n\n\tref      name.Reference\n\tManifest []byte\n\tctx      context.Context\n\n\t// So we can share this implementation with Image.\n\tplatform v1.Platform\n}\n\nfunc (d *Descriptor) toDesc() v1.Descriptor {\n\treturn d.Descriptor\n}\n\n// RawManifest exists to satisfy the Taggable interface.\nfunc (d *Descriptor) RawManifest() ([]byte, error) {\n\treturn d.Manifest, nil\n}\n\n// Get returns a remote.Descriptor for the given reference. The response from\n// the registry is left un-interpreted, for the most part. This is useful for\n// querying what kind of artifact a reference represents.\n//\n// See Head if you don't need the response body.\nfunc Get(ref name.Reference, options ...Option) (*Descriptor, error) {\n\treturn get(ref, allManifestMediaTypes, options...)\n}\n\n// Head returns a v1.Descriptor for the given reference by issuing a HEAD\n// request.\n//\n// Note that the server response will not have a body, so any errors encountered\n// should be retried with Get to get more details.\nfunc Head(ref name.Reference, options ...Option) (*v1.Descriptor, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn newPuller(o).Head(o.context, ref)\n}\n\n// Handle options and fetch the manifest with the acceptable MediaTypes in the\n// Accept header.\nfunc get(ref name.Reference, acceptable []types.MediaType, options ...Option) (*Descriptor, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newPuller(o).get(o.context, ref, acceptable, o.platform)\n}\n\n// Image converts the Descriptor into a v1.Image.\n//\n// If the fetched artifact is already an image, it will just return it.\n//\n// If the fetched artifact is an index, it will attempt to resolve the index to\n// a child image with the appropriate platform.\n//\n// See WithPlatform to set the desired platform.\nfunc (d *Descriptor) Image() (v1.Image, error) {\n\tswitch d.MediaType {\n\tcase types.DockerManifestSchema1, types.DockerManifestSchema1Signed:\n\t\t// We don't care to support schema 1 images:\n\t\t// https://github.com/google/go-containerregistry/issues/377\n\t\treturn nil, newErrSchema1(d.MediaType)\n\tcase types.OCIImageIndex, types.DockerManifestList:\n\t\t// We want an image but the registry has an index, resolve it to an image.\n\t\treturn d.remoteIndex().imageByPlatform(d.platform)\n\tcase types.OCIManifestSchema1, types.DockerManifestSchema2:\n\t\t// These are expected. Enumerated here to allow a default case.\n\tdefault:\n\t\t// We could just return an error here, but some registries (e.g. static\n\t\t// registries) don't set the Content-Type headers correctly, so instead...\n\t\tlogs.Warn.Printf(\"Unexpected media type for Image(): %s\", d.MediaType)\n\t}\n\n\t// Wrap the v1.Layers returned by this v1.Image in a hint for downstream\n\t// remote.Write calls to facilitate cross-repo \"mounting\".\n\timgCore, err := partial.CompressedToImage(d.remoteImage())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &mountableImage{\n\t\tImage:     imgCore,\n\t\tReference: d.ref,\n\t}, nil\n}\n\n// Schema1 converts the Descriptor into a v1.Image for v2 schema 1 media types.\n//\n// The v1.Image returned by this method does not implement the entire interface because it would be inefficient.\n// This exists mostly to make it easier to copy schema 1 images around or look at their filesystems.\n// This is separate from Image() to avoid a backward incompatible change for callers expecting ErrSchema1.\nfunc (d *Descriptor) Schema1() (v1.Image, error) {\n\ti := &schema1{\n\t\tref:        d.ref,\n\t\tfetcher:    d.fetcher,\n\t\tctx:        d.ctx,\n\t\tmanifest:   d.Manifest,\n\t\tmediaType:  d.MediaType,\n\t\tdescriptor: &d.Descriptor,\n\t}\n\n\treturn &mountableImage{\n\t\tImage:     i,\n\t\tReference: d.ref,\n\t}, nil\n}\n\n// ImageIndex converts the Descriptor into a v1.ImageIndex.\nfunc (d *Descriptor) ImageIndex() (v1.ImageIndex, error) {\n\tswitch d.MediaType {\n\tcase types.DockerManifestSchema1, types.DockerManifestSchema1Signed:\n\t\t// We don't care to support schema 1 images:\n\t\t// https://github.com/google/go-containerregistry/issues/377\n\t\treturn nil, newErrSchema1(d.MediaType)\n\tcase types.OCIManifestSchema1, types.DockerManifestSchema2:\n\t\t// We want an index but the registry has an image, nothing we can do.\n\t\treturn nil, fmt.Errorf(\"unexpected media type for ImageIndex(): %s; call Image() instead\", d.MediaType)\n\tcase types.OCIImageIndex, types.DockerManifestList:\n\t\t// These are expected.\n\tdefault:\n\t\t// We could just return an error here, but some registries (e.g. static\n\t\t// registries) don't set the Content-Type headers correctly, so instead...\n\t\tlogs.Warn.Printf(\"Unexpected media type for ImageIndex(): %s\", d.MediaType)\n\t}\n\treturn d.remoteIndex(), nil\n}\n\nfunc (d *Descriptor) remoteImage() *remoteImage {\n\treturn &remoteImage{\n\t\tref:        d.ref,\n\t\tctx:        d.ctx,\n\t\tfetcher:    d.fetcher,\n\t\tmanifest:   d.Manifest,\n\t\tmediaType:  d.MediaType,\n\t\tdescriptor: &d.Descriptor,\n\t}\n}\n\nfunc (d *Descriptor) remoteIndex() *remoteIndex {\n\treturn &remoteIndex{\n\t\tref:        d.ref,\n\t\tctx:        d.ctx,\n\t\tfetcher:    d.fetcher,\n\t\tmanifest:   d.Manifest,\n\t\tmediaType:  d.MediaType,\n\t\tdescriptor: &d.Descriptor,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote provides facilities for reading/writing v1.Images from/to\n// a remote image registry.\npackage remote\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/fetcher.go",
    "content": "// Copyright 2023 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/internal/verify\"\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nconst (\n\tkib           = 1024\n\tmib           = 1024 * kib\n\tmanifestLimit = 100 * mib\n)\n\n// fetcher implements methods for reading from a registry.\ntype fetcher struct {\n\ttarget resource\n\tclient *http.Client\n}\n\nfunc makeFetcher(ctx context.Context, target resource, o *options) (*fetcher, error) {\n\tauth := o.auth\n\tif o.keychain != nil {\n\t\tkauth, err := authn.Resolve(ctx, o.keychain, target)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tauth = kauth\n\t}\n\n\treg, ok := target.(name.Registry)\n\tif !ok {\n\t\trepo, ok := target.(name.Repository)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unexpected resource: %T\", target)\n\t\t}\n\t\treg = repo.Registry\n\t}\n\n\ttr, err := transport.NewWithContext(ctx, reg, auth, o.transport, []string{target.Scope(transport.PullScope)})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &fetcher{\n\t\ttarget: target,\n\t\tclient: &http.Client{Transport: tr},\n\t}, nil\n}\n\nfunc (f *fetcher) Do(req *http.Request) (*http.Response, error) {\n\treturn f.client.Do(req)\n}\n\ntype resource interface {\n\tScheme() string\n\tRegistryStr() string\n\tScope(string) string\n\n\tauthn.Resource\n}\n\n// url returns a url.Url for the specified path in the context of this remote image reference.\nfunc (f *fetcher) url(resource, identifier string) url.URL {\n\tu := url.URL{\n\t\tScheme: f.target.Scheme(),\n\t\tHost:   f.target.RegistryStr(),\n\t\t// Default path if this is not a repository.\n\t\tPath: \"/v2/_catalog\",\n\t}\n\tif repo, ok := f.target.(name.Repository); ok {\n\t\tu.Path = fmt.Sprintf(\"/v2/%s/%s/%s\", repo.RepositoryStr(), resource, identifier)\n\t}\n\treturn u\n}\n\nfunc (f *fetcher) get(ctx context.Context, ref name.Reference, acceptable []types.MediaType, platform v1.Platform) (*Descriptor, error) {\n\tb, desc, err := f.fetchManifest(ctx, ref, acceptable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Descriptor{\n\t\tref:        ref,\n\t\tctx:        ctx,\n\t\tfetcher:    *f,\n\t\tManifest:   b,\n\t\tDescriptor: *desc,\n\t\tplatform:   platform,\n\t}, nil\n}\n\nfunc (f *fetcher) fetchManifest(ctx context.Context, ref name.Reference, acceptable []types.MediaType) ([]byte, *v1.Descriptor, error) {\n\tu := f.url(\"manifests\", ref.Identifier())\n\treq, err := http.NewRequest(http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\taccept := []string{}\n\tfor _, mt := range acceptable {\n\t\taccept = append(accept, string(mt))\n\t}\n\treq.Header.Set(\"Accept\", strings.Join(accept, \",\"))\n\n\tresp, err := f.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tmanifest, err := io.ReadAll(io.LimitReader(resp.Body, manifestLimit))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tdigest, size, err := v1.SHA256(bytes.NewReader(manifest))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tmediaType := types.MediaType(resp.Header.Get(\"Content-Type\"))\n\tcontentDigest, err := v1.NewHash(resp.Header.Get(\"Docker-Content-Digest\"))\n\tif err == nil && mediaType == types.DockerManifestSchema1Signed {\n\t\t// If we can parse the digest from the header, and it's a signed schema 1\n\t\t// manifest, let's use that for the digest to appease older registries.\n\t\tdigest = contentDigest\n\t}\n\n\t// Validate the digest matches what we asked for, if pulling by digest.\n\tif dgst, ok := ref.(name.Digest); ok {\n\t\tif digest.String() != dgst.DigestStr() {\n\t\t\treturn nil, nil, fmt.Errorf(\"manifest digest: %q does not match requested digest: %q for %q\", digest, dgst.DigestStr(), ref)\n\t\t}\n\t}\n\n\tvar artifactType string\n\tmf, _ := v1.ParseManifest(bytes.NewReader(manifest))\n\t// Failing to parse as a manifest should just be ignored.\n\t// The manifest might not be valid, and that's okay.\n\tif mf != nil && !mf.Config.MediaType.IsConfig() {\n\t\tartifactType = string(mf.Config.MediaType)\n\t}\n\n\t// Do nothing for tags; I give up.\n\t//\n\t// We'd like to validate that the \"Docker-Content-Digest\" header matches what is returned by the registry,\n\t// but so many registries implement this incorrectly that it's not worth checking.\n\t//\n\t// For reference:\n\t// https://github.com/GoogleContainerTools/kaniko/issues/298\n\n\t// Return all this info since we have to calculate it anyway.\n\tdesc := v1.Descriptor{\n\t\tDigest:       digest,\n\t\tSize:         size,\n\t\tMediaType:    mediaType,\n\t\tArtifactType: artifactType,\n\t}\n\n\treturn manifest, &desc, nil\n}\n\nfunc (f *fetcher) headManifest(ctx context.Context, ref name.Reference, acceptable []types.MediaType) (*v1.Descriptor, error) {\n\tu := f.url(\"manifests\", ref.Identifier())\n\treq, err := http.NewRequest(http.MethodHead, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\taccept := []string{}\n\tfor _, mt := range acceptable {\n\t\taccept = append(accept, string(mt))\n\t}\n\treq.Header.Set(\"Accept\", strings.Join(accept, \",\"))\n\n\tresp, err := f.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmth := resp.Header.Get(\"Content-Type\")\n\tif mth == \"\" {\n\t\treturn nil, fmt.Errorf(\"HEAD %s: response did not include Content-Type header\", u.String())\n\t}\n\tmediaType := types.MediaType(mth)\n\n\tsize := resp.ContentLength\n\tif size == -1 {\n\t\treturn nil, fmt.Errorf(\"GET %s: response did not include Content-Length header\", u.String())\n\t}\n\n\tdh := resp.Header.Get(\"Docker-Content-Digest\")\n\tif dh == \"\" {\n\t\treturn nil, fmt.Errorf(\"HEAD %s: response did not include Docker-Content-Digest header\", u.String())\n\t}\n\tdigest, err := v1.NewHash(dh)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Validate the digest matches what we asked for, if pulling by digest.\n\tif dgst, ok := ref.(name.Digest); ok {\n\t\tif digest.String() != dgst.DigestStr() {\n\t\t\treturn nil, fmt.Errorf(\"manifest digest: %q does not match requested digest: %q for %q\", digest, dgst.DigestStr(), ref)\n\t\t}\n\t}\n\n\t// Return all this info since we have to calculate it anyway.\n\treturn &v1.Descriptor{\n\t\tDigest:    digest,\n\t\tSize:      size,\n\t\tMediaType: mediaType,\n\t}, nil\n}\n\nfunc (f *fetcher) fetchBlob(ctx context.Context, size int64, h v1.Hash) (io.ReadCloser, error) {\n\tu := f.url(\"blobs\", h.String())\n\treq, err := http.NewRequest(http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := f.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, redact.Error(err)\n\t}\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\tresp.Body.Close()\n\t\treturn nil, err\n\t}\n\n\t// Do whatever we can.\n\t// If we have an expected size and Content-Length doesn't match, return an error.\n\t// If we don't have an expected size and we do have a Content-Length, use Content-Length.\n\tif hsize := resp.ContentLength; hsize != -1 {\n\t\tif size == verify.SizeUnknown {\n\t\t\tsize = hsize\n\t\t} else if hsize != size {\n\t\t\treturn nil, fmt.Errorf(\"GET %s: Content-Length header %d does not match expected size %d\", u.String(), hsize, size)\n\t\t}\n\t}\n\n\treturn verify.ReadCloser(resp.Body, size, h)\n}\n\nfunc (f *fetcher) headBlob(ctx context.Context, h v1.Hash) (*http.Response, error) {\n\tu := f.url(\"blobs\", h.String())\n\treq, err := http.NewRequest(http.MethodHead, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := f.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, redact.Error(err)\n\t}\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\tresp.Body.Close()\n\t\treturn nil, err\n\t}\n\n\treturn resp, nil\n}\n\nfunc (f *fetcher) blobExists(ctx context.Context, h v1.Hash) (bool, error) {\n\tu := f.url(\"blobs\", h.String())\n\treq, err := http.NewRequest(http.MethodHead, u.String(), nil)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tresp, err := f.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn false, redact.Error(err)\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound); err != nil {\n\t\treturn false, err\n\t}\n\n\treturn resp.StatusCode == http.StatusOK, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/internal/verify\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nvar acceptableImageMediaTypes = []types.MediaType{\n\ttypes.DockerManifestSchema2,\n\ttypes.OCIManifestSchema1,\n}\n\n// remoteImage accesses an image from a remote registry\ntype remoteImage struct {\n\tfetcher      fetcher\n\tref          name.Reference\n\tctx          context.Context\n\tmanifestLock sync.Mutex // Protects manifest\n\tmanifest     []byte\n\tconfigLock   sync.Mutex // Protects config\n\tconfig       []byte\n\tmediaType    types.MediaType\n\tdescriptor   *v1.Descriptor\n}\n\nfunc (r *remoteImage) ArtifactType() (string, error) {\n\t// kind of a hack, but RawManifest does appropriate locking/memoization\n\t// and makes sure r.descriptor is populated.\n\tif _, err := r.RawManifest(); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn r.descriptor.ArtifactType, nil\n}\n\nvar _ partial.CompressedImageCore = (*remoteImage)(nil)\n\n// Image provides access to a remote image reference.\nfunc Image(ref name.Reference, options ...Option) (v1.Image, error) {\n\tdesc, err := Get(ref, options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn desc.Image()\n}\n\nfunc (r *remoteImage) MediaType() (types.MediaType, error) {\n\tif string(r.mediaType) != \"\" {\n\t\treturn r.mediaType, nil\n\t}\n\treturn types.DockerManifestSchema2, nil\n}\n\nfunc (r *remoteImage) RawManifest() ([]byte, error) {\n\tr.manifestLock.Lock()\n\tdefer r.manifestLock.Unlock()\n\tif r.manifest != nil {\n\t\treturn r.manifest, nil\n\t}\n\n\t// NOTE(jonjohnsonjr): We should never get here because the public entrypoints\n\t// do type-checking via remote.Descriptor. I've left this here for tests that\n\t// directly instantiate a remoteImage.\n\tmanifest, desc, err := r.fetcher.fetchManifest(r.ctx, r.ref, acceptableImageMediaTypes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif r.descriptor == nil {\n\t\tr.descriptor = desc\n\t}\n\tr.mediaType = desc.MediaType\n\tr.manifest = manifest\n\treturn r.manifest, nil\n}\n\nfunc (r *remoteImage) RawConfigFile() ([]byte, error) {\n\tr.configLock.Lock()\n\tdefer r.configLock.Unlock()\n\tif r.config != nil {\n\t\treturn r.config, nil\n\t}\n\n\tm, err := partial.Manifest(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif m.Config.Data != nil {\n\t\tif err := verify.Descriptor(m.Config); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tr.config = m.Config.Data\n\t\treturn r.config, nil\n\t}\n\n\tbody, err := r.fetcher.fetchBlob(r.ctx, m.Config.Size, m.Config.Digest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer body.Close()\n\n\tr.config, err = io.ReadAll(body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn r.config, nil\n}\n\n// Descriptor retains the original descriptor from an index manifest.\n// See partial.Descriptor.\nfunc (r *remoteImage) Descriptor() (*v1.Descriptor, error) {\n\t// kind of a hack, but RawManifest does appropriate locking/memoization\n\t// and makes sure r.descriptor is populated.\n\t_, err := r.RawManifest()\n\treturn r.descriptor, err\n}\n\nfunc (r *remoteImage) ConfigLayer() (v1.Layer, error) {\n\tif _, err := r.RawManifest(); err != nil {\n\t\treturn nil, err\n\t}\n\tm, err := partial.Manifest(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn partial.CompressedToLayer(&remoteImageLayer{\n\t\tri:     r,\n\t\tctx:    r.ctx,\n\t\tdigest: m.Config.Digest,\n\t})\n}\n\n// remoteImageLayer implements partial.CompressedLayer\ntype remoteImageLayer struct {\n\tri     *remoteImage\n\tctx    context.Context\n\tdigest v1.Hash\n}\n\n// Digest implements partial.CompressedLayer\nfunc (rl *remoteImageLayer) Digest() (v1.Hash, error) {\n\treturn rl.digest, nil\n}\n\n// Compressed implements partial.CompressedLayer\nfunc (rl *remoteImageLayer) Compressed() (io.ReadCloser, error) {\n\turls := []url.URL{rl.ri.fetcher.url(\"blobs\", rl.digest.String())}\n\n\t// Add alternative layer sources from URLs (usually none).\n\td, err := partial.BlobDescriptor(rl, rl.digest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif d.Data != nil {\n\t\treturn verify.ReadCloser(io.NopCloser(bytes.NewReader(d.Data)), d.Size, d.Digest)\n\t}\n\n\t// We don't want to log binary layers -- this can break terminals.\n\tctx := redact.NewContext(rl.ctx, \"omitting binary blobs from logs\")\n\n\tfor _, s := range d.URLs {\n\t\tu, err := url.Parse(s)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\turls = append(urls, *u)\n\t}\n\n\t// The lastErr for most pulls will be the same (the first error), but for\n\t// foreign layers we'll want to surface the last one, since we try to pull\n\t// from the registry first, which would often fail.\n\t// TODO: Maybe we don't want to try pulling from the registry first?\n\tvar lastErr error\n\tfor _, u := range urls {\n\t\treq, err := http.NewRequest(http.MethodGet, u.String(), nil)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresp, err := rl.ri.fetcher.Do(req.WithContext(ctx))\n\t\tif err != nil {\n\t\t\tlastErr = err\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\t\tresp.Body.Close()\n\t\t\tlastErr = err\n\t\t\tcontinue\n\t\t}\n\n\t\treturn verify.ReadCloser(resp.Body, d.Size, rl.digest)\n\t}\n\n\treturn nil, lastErr\n}\n\n// Manifest implements partial.WithManifest so that we can use partial.BlobSize below.\nfunc (rl *remoteImageLayer) Manifest() (*v1.Manifest, error) {\n\treturn partial.Manifest(rl.ri)\n}\n\n// MediaType implements v1.Layer\nfunc (rl *remoteImageLayer) MediaType() (types.MediaType, error) {\n\tbd, err := partial.BlobDescriptor(rl, rl.digest)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn bd.MediaType, nil\n}\n\n// Size implements partial.CompressedLayer\nfunc (rl *remoteImageLayer) Size() (int64, error) {\n\t// Look up the size of this digest in the manifest to avoid a request.\n\treturn partial.BlobSize(rl, rl.digest)\n}\n\n// ConfigFile implements partial.WithManifestAndConfigFile so that we can use partial.BlobToDiffID below.\nfunc (rl *remoteImageLayer) ConfigFile() (*v1.ConfigFile, error) {\n\treturn partial.ConfigFile(rl.ri)\n}\n\n// DiffID implements partial.WithDiffID so that we don't recompute a DiffID that we already have\n// available in our ConfigFile.\nfunc (rl *remoteImageLayer) DiffID() (v1.Hash, error) {\n\treturn partial.BlobToDiffID(rl, rl.digest)\n}\n\n// Descriptor retains the original descriptor from an image manifest.\n// See partial.Descriptor.\nfunc (rl *remoteImageLayer) Descriptor() (*v1.Descriptor, error) {\n\treturn partial.BlobDescriptor(rl, rl.digest)\n}\n\n// See partial.Exists.\nfunc (rl *remoteImageLayer) Exists() (bool, error) {\n\treturn rl.ri.fetcher.blobExists(rl.ri.ctx, rl.digest)\n}\n\n// LayerByDigest implements partial.CompressedLayer\nfunc (r *remoteImage) LayerByDigest(h v1.Hash) (partial.CompressedLayer, error) {\n\treturn &remoteImageLayer{\n\t\tri:     r,\n\t\tctx:    r.ctx,\n\t\tdigest: h,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/index.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/internal/verify\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nvar acceptableIndexMediaTypes = []types.MediaType{\n\ttypes.DockerManifestList,\n\ttypes.OCIImageIndex,\n}\n\n// remoteIndex accesses an index from a remote registry\ntype remoteIndex struct {\n\tfetcher      fetcher\n\tref          name.Reference\n\tctx          context.Context\n\tmanifestLock sync.Mutex // Protects manifest\n\tmanifest     []byte\n\tmediaType    types.MediaType\n\tdescriptor   *v1.Descriptor\n}\n\n// Index provides access to a remote index reference.\nfunc Index(ref name.Reference, options ...Option) (v1.ImageIndex, error) {\n\tdesc, err := get(ref, acceptableIndexMediaTypes, options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn desc.ImageIndex()\n}\n\nfunc (r *remoteIndex) MediaType() (types.MediaType, error) {\n\tif string(r.mediaType) != \"\" {\n\t\treturn r.mediaType, nil\n\t}\n\treturn types.DockerManifestList, nil\n}\n\nfunc (r *remoteIndex) Digest() (v1.Hash, error) {\n\treturn partial.Digest(r)\n}\n\nfunc (r *remoteIndex) Size() (int64, error) {\n\treturn partial.Size(r)\n}\n\nfunc (r *remoteIndex) RawManifest() ([]byte, error) {\n\tr.manifestLock.Lock()\n\tdefer r.manifestLock.Unlock()\n\tif r.manifest != nil {\n\t\treturn r.manifest, nil\n\t}\n\n\t// NOTE(jonjohnsonjr): We should never get here because the public entrypoints\n\t// do type-checking via remote.Descriptor. I've left this here for tests that\n\t// directly instantiate a remoteIndex.\n\tmanifest, desc, err := r.fetcher.fetchManifest(r.ctx, r.ref, acceptableIndexMediaTypes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif r.descriptor == nil {\n\t\tr.descriptor = desc\n\t}\n\tr.mediaType = desc.MediaType\n\tr.manifest = manifest\n\treturn r.manifest, nil\n}\n\nfunc (r *remoteIndex) IndexManifest() (*v1.IndexManifest, error) {\n\tb, err := r.RawManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn v1.ParseIndexManifest(bytes.NewReader(b))\n}\n\nfunc (r *remoteIndex) Image(h v1.Hash) (v1.Image, error) {\n\tdesc, err := r.childByHash(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Descriptor.Image will handle coercing nested indexes into an Image.\n\treturn desc.Image()\n}\n\n// Descriptor retains the original descriptor from an index manifest.\n// See partial.Descriptor.\nfunc (r *remoteIndex) Descriptor() (*v1.Descriptor, error) {\n\t// kind of a hack, but RawManifest does appropriate locking/memoization\n\t// and makes sure r.descriptor is populated.\n\t_, err := r.RawManifest()\n\treturn r.descriptor, err\n}\n\nfunc (r *remoteIndex) ImageIndex(h v1.Hash) (v1.ImageIndex, error) {\n\tdesc, err := r.childByHash(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn desc.ImageIndex()\n}\n\n// Workaround for #819.\nfunc (r *remoteIndex) Layer(h v1.Hash) (v1.Layer, error) {\n\tindex, err := r.IndexManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, childDesc := range index.Manifests {\n\t\tif h == childDesc.Digest {\n\t\t\tl, err := partial.CompressedToLayer(&remoteLayer{\n\t\t\t\tfetcher: r.fetcher,\n\t\t\t\tctx:     r.ctx,\n\t\t\t\tdigest:  h,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn &MountableLayer{\n\t\t\t\tLayer:     l,\n\t\t\t\tReference: r.ref.Context().Digest(h.String()),\n\t\t\t}, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"layer not found: %s\", h)\n}\n\nfunc (r *remoteIndex) imageByPlatform(platform v1.Platform) (v1.Image, error) {\n\tdesc, err := r.childByPlatform(platform)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Descriptor.Image will handle coercing nested indexes into an Image.\n\treturn desc.Image()\n}\n\n// This naively matches the first manifest with matching platform attributes.\n//\n// We should probably use this instead:\n//\n//\tgithub.com/containerd/containerd/platforms\n//\n// But first we'd need to migrate to:\n//\n//\tgithub.com/opencontainers/image-spec/specs-go/v1\nfunc (r *remoteIndex) childByPlatform(platform v1.Platform) (*Descriptor, error) {\n\tindex, err := r.IndexManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, childDesc := range index.Manifests {\n\t\t// If platform is missing from child descriptor, assume it's amd64/linux.\n\t\tp := defaultPlatform\n\t\tif childDesc.Platform != nil {\n\t\t\tp = *childDesc.Platform\n\t\t}\n\n\t\tif matchesPlatform(p, platform) {\n\t\t\treturn r.childDescriptor(childDesc, platform)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"no child with platform %+v in index %s\", platform, r.ref)\n}\n\nfunc (r *remoteIndex) childByHash(h v1.Hash) (*Descriptor, error) {\n\tindex, err := r.IndexManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, childDesc := range index.Manifests {\n\t\tif h == childDesc.Digest {\n\t\t\treturn r.childDescriptor(childDesc, defaultPlatform)\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"no child with digest %s in index %s\", h, r.ref)\n}\n\n// Convert one of this index's child's v1.Descriptor into a remote.Descriptor, with the given platform option.\nfunc (r *remoteIndex) childDescriptor(child v1.Descriptor, platform v1.Platform) (*Descriptor, error) {\n\tref := r.ref.Context().Digest(child.Digest.String())\n\tvar (\n\t\tmanifest []byte\n\t\terr      error\n\t)\n\tif child.Data != nil {\n\t\tif err := verify.Descriptor(child); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmanifest = child.Data\n\t} else {\n\t\tmanifest, _, err = r.fetcher.fetchManifest(r.ctx, ref, []types.MediaType{child.MediaType})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif child.MediaType.IsImage() {\n\t\tmf, _ := v1.ParseManifest(bytes.NewReader(manifest))\n\t\t// Failing to parse as a manifest should just be ignored.\n\t\t// The manifest might not be valid, and that's okay.\n\t\tif mf != nil && !mf.Config.MediaType.IsConfig() {\n\t\t\tchild.ArtifactType = string(mf.Config.MediaType)\n\t\t}\n\t}\n\n\treturn &Descriptor{\n\t\tref:        ref,\n\t\tctx:        r.ctx,\n\t\tfetcher:    r.fetcher,\n\t\tManifest:   manifest,\n\t\tDescriptor: child,\n\t\tplatform:   platform,\n\t}, nil\n}\n\n// matchesPlatform checks if the given platform matches the required platforms.\n// The given platform matches the required platform if\n// - architecture and OS are identical.\n// - OS version and variant are identical if provided.\n// - features and OS features of the required platform are subsets of those of the given platform.\nfunc matchesPlatform(given, required v1.Platform) bool {\n\t// Required fields that must be identical.\n\tif given.Architecture != required.Architecture || given.OS != required.OS {\n\t\treturn false\n\t}\n\n\t// Optional fields that may be empty, but must be identical if provided.\n\tif required.OSVersion != \"\" && given.OSVersion != required.OSVersion {\n\t\treturn false\n\t}\n\tif required.Variant != \"\" && given.Variant != required.Variant {\n\t\treturn false\n\t}\n\n\t// Verify required platform's features are a subset of given platform's features.\n\tif !isSubset(given.OSFeatures, required.OSFeatures) {\n\t\treturn false\n\t}\n\tif !isSubset(given.Features, required.Features) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// isSubset checks if the required array of strings is a subset of the given lst.\nfunc isSubset(lst, required []string) bool {\n\tset := make(map[string]bool)\n\tfor _, value := range lst {\n\t\tset[value] = true\n\t}\n\n\tfor _, value := range required {\n\t\tif _, ok := set[value]; !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/layer.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"io\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/internal/verify\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// remoteImagelayer implements partial.CompressedLayer\ntype remoteLayer struct {\n\tctx     context.Context\n\tfetcher fetcher\n\tdigest  v1.Hash\n}\n\n// Compressed implements partial.CompressedLayer\nfunc (rl *remoteLayer) Compressed() (io.ReadCloser, error) {\n\t// We don't want to log binary layers -- this can break terminals.\n\tctx := redact.NewContext(rl.ctx, \"omitting binary blobs from logs\")\n\treturn rl.fetcher.fetchBlob(ctx, verify.SizeUnknown, rl.digest)\n}\n\n// Compressed implements partial.CompressedLayer\nfunc (rl *remoteLayer) Size() (int64, error) {\n\tresp, err := rl.fetcher.headBlob(rl.ctx, rl.digest)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tdefer resp.Body.Close()\n\treturn resp.ContentLength, nil\n}\n\n// Digest implements partial.CompressedLayer\nfunc (rl *remoteLayer) Digest() (v1.Hash, error) {\n\treturn rl.digest, nil\n}\n\n// MediaType implements v1.Layer\nfunc (rl *remoteLayer) MediaType() (types.MediaType, error) {\n\treturn types.DockerLayer, nil\n}\n\n// See partial.Exists.\nfunc (rl *remoteLayer) Exists() (bool, error) {\n\treturn rl.fetcher.blobExists(rl.ctx, rl.digest)\n}\n\n// Layer reads the given blob reference from a registry as a Layer. A blob\n// reference here is just a punned name.Digest where the digest portion is the\n// digest of the blob to be read and the repository portion is the repo where\n// that blob lives.\nfunc Layer(ref name.Digest, options ...Option) (v1.Layer, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newPuller(o).Layer(o.context, ref)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n)\n\n// ListWithContext calls List with the given context.\n//\n// Deprecated: Use List and WithContext. This will be removed in a future release.\nfunc ListWithContext(ctx context.Context, repo name.Repository, options ...Option) ([]string, error) {\n\treturn List(repo, append(options, WithContext(ctx))...)\n}\n\n// List calls /tags/list for the given repository, returning the list of tags\n// in the \"tags\" property.\nfunc List(repo name.Repository, options ...Option) ([]string, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newPuller(o).List(o.context, repo)\n}\n\ntype Tags struct {\n\tName string   `json:\"name\"`\n\tTags []string `json:\"tags\"`\n\tNext string   `json:\"next,omitempty\"`\n}\n\nfunc (f *fetcher) listPage(ctx context.Context, repo name.Repository, next string, pageSize int) (*Tags, error) {\n\tif next == \"\" {\n\t\turi := &url.URL{\n\t\t\tScheme: repo.Scheme(),\n\t\t\tHost:   repo.RegistryStr(),\n\t\t\tPath:   fmt.Sprintf(\"/v2/%s/tags/list\", repo.RepositoryStr()),\n\t\t}\n\t\tif pageSize > 0 {\n\t\t\turi.RawQuery = fmt.Sprintf(\"n=%d\", pageSize)\n\t\t}\n\t\tnext = uri.String()\n\t}\n\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", next, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := f.client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\treturn nil, err\n\t}\n\n\tparsed := Tags{}\n\tif err := json.NewDecoder(resp.Body).Decode(&parsed); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := resp.Body.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\turi, err := getNextPageURL(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif uri != nil {\n\t\tparsed.Next = uri.String()\n\t}\n\n\treturn &parsed, nil\n}\n\n// getNextPageURL checks if there is a Link header in a http.Response which\n// contains a link to the next page. If yes it returns the url.URL of the next\n// page otherwise it returns nil.\nfunc getNextPageURL(resp *http.Response) (*url.URL, error) {\n\tlink := resp.Header.Get(\"Link\")\n\tif link == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tif link[0] != '<' {\n\t\treturn nil, fmt.Errorf(\"failed to parse link header: missing '<' in: %s\", link)\n\t}\n\n\tend := strings.Index(link, \">\")\n\tif end == -1 {\n\t\treturn nil, fmt.Errorf(\"failed to parse link header: missing '>' in: %s\", link)\n\t}\n\tlink = link[1:end]\n\n\tlinkURL, err := url.Parse(link)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif resp.Request == nil || resp.Request.URL == nil {\n\t\treturn nil, nil\n\t}\n\tlinkURL = resp.Request.URL.ResolveReference(linkURL)\n\treturn linkURL, nil\n}\n\ntype Lister struct {\n\tf        *fetcher\n\trepo     name.Repository\n\tpageSize int\n\n\tpage *Tags\n\terr  error\n\n\tneedMore bool\n}\n\nfunc (l *Lister) Next(ctx context.Context) (*Tags, error) {\n\tif l.needMore {\n\t\tl.page, l.err = l.f.listPage(ctx, l.repo, l.page.Next, l.pageSize)\n\t} else {\n\t\tl.needMore = true\n\t}\n\treturn l.page, l.err\n}\n\nfunc (l *Lister) HasNext() bool {\n\treturn l.page != nil && (!l.needMore || l.page.Next != \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n)\n\n// MountableLayer wraps a v1.Layer in a shim that enables the layer to be\n// \"mounted\" when published to another registry.\ntype MountableLayer struct {\n\tv1.Layer\n\n\tReference name.Reference\n}\n\n// Descriptor retains the original descriptor from an image manifest.\n// See partial.Descriptor.\nfunc (ml *MountableLayer) Descriptor() (*v1.Descriptor, error) {\n\treturn partial.Descriptor(ml.Layer)\n}\n\n// Exists is a hack. See partial.Exists.\nfunc (ml *MountableLayer) Exists() (bool, error) {\n\treturn partial.Exists(ml.Layer)\n}\n\n// mountableImage wraps the v1.Layer references returned by the embedded v1.Image\n// in MountableLayer's so that remote.Write might attempt to mount them from their\n// source repository.\ntype mountableImage struct {\n\tv1.Image\n\n\tReference name.Reference\n}\n\n// Layers implements v1.Image\nfunc (mi *mountableImage) Layers() ([]v1.Layer, error) {\n\tls, err := mi.Image.Layers()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmls := make([]v1.Layer, 0, len(ls))\n\tfor _, l := range ls {\n\t\tmls = append(mls, &MountableLayer{\n\t\t\tLayer:     l,\n\t\t\tReference: mi.Reference,\n\t\t})\n\t}\n\treturn mls, nil\n}\n\n// LayerByDigest implements v1.Image\nfunc (mi *mountableImage) LayerByDigest(d v1.Hash) (v1.Layer, error) {\n\tl, err := mi.Image.LayerByDigest(d)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &MountableLayer{\n\t\tLayer:     l,\n\t\tReference: mi.Reference,\n\t}, nil\n}\n\n// LayerByDiffID implements v1.Image\nfunc (mi *mountableImage) LayerByDiffID(d v1.Hash) (v1.Layer, error) {\n\tl, err := mi.Image.LayerByDiffID(d)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &MountableLayer{\n\t\tLayer:     l,\n\t\tReference: mi.Reference,\n\t}, nil\n}\n\n// Descriptor retains the original descriptor from an index manifest.\n// See partial.Descriptor.\nfunc (mi *mountableImage) Descriptor() (*v1.Descriptor, error) {\n\treturn partial.Descriptor(mi.Image)\n}\n\n// ConfigLayer retains the original reference so that it can be mounted.\n// See partial.ConfigLayer.\nfunc (mi *mountableImage) ConfigLayer() (v1.Layer, error) {\n\tl, err := partial.ConfigLayer(mi.Image)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &MountableLayer{\n\t\tLayer:     l,\n\t\tReference: mi.Reference,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/multi_write.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\n// MultiWrite writes the given Images or ImageIndexes to the given refs, as\n// efficiently as possible, by deduping shared layer blobs while uploading them\n// in parallel.\nfunc MultiWrite(todo map[name.Reference]Taggable, options ...Option) (rerr error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif o.progress != nil {\n\t\tdefer func() { o.progress.Close(rerr) }()\n\t}\n\tp := newPusher(o)\n\n\tg, ctx := errgroup.WithContext(o.context)\n\tg.SetLimit(o.jobs)\n\n\tfor ref, t := range todo {\n\t\tref, t := ref, t\n\t\tg.Go(func() error {\n\t\t\treturn p.Push(ctx, ref, t)\n\t\t})\n\t}\n\n\treturn g.Wait()\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/google/go-containerregistry/internal/retry\"\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n)\n\n// Option is a functional option for remote operations.\ntype Option func(*options) error\n\ntype options struct {\n\tauth                           authn.Authenticator\n\tkeychain                       authn.Keychain\n\ttransport                      http.RoundTripper\n\tcontext                        context.Context\n\tjobs                           int\n\tuserAgent                      string\n\tallowNondistributableArtifacts bool\n\tprogress                       *progress\n\tretryBackoff                   Backoff\n\tretryPredicate                 retry.Predicate\n\tretryStatusCodes               []int\n\n\t// Only these options can overwrite Reuse()d options.\n\tplatform v1.Platform\n\tpageSize int\n\tfilter   map[string]string\n\n\t// Set by Reuse, we currently store one or the other.\n\tpuller *Puller\n\tpusher *Pusher\n}\n\nvar defaultPlatform = v1.Platform{\n\tArchitecture: \"amd64\",\n\tOS:           \"linux\",\n}\n\n// Backoff is an alias of retry.Backoff to expose this configuration option to consumers of this lib\ntype Backoff = retry.Backoff\n\nvar defaultRetryPredicate retry.Predicate = func(err error) bool {\n\t// Various failure modes here, as we're often reading from and writing to\n\t// the network.\n\tif retry.IsTemporary(err) || errors.Is(err, io.ErrUnexpectedEOF) || errors.Is(err, io.EOF) || errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) || errors.Is(err, net.ErrClosed) {\n\t\tlogs.Warn.Printf(\"retrying %v\", err)\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Try this three times, waiting 1s after first failure, 3s after second.\nvar defaultRetryBackoff = Backoff{\n\tDuration: 1.0 * time.Second,\n\tFactor:   3.0,\n\tJitter:   0.1,\n\tSteps:    3,\n}\n\n// Useful for tests\nvar fastBackoff = Backoff{\n\tDuration: 1.0 * time.Millisecond,\n\tFactor:   3.0,\n\tJitter:   0.1,\n\tSteps:    3,\n}\n\nvar defaultRetryStatusCodes = []int{\n\thttp.StatusRequestTimeout,\n\thttp.StatusInternalServerError,\n\thttp.StatusBadGateway,\n\thttp.StatusServiceUnavailable,\n\thttp.StatusGatewayTimeout,\n\t499, // nginx-specific, client closed request\n\t522, // Cloudflare-specific, connection timeout\n}\n\nconst (\n\tdefaultJobs = 4\n\n\t// ECR returns an error if n > 1000:\n\t// https://github.com/google/go-containerregistry/issues/1091\n\tdefaultPageSize = 1000\n)\n\n// DefaultTransport is based on http.DefaultTransport with modifications\n// documented inline below.\nvar DefaultTransport http.RoundTripper = &http.Transport{\n\tProxy: http.ProxyFromEnvironment,\n\tDialContext: (&net.Dialer{\n\t\tTimeout:   30 * time.Second,\n\t\tKeepAlive: 30 * time.Second,\n\t}).DialContext,\n\tForceAttemptHTTP2:     true,\n\tMaxIdleConns:          100,\n\tIdleConnTimeout:       90 * time.Second,\n\tTLSHandshakeTimeout:   10 * time.Second,\n\tExpectContinueTimeout: 1 * time.Second,\n\t// We usually are dealing with 2 hosts (at most), split MaxIdleConns between them.\n\tMaxIdleConnsPerHost: 50,\n}\n\nfunc makeOptions(opts ...Option) (*options, error) {\n\to := &options{\n\t\ttransport:        DefaultTransport,\n\t\tplatform:         defaultPlatform,\n\t\tcontext:          context.Background(),\n\t\tjobs:             defaultJobs,\n\t\tpageSize:         defaultPageSize,\n\t\tretryPredicate:   defaultRetryPredicate,\n\t\tretryBackoff:     defaultRetryBackoff,\n\t\tretryStatusCodes: defaultRetryStatusCodes,\n\t}\n\n\tfor _, option := range opts {\n\t\tif err := option(o); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tswitch {\n\tcase o.auth != nil && o.keychain != nil:\n\t\t// It is a better experience to explicitly tell a caller their auth is misconfigured\n\t\t// than potentially fail silently when the correct auth is overridden by option misuse.\n\t\treturn nil, errors.New(\"provide an option for either authn.Authenticator or authn.Keychain, not both\")\n\tcase o.auth == nil:\n\t\to.auth = authn.Anonymous\n\t}\n\n\t// transport.Wrapper is a signal that consumers are opt-ing into providing their own transport without any additional wrapping.\n\t// This is to allow consumers full control over the transports logic, such as providing retry logic.\n\tif _, ok := o.transport.(*transport.Wrapper); !ok {\n\t\t// Wrap the transport in something that logs requests and responses.\n\t\t// It's expensive to generate the dumps, so skip it if we're writing\n\t\t// to nothing.\n\t\tif logs.Enabled(logs.Debug) {\n\t\t\to.transport = transport.NewLogger(o.transport)\n\t\t}\n\n\t\t// Using customized retry predicate if provided, and fallback to default if not.\n\t\tpredicate := o.retryPredicate\n\t\tif predicate == nil {\n\t\t\tpredicate = defaultRetryPredicate\n\t\t}\n\n\t\t// Wrap the transport in something that can retry network flakes.\n\t\to.transport = transport.NewRetry(o.transport, transport.WithRetryBackoff(o.retryBackoff), transport.WithRetryPredicate(predicate), transport.WithRetryStatusCodes(o.retryStatusCodes...))\n\t\t// Wrap this last to prevent transport.New from double-wrapping.\n\t\tif o.userAgent != \"\" {\n\t\t\to.transport = transport.NewUserAgent(o.transport, o.userAgent)\n\t\t}\n\t}\n\n\treturn o, nil\n}\n\n// WithTransport is a functional option for overriding the default transport\n// for remote operations.\n// If transport.Wrapper is provided, this signals that the consumer does *not* want any further wrapping to occur.\n// i.e. logging, retry and useragent\n//\n// The default transport is DefaultTransport.\nfunc WithTransport(t http.RoundTripper) Option {\n\treturn func(o *options) error {\n\t\to.transport = t\n\t\treturn nil\n\t}\n}\n\n// WithAuth is a functional option for overriding the default authenticator\n// for remote operations.\n// It is an error to use both WithAuth and WithAuthFromKeychain in the same Option set.\n//\n// The default authenticator is authn.Anonymous.\nfunc WithAuth(auth authn.Authenticator) Option {\n\treturn func(o *options) error {\n\t\to.auth = auth\n\t\treturn nil\n\t}\n}\n\n// WithAuthFromKeychain is a functional option for overriding the default\n// authenticator for remote operations, using an authn.Keychain to find\n// credentials.\n// It is an error to use both WithAuth and WithAuthFromKeychain in the same Option set.\n//\n// The default authenticator is authn.Anonymous.\nfunc WithAuthFromKeychain(keys authn.Keychain) Option {\n\treturn func(o *options) error {\n\t\to.keychain = keys\n\t\treturn nil\n\t}\n}\n\n// WithPlatform is a functional option for overriding the default platform\n// that Image and Descriptor.Image use for resolving an index to an image.\n//\n// The default platform is amd64/linux.\nfunc WithPlatform(p v1.Platform) Option {\n\treturn func(o *options) error {\n\t\to.platform = p\n\t\treturn nil\n\t}\n}\n\n// WithContext is a functional option for setting the context in http requests\n// performed by a given function. Note that this context is used for _all_\n// http requests, not just the initial volley. E.g., for remote.Image, the\n// context will be set on http requests generated by subsequent calls to\n// RawConfigFile() and even methods on layers returned by Layers().\n//\n// The default context is context.Background().\nfunc WithContext(ctx context.Context) Option {\n\treturn func(o *options) error {\n\t\to.context = ctx\n\t\treturn nil\n\t}\n}\n\n// WithJobs is a functional option for setting the parallelism of remote\n// operations performed by a given function. Note that not all remote\n// operations support parallelism.\n//\n// The default value is 4.\nfunc WithJobs(jobs int) Option {\n\treturn func(o *options) error {\n\t\tif jobs <= 0 {\n\t\t\treturn errors.New(\"jobs must be greater than zero\")\n\t\t}\n\t\to.jobs = jobs\n\t\treturn nil\n\t}\n}\n\n// WithUserAgent adds the given string to the User-Agent header for any HTTP\n// requests. This header will also include \"go-containerregistry/${version}\".\n//\n// If you want to completely overwrite the User-Agent header, use WithTransport.\nfunc WithUserAgent(ua string) Option {\n\treturn func(o *options) error {\n\t\to.userAgent = ua\n\t\treturn nil\n\t}\n}\n\n// WithNondistributable includes non-distributable (foreign) layers\n// when writing images, see:\n// https://github.com/opencontainers/image-spec/blob/master/layer.md#non-distributable-layers\n//\n// The default behaviour is to skip these layers\nfunc WithNondistributable(o *options) error {\n\to.allowNondistributableArtifacts = true\n\treturn nil\n}\n\n// WithProgress takes a channel that will receive progress updates as bytes are written.\n//\n// Sending updates to an unbuffered channel will block writes, so callers\n// should provide a buffered channel to avoid potential deadlocks.\nfunc WithProgress(updates chan<- v1.Update) Option {\n\treturn func(o *options) error {\n\t\to.progress = &progress{updates: updates}\n\t\to.progress.lastUpdate = &v1.Update{}\n\t\treturn nil\n\t}\n}\n\n// WithPageSize sets the given size as the value of parameter 'n' in the request.\n//\n// To omit the `n` parameter entirely, use WithPageSize(0).\n// The default value is 1000.\nfunc WithPageSize(size int) Option {\n\treturn func(o *options) error {\n\t\to.pageSize = size\n\t\treturn nil\n\t}\n}\n\n// WithRetryBackoff sets the httpBackoff for retry HTTP operations.\nfunc WithRetryBackoff(backoff Backoff) Option {\n\treturn func(o *options) error {\n\t\to.retryBackoff = backoff\n\t\treturn nil\n\t}\n}\n\n// WithRetryPredicate sets the predicate for retry HTTP operations.\nfunc WithRetryPredicate(predicate retry.Predicate) Option {\n\treturn func(o *options) error {\n\t\to.retryPredicate = predicate\n\t\treturn nil\n\t}\n}\n\n// WithRetryStatusCodes sets which http response codes will be retried.\nfunc WithRetryStatusCodes(codes ...int) Option {\n\treturn func(o *options) error {\n\t\to.retryStatusCodes = codes\n\t\treturn nil\n\t}\n}\n\n// WithFilter sets the filter querystring for HTTP operations.\nfunc WithFilter(key string, value string) Option {\n\treturn func(o *options) error {\n\t\tif o.filter == nil {\n\t\t\to.filter = map[string]string{}\n\t\t}\n\t\to.filter[key] = value\n\t\treturn nil\n\t}\n}\n\n// Reuse takes a Puller or Pusher and reuses it for remote interactions\n// rather than starting from a clean slate. For example, it will reuse token exchanges\n// when possible and avoid sending redundant HEAD requests.\n//\n// Reuse will take precedence over other options passed to most remote functions because\n// most options deal with setting up auth and transports, which Reuse intetionally skips.\nfunc Reuse[I *Puller | *Pusher](i I) Option {\n\treturn func(o *options) error {\n\t\tif puller, ok := any(i).(*Puller); ok {\n\t\t\to.puller = puller\n\t\t} else if pusher, ok := any(i).(*Pusher); ok {\n\t\t\to.pusher = pusher\n\t\t}\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/progress.go",
    "content": "// Copyright 2022 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"io\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n)\n\ntype progress struct {\n\tsync.Mutex\n\tupdates    chan<- v1.Update\n\tlastUpdate *v1.Update\n}\n\nfunc (p *progress) total(delta int64) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tatomic.AddInt64(&p.lastUpdate.Total, delta)\n}\n\nfunc (p *progress) complete(delta int64) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tp.updates <- v1.Update{\n\t\tTotal:    p.lastUpdate.Total,\n\t\tComplete: atomic.AddInt64(&p.lastUpdate.Complete, delta),\n\t}\n}\n\nfunc (p *progress) err(err error) error {\n\tif err != nil && p.updates != nil {\n\t\tp.updates <- v1.Update{Error: err}\n\t}\n\treturn err\n}\n\nfunc (p *progress) Close(err error) {\n\t_ = p.err(err)\n\tclose(p.updates)\n}\n\ntype progressReader struct {\n\trc io.ReadCloser\n\n\tcount    *int64 // number of bytes this reader has read, to support resetting on retry.\n\tprogress *progress\n}\n\nfunc (r *progressReader) Read(b []byte) (int, error) {\n\tn, err := r.rc.Read(b)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\tatomic.AddInt64(r.count, int64(n))\n\t// TODO: warn/debug log if sending takes too long, or if sending is blocked while context is canceled.\n\tr.progress.complete(int64(n))\n\treturn n, nil\n}\n\nfunc (r *progressReader) Close() error { return r.rc.Close() }\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/puller.go",
    "content": "// Copyright 2023 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype Puller struct {\n\to *options\n\n\t// map[resource]*reader\n\treaders sync.Map\n}\n\nfunc NewPuller(options ...Option) (*Puller, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn newPuller(o), nil\n}\n\nfunc newPuller(o *options) *Puller {\n\tif o.puller != nil {\n\t\treturn o.puller\n\t}\n\treturn &Puller{\n\t\to: o,\n\t}\n}\n\ntype reader struct {\n\t// in\n\ttarget resource\n\to      *options\n\n\t// f()\n\tonce sync.Once\n\n\t// out\n\tf   *fetcher\n\terr error\n}\n\n// this will run once per reader instance\nfunc (r *reader) init(ctx context.Context) error {\n\tr.once.Do(func() {\n\t\tr.f, r.err = makeFetcher(ctx, r.target, r.o)\n\t})\n\treturn r.err\n}\n\nfunc (p *Puller) fetcher(ctx context.Context, target resource) (*fetcher, error) {\n\tv, _ := p.readers.LoadOrStore(target, &reader{\n\t\ttarget: target,\n\t\to:      p.o,\n\t})\n\trr := v.(*reader)\n\treturn rr.f, rr.init(ctx)\n}\n\n// Head is like remote.Head, but avoids re-authenticating when possible.\nfunc (p *Puller) Head(ctx context.Context, ref name.Reference) (*v1.Descriptor, error) {\n\tf, err := p.fetcher(ctx, ref.Context())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn f.headManifest(ctx, ref, allManifestMediaTypes)\n}\n\n// Get is like remote.Get, but avoids re-authenticating when possible.\nfunc (p *Puller) Get(ctx context.Context, ref name.Reference) (*Descriptor, error) {\n\treturn p.get(ctx, ref, allManifestMediaTypes, p.o.platform)\n}\n\nfunc (p *Puller) get(ctx context.Context, ref name.Reference, acceptable []types.MediaType, platform v1.Platform) (*Descriptor, error) {\n\tf, err := p.fetcher(ctx, ref.Context())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f.get(ctx, ref, acceptable, platform)\n}\n\n// Layer is like remote.Layer, but avoids re-authenticating when possible.\nfunc (p *Puller) Layer(ctx context.Context, ref name.Digest) (v1.Layer, error) {\n\tf, err := p.fetcher(ctx, ref.Context())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\th, err := v1.NewHash(ref.Identifier())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tl, err := partial.CompressedToLayer(&remoteLayer{\n\t\tfetcher: *f,\n\t\tctx:     ctx,\n\t\tdigest:  h,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &MountableLayer{\n\t\tLayer:     l,\n\t\tReference: ref,\n\t}, nil\n}\n\n// List lists tags in a repo and handles pagination, returning the full list of tags.\nfunc (p *Puller) List(ctx context.Context, repo name.Repository) ([]string, error) {\n\tlister, err := p.Lister(ctx, repo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttagList := []string{}\n\tfor lister.HasNext() {\n\t\ttags, err := lister.Next(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttagList = append(tagList, tags.Tags...)\n\t}\n\n\treturn tagList, nil\n}\n\n// Lister lists tags in a repo and returns a Lister for paginating through the results.\nfunc (p *Puller) Lister(ctx context.Context, repo name.Repository) (*Lister, error) {\n\treturn p.lister(ctx, repo, p.o.pageSize)\n}\n\nfunc (p *Puller) lister(ctx context.Context, repo name.Repository, pageSize int) (*Lister, error) {\n\tf, err := p.fetcher(ctx, repo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpage, err := f.listPage(ctx, repo, \"\", pageSize)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Lister{\n\t\tf:        f,\n\t\trepo:     repo,\n\t\tpageSize: pageSize,\n\t\tpage:     page,\n\t\terr:      err,\n\t}, nil\n}\n\n// Catalog lists repos in a registry and handles pagination, returning the full list of repos.\nfunc (p *Puller) Catalog(ctx context.Context, reg name.Registry) ([]string, error) {\n\treturn p.catalog(ctx, reg, p.o.pageSize)\n}\n\nfunc (p *Puller) catalog(ctx context.Context, reg name.Registry, pageSize int) ([]string, error) {\n\tcatalogger, err := p.catalogger(ctx, reg, pageSize)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trepoList := []string{}\n\tfor catalogger.HasNext() {\n\t\trepos, err := catalogger.Next(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trepoList = append(repoList, repos.Repos...)\n\t}\n\treturn repoList, nil\n}\n\n// Catalogger lists repos in a registry and returns a Catalogger for paginating through the results.\nfunc (p *Puller) Catalogger(ctx context.Context, reg name.Registry) (*Catalogger, error) {\n\treturn p.catalogger(ctx, reg, p.o.pageSize)\n}\n\nfunc (p *Puller) catalogger(ctx context.Context, reg name.Registry, pageSize int) (*Catalogger, error) {\n\tf, err := p.fetcher(ctx, reg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpage, err := f.catalogPage(ctx, reg, \"\", pageSize)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Catalogger{\n\t\tf:        f,\n\t\treg:      reg,\n\t\tpageSize: pageSize,\n\t\tpage:     page,\n\t\terr:      err,\n\t}, nil\n}\n\nfunc (p *Puller) referrers(ctx context.Context, d name.Digest, filter map[string]string) (v1.ImageIndex, error) {\n\tf, err := p.fetcher(ctx, d.Context())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f.fetchReferrers(ctx, filter, d)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/pusher.go",
    "content": "// Copyright 2023 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n\t\"golang.org/x/sync/errgroup\"\n)\n\ntype manifest interface {\n\tTaggable\n\tpartial.Describable\n}\n\n// key is either v1.Hash or v1.Layer (for stream.Layer)\ntype workers struct {\n\t// map[v1.Hash|v1.Layer]*sync.Once\n\tonces sync.Map\n\n\t// map[v1.Hash|v1.Layer]error\n\terrors sync.Map\n}\n\nfunc nop() error {\n\treturn nil\n}\n\nfunc (w *workers) err(digest v1.Hash) error {\n\tv, ok := w.errors.Load(digest)\n\tif !ok || v == nil {\n\t\treturn nil\n\t}\n\treturn v.(error)\n}\n\nfunc (w *workers) Do(digest v1.Hash, f func() error) error {\n\t// We don't care if it was loaded or not because the sync.Once will do it for us.\n\tonce, _ := w.onces.LoadOrStore(digest, &sync.Once{})\n\n\tonce.(*sync.Once).Do(func() {\n\t\tw.errors.Store(digest, f())\n\t})\n\n\terr := w.err(digest)\n\tif err != nil {\n\t\t// Allow this to be retried by another caller.\n\t\tw.onces.Delete(digest)\n\t}\n\treturn err\n}\n\nfunc (w *workers) Stream(layer v1.Layer, f func() error) error {\n\t// We don't care if it was loaded or not because the sync.Once will do it for us.\n\tonce, _ := w.onces.LoadOrStore(layer, &sync.Once{})\n\n\tonce.(*sync.Once).Do(func() {\n\t\tw.errors.Store(layer, f())\n\t})\n\n\tv, ok := w.errors.Load(layer)\n\tif !ok || v == nil {\n\t\treturn nil\n\t}\n\n\treturn v.(error)\n}\n\ntype Pusher struct {\n\to *options\n\n\t// map[name.Repository]*repoWriter\n\twriters sync.Map\n}\n\nfunc NewPusher(options ...Option) (*Pusher, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn newPusher(o), nil\n}\n\nfunc newPusher(o *options) *Pusher {\n\tif o.pusher != nil {\n\t\treturn o.pusher\n\t}\n\treturn &Pusher{\n\t\to: o,\n\t}\n}\n\nfunc (p *Pusher) writer(ctx context.Context, repo name.Repository, o *options) (*repoWriter, error) {\n\tv, _ := p.writers.LoadOrStore(repo, &repoWriter{\n\t\trepo: repo,\n\t\to:    o,\n\t})\n\trw := v.(*repoWriter)\n\treturn rw, rw.init(ctx)\n}\n\nfunc (p *Pusher) Put(ctx context.Context, ref name.Reference, t Taggable) error {\n\tw, err := p.writer(ctx, ref.Context(), p.o)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tm, err := taggableToManifest(t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn w.commitManifest(ctx, ref, m)\n}\n\nfunc (p *Pusher) Push(ctx context.Context, ref name.Reference, t Taggable) error {\n\tw, err := p.writer(ctx, ref.Context(), p.o)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn w.writeManifest(ctx, ref, t)\n}\n\nfunc (p *Pusher) Upload(ctx context.Context, repo name.Repository, l v1.Layer) error {\n\tw, err := p.writer(ctx, repo, p.o)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn w.writeLayer(ctx, l)\n}\n\nfunc (p *Pusher) Delete(ctx context.Context, ref name.Reference) error {\n\tw, err := p.writer(ctx, ref.Context(), p.o)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tu := url.URL{\n\t\tScheme: ref.Context().Scheme(),\n\t\tHost:   ref.Context().RegistryStr(),\n\t\tPath:   fmt.Sprintf(\"/v2/%s/manifests/%s\", ref.Context().RepositoryStr(), ref.Identifier()),\n\t}\n\n\treq, err := http.NewRequest(http.MethodDelete, u.String(), nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := w.w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer resp.Body.Close()\n\n\treturn transport.CheckError(resp, http.StatusOK, http.StatusAccepted)\n\n\t// TODO(jason): If the manifest had a `subject`, and if the registry\n\t// doesn't support Referrers, update the index pointed to by the\n\t// subject's fallback tag to remove the descriptor for this manifest.\n}\n\ntype repoWriter struct {\n\trepo name.Repository\n\to    *options\n\tonce sync.Once\n\n\tw   *writer\n\terr error\n\n\twork *workers\n}\n\n// this will run once per repoWriter instance\nfunc (rw *repoWriter) init(ctx context.Context) error {\n\trw.once.Do(func() {\n\t\trw.work = &workers{}\n\t\trw.w, rw.err = makeWriter(ctx, rw.repo, nil, rw.o)\n\t})\n\treturn rw.err\n}\n\nfunc (rw *repoWriter) writeDeps(ctx context.Context, m manifest) error {\n\tif img, ok := m.(v1.Image); ok {\n\t\treturn rw.writeLayers(ctx, img)\n\t}\n\n\tif idx, ok := m.(v1.ImageIndex); ok {\n\t\treturn rw.writeChildren(ctx, idx)\n\t}\n\n\t// This has no deps, not an error (e.g. something you want to just PUT).\n\treturn nil\n}\n\ntype describable struct {\n\tdesc v1.Descriptor\n}\n\nfunc (d describable) Digest() (v1.Hash, error) {\n\treturn d.desc.Digest, nil\n}\n\nfunc (d describable) Size() (int64, error) {\n\treturn d.desc.Size, nil\n}\n\nfunc (d describable) MediaType() (types.MediaType, error) {\n\treturn d.desc.MediaType, nil\n}\n\ntype tagManifest struct {\n\tTaggable\n\tpartial.Describable\n}\n\nfunc taggableToManifest(t Taggable) (manifest, error) {\n\tif m, ok := t.(manifest); ok {\n\t\treturn m, nil\n\t}\n\n\tif d, ok := t.(*Descriptor); ok {\n\t\tif d.MediaType.IsIndex() {\n\t\t\treturn d.ImageIndex()\n\t\t}\n\n\t\tif d.MediaType.IsImage() {\n\t\t\treturn d.Image()\n\t\t}\n\n\t\tif d.MediaType.IsSchema1() {\n\t\t\treturn d.Schema1()\n\t\t}\n\n\t\treturn tagManifest{t, describable{d.toDesc()}}, nil\n\t}\n\n\tdesc := v1.Descriptor{\n\t\t// A reasonable default if Taggable doesn't implement MediaType.\n\t\tMediaType: types.DockerManifestSchema2,\n\t}\n\n\tb, err := t.RawManifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif wmt, ok := t.(withMediaType); ok {\n\t\tdesc.MediaType, err = wmt.MediaType()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tdesc.Digest, desc.Size, err = v1.SHA256(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn tagManifest{t, describable{desc}}, nil\n}\n\nfunc (rw *repoWriter) writeManifest(ctx context.Context, ref name.Reference, t Taggable) error {\n\tm, err := taggableToManifest(t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tneedDeps := true\n\n\tdigest, err := m.Digest()\n\tif errors.Is(err, stream.ErrNotComputed) {\n\t\tif err := rw.writeDeps(ctx, m); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tneedDeps = false\n\n\t\tdigest, err = m.Digest()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if err != nil {\n\t\treturn err\n\t}\n\n\t// This may be a lazy child where we have no ref until digest is computed.\n\tif ref == nil {\n\t\tref = rw.repo.Digest(digest.String())\n\t}\n\n\t// For tags, we want to do this check outside of our Work.Do closure because\n\t// we don't want to dedupe based on the manifest digest.\n\t_, byTag := ref.(name.Tag)\n\tif byTag {\n\t\tif exists, err := rw.manifestExists(ctx, ref, t); err != nil {\n\t\t\treturn err\n\t\t} else if exists {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// The following work.Do will get deduped by digest, so it won't happen unless\n\t// this tag happens to be the first commitManifest to run for that digest.\n\tneedPut := byTag\n\n\tif err := rw.work.Do(digest, func() error {\n\t\tif !byTag {\n\t\t\tif exists, err := rw.manifestExists(ctx, ref, t); err != nil {\n\t\t\t\treturn err\n\t\t\t} else if exists {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tif needDeps {\n\t\t\tif err := rw.writeDeps(ctx, m); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tneedPut = false\n\t\treturn rw.commitManifest(ctx, ref, m)\n\t}); err != nil {\n\t\treturn err\n\t}\n\n\tif !needPut {\n\t\treturn nil\n\t}\n\n\t// Only runs for tags that got deduped by digest.\n\treturn rw.commitManifest(ctx, ref, m)\n}\n\nfunc (rw *repoWriter) writeChildren(ctx context.Context, idx v1.ImageIndex) error {\n\tchildren, err := partial.Manifests(idx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tg, ctx := errgroup.WithContext(ctx)\n\tg.SetLimit(rw.o.jobs)\n\n\tfor _, child := range children {\n\t\tchild := child\n\t\tif err := rw.writeChild(ctx, child, g); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn g.Wait()\n}\n\nfunc (rw *repoWriter) writeChild(ctx context.Context, child partial.Describable, g *errgroup.Group) error {\n\tswitch child := child.(type) {\n\tcase v1.ImageIndex:\n\t\t// For recursive index, we want to do a depth-first launching of goroutines\n\t\t// to avoid deadlocking.\n\t\t//\n\t\t// Note that this is rare, so the impact of this should be really small.\n\t\treturn rw.writeManifest(ctx, nil, child)\n\tcase v1.Image:\n\t\tg.Go(func() error {\n\t\t\treturn rw.writeManifest(ctx, nil, child)\n\t\t})\n\tcase v1.Layer:\n\t\tg.Go(func() error {\n\t\t\treturn rw.writeLayer(ctx, child)\n\t\t})\n\tdefault:\n\t\t// This can't happen.\n\t\treturn fmt.Errorf(\"encountered unknown child: %T\", child)\n\t}\n\treturn nil\n}\n\n// TODO: Consider caching some representation of the tags/digests in the destination\n// repository as a hint to avoid this optimistic check in cases where we will most\n// likely have to do a PUT anyway, e.g. if we are overwriting a tag we just wrote.\nfunc (rw *repoWriter) manifestExists(ctx context.Context, ref name.Reference, t Taggable) (bool, error) {\n\tf := &fetcher{\n\t\ttarget: ref.Context(),\n\t\tclient: rw.w.client,\n\t}\n\n\tm, err := taggableToManifest(t)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tdigest, err := m.Digest()\n\tif err != nil {\n\t\t// Possibly due to streaming layers.\n\t\treturn false, nil\n\t}\n\tgot, err := f.headManifest(ctx, ref, allManifestMediaTypes)\n\tif err != nil {\n\t\tvar terr *transport.Error\n\t\tif errors.As(err, &terr) {\n\t\t\tif terr.StatusCode == http.StatusNotFound {\n\t\t\t\treturn false, nil\n\t\t\t}\n\n\t\t\t// We treat a 403 here as non-fatal because this existence check is an optimization and\n\t\t\t// some registries will return a 403 instead of a 404 in certain situations.\n\t\t\t// E.g. https://jfrog.atlassian.net/browse/RTFACT-13797\n\t\t\tif terr.StatusCode == http.StatusForbidden {\n\t\t\t\tlogs.Debug.Printf(\"manifestExists unexpected 403: %v\", err)\n\t\t\t\treturn false, nil\n\t\t\t}\n\t\t}\n\n\t\treturn false, err\n\t}\n\n\tif digest != got.Digest {\n\t\t// Mark that we saw this digest in the registry so we don't have to check it again.\n\t\trw.work.Do(got.Digest, nop)\n\n\t\treturn false, nil\n\t}\n\n\tif tag, ok := ref.(name.Tag); ok {\n\t\tlogs.Progress.Printf(\"existing manifest: %s@%s\", tag.Identifier(), got.Digest)\n\t} else {\n\t\tlogs.Progress.Print(\"existing manifest: \", got.Digest)\n\t}\n\n\treturn true, nil\n}\n\nfunc (rw *repoWriter) commitManifest(ctx context.Context, ref name.Reference, m manifest) error {\n\tif rw.o.progress != nil {\n\t\tsize, err := m.Size()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trw.o.progress.total(size)\n\t}\n\n\treturn rw.w.commitManifest(ctx, m, ref)\n}\n\nfunc (rw *repoWriter) writeLayers(pctx context.Context, img v1.Image) error {\n\tls, err := img.Layers()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tg, ctx := errgroup.WithContext(pctx)\n\tg.SetLimit(rw.o.jobs)\n\n\tfor _, l := range ls {\n\t\tl := l\n\n\t\tg.Go(func() error {\n\t\t\treturn rw.writeLayer(ctx, l)\n\t\t})\n\t}\n\n\tmt, err := img.MediaType()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif mt.IsSchema1() {\n\t\treturn g.Wait()\n\t}\n\n\tcl, err := partial.ConfigLayer(img)\n\tif errors.Is(err, stream.ErrNotComputed) {\n\t\tif err := g.Wait(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcl, err := partial.ConfigLayer(img)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn rw.writeLayer(pctx, cl)\n\t} else if err != nil {\n\t\treturn err\n\t}\n\n\tg.Go(func() error {\n\t\treturn rw.writeLayer(ctx, cl)\n\t})\n\n\treturn g.Wait()\n}\n\nfunc (rw *repoWriter) writeLayer(ctx context.Context, l v1.Layer) error {\n\t// Skip any non-distributable things.\n\tmt, err := l.MediaType()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !mt.IsDistributable() && !rw.o.allowNondistributableArtifacts {\n\t\treturn nil\n\t}\n\n\tdigest, err := l.Digest()\n\tif err != nil {\n\t\tif errors.Is(err, stream.ErrNotComputed) {\n\t\t\treturn rw.lazyWriteLayer(ctx, l)\n\t\t}\n\t\treturn err\n\t}\n\n\treturn rw.work.Do(digest, func() error {\n\t\tif rw.o.progress != nil {\n\t\t\tsize, err := l.Size()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\trw.o.progress.total(size)\n\t\t}\n\t\treturn rw.w.uploadOne(ctx, l)\n\t})\n}\n\nfunc (rw *repoWriter) lazyWriteLayer(ctx context.Context, l v1.Layer) error {\n\treturn rw.work.Stream(l, func() error {\n\t\tif err := rw.w.uploadOne(ctx, l); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Mark this upload completed.\n\t\tdigest, err := l.Digest()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trw.work.Do(digest, nop)\n\n\t\tif rw.o.progress != nil {\n\t\t\tsize, err := l.Size()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\trw.o.progress.total(size)\n\t\t}\n\n\t\treturn nil\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/referrers.go",
    "content": "// Copyright 2023 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/empty\"\n\t\"github.com/google/go-containerregistry/pkg/v1/mutate\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Referrers returns a list of descriptors that refer to the given manifest digest.\n//\n// The subject manifest doesn't have to exist in the registry for there to be descriptors that refer to it.\nfunc Referrers(d name.Digest, options ...Option) (v1.ImageIndex, error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newPuller(o).referrers(o.context, d, o.filter)\n}\n\n// https://github.com/opencontainers/distribution-spec/blob/main/spec.md#referrers-tag-schema\nfunc fallbackTag(d name.Digest) name.Tag {\n\treturn d.Context().Tag(strings.Replace(d.DigestStr(), \":\", \"-\", 1))\n}\n\nfunc (f *fetcher) fetchReferrers(ctx context.Context, filter map[string]string, d name.Digest) (v1.ImageIndex, error) {\n\t// Check the Referrers API endpoint first.\n\tu := f.url(\"referrers\", d.DigestStr())\n\treq, err := http.NewRequestWithContext(ctx, http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Accept\", string(types.OCIImageIndex))\n\n\tresp, err := f.client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound, http.StatusBadRequest, http.StatusNotAcceptable); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar b []byte\n\tif resp.StatusCode == http.StatusOK && resp.Header.Get(\"Content-Type\") == string(types.OCIImageIndex) {\n\t\tb, err = io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\t// The registry doesn't support the Referrers API endpoint, so we'll use the fallback tag scheme.\n\t\tb, _, err = f.fetchManifest(ctx, fallbackTag(d), []types.MediaType{types.OCIImageIndex})\n\t\tvar terr *transport.Error\n\t\tif errors.As(err, &terr) && terr.StatusCode == http.StatusNotFound {\n\t\t\t// Not found just means there are no attachments yet. Start with an empty manifest.\n\t\t\treturn empty.Index, nil\n\t\t} else if err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\th, sz, err := v1.SHA256(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tidx := &remoteIndex{\n\t\tfetcher:   *f,\n\t\tctx:       ctx,\n\t\tmanifest:  b,\n\t\tmediaType: types.OCIImageIndex,\n\t\tdescriptor: &v1.Descriptor{\n\t\t\tDigest:    h,\n\t\t\tMediaType: types.OCIImageIndex,\n\t\t\tSize:      sz,\n\t\t},\n\t}\n\treturn filterReferrersResponse(filter, idx), nil\n}\n\n// If filter applied, filter out by artifactType.\n// See https://github.com/opencontainers/distribution-spec/blob/main/spec.md#listing-referrers\nfunc filterReferrersResponse(filter map[string]string, in v1.ImageIndex) v1.ImageIndex {\n\tif filter == nil {\n\t\treturn in\n\t}\n\tv, ok := filter[\"artifactType\"]\n\tif !ok {\n\t\treturn in\n\t}\n\treturn mutate.RemoveManifests(in, func(desc v1.Descriptor) bool {\n\t\treturn desc.ArtifactType != v\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/schema1.go",
    "content": "// Copyright 2023 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype schema1 struct {\n\tref        name.Reference\n\tctx        context.Context\n\tfetcher    fetcher\n\tmanifest   []byte\n\tmediaType  types.MediaType\n\tdescriptor *v1.Descriptor\n}\n\nfunc (s *schema1) Layers() ([]v1.Layer, error) {\n\tm := schema1Manifest{}\n\tif err := json.NewDecoder(bytes.NewReader(s.manifest)).Decode(&m); err != nil {\n\t\treturn nil, err\n\t}\n\n\tlayers := []v1.Layer{}\n\tfor i := len(m.FSLayers) - 1; i >= 0; i-- {\n\t\tfsl := m.FSLayers[i]\n\n\t\th, err := v1.NewHash(fsl.BlobSum)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tl, err := s.LayerByDigest(h)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlayers = append(layers, l)\n\t}\n\n\treturn layers, nil\n}\n\nfunc (s *schema1) MediaType() (types.MediaType, error) {\n\treturn s.mediaType, nil\n}\n\nfunc (s *schema1) Size() (int64, error) {\n\treturn s.descriptor.Size, nil\n}\n\nfunc (s *schema1) ConfigName() (v1.Hash, error) {\n\treturn partial.ConfigName(s)\n}\n\nfunc (s *schema1) ConfigFile() (*v1.ConfigFile, error) {\n\treturn nil, newErrSchema1(s.mediaType)\n}\n\nfunc (s *schema1) RawConfigFile() ([]byte, error) {\n\treturn []byte(\"{}\"), nil\n}\n\nfunc (s *schema1) Digest() (v1.Hash, error) {\n\treturn s.descriptor.Digest, nil\n}\n\nfunc (s *schema1) Manifest() (*v1.Manifest, error) {\n\treturn nil, newErrSchema1(s.mediaType)\n}\n\nfunc (s *schema1) RawManifest() ([]byte, error) {\n\treturn s.manifest, nil\n}\n\nfunc (s *schema1) LayerByDigest(h v1.Hash) (v1.Layer, error) {\n\tl, err := partial.CompressedToLayer(&remoteLayer{\n\t\tfetcher: s.fetcher,\n\t\tctx:     s.ctx,\n\t\tdigest:  h,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &MountableLayer{\n\t\tLayer:     l,\n\t\tReference: s.ref.Context().Digest(h.String()),\n\t}, nil\n}\n\nfunc (s *schema1) LayerByDiffID(v1.Hash) (v1.Layer, error) {\n\treturn nil, newErrSchema1(s.mediaType)\n}\n\ntype fslayer struct {\n\tBlobSum string `json:\"blobSum\"`\n}\n\ntype schema1Manifest struct {\n\tFSLayers []fslayer `json:\"fsLayers\"`\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/README.md",
    "content": "# `transport`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/transport?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/transport)\n\nThe [distribution protocol](https://github.com/opencontainers/distribution-spec) is fairly simple, but correctly [implementing authentication](../../../authn/README.md) is **hard**.\n\nThis package [implements](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote/transport#New) an [`http.RoundTripper`](https://godoc.org/net/http#RoundTripper)\nthat transparently performs:\n* [Token\nAuthentication](https://docs.docker.com/registry/spec/auth/token/) and\n* [OAuth2\nAuthentication](https://docs.docker.com/registry/spec/auth/oauth/)\n\nfor registry clients.\n\n## Raison d'être\n\n> Why not just use the [`docker/distribution`](https://godoc.org/github.com/docker/distribution/registry/client/auth) client?\n\nGreat question! Mostly, because I don't want to depend on [`prometheus/client_golang`](https://github.com/prometheus/client_golang).\n\nAs a performance optimization, that client uses [a cache](https://github.com/docker/distribution/blob/a8371794149d1d95f1e846744b05c87f2f825e5a/registry/client/repository.go#L173) to keep track of a mapping between blob digests and their [descriptors](https://github.com/docker/distribution/blob/a8371794149d1d95f1e846744b05c87f2f825e5a/blobs.go#L57-L86). Unfortunately, the cache [uses prometheus](https://github.com/docker/distribution/blob/a8371794149d1d95f1e846744b05c87f2f825e5a/registry/storage/cache/cachedblobdescriptorstore.go#L44) to track hits and misses, so if you want to use that client you have to pull in all of prometheus, which is pretty large.\n\n![docker/distribution](../../../../images/docker.dot.svg)\n\n> Why does it matter if you depend on prometheus? Who cares?\n\nIt's generally polite to your downstream to reduce the number of dependencies your package requires:\n\n* Downloading your package is faster, which helps our Australian friends and people on airplanes.\n* There is less code to compile, which speeds up builds and saves the planet from global warming.\n* You reduce the likelihood of inflicting dependency hell upon your consumers.\n* [Tim Hockin](https://twitter.com/thockin/status/958606077456654336) prefers it based on his experience working on Kubernetes, and he's a pretty smart guy.\n\n> Okay, what about [`containerd/containerd`](https://godoc.org/github.com/containerd/containerd/remotes/docker)?\n\nSimilar reasons! That ends up pulling in grpc, protobuf, and logrus.\n\n![containerd/containerd](../../../../images/containerd.dot.svg)\n\n> Well... what about [`containers/image`](https://godoc.org/github.com/containers/image/docker)?\n\nThat just uses the the `docker/distribution` client... and more!\n\n![containers/image](../../../../images/containers.dot.svg)\n\n> Wow, what about this package?\n\nOf course, this package isn't perfect either. `transport` depends on `authn`,\nwhich in turn depends on docker's config file parsing and handling package,\nwhich you don't strictly need but almost certainly want if you're going to be\ninteracting with a registry.\n\n![google/go-containerregistry](../../../../images/ggcr.dot.svg)\n\n*These graphs were generated by\n[`kisielk/godepgraph`](https://github.com/kisielk/godepgraph).*\n\n## Usage\n\nThis is heavily used by the\n[`remote`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote)\npackage, which implements higher level image-centric functionality, but this\npackage is useful if you want to interact directly with the registry to do\nsomething that `remote` doesn't support, e.g. [to handle with schema 1\nimages](https://github.com/google/go-containerregistry/pull/509).\n\nThis package also includes some [error\nhandling](https://github.com/opencontainers/distribution-spec/blob/60be706c34ee7805bdd1d3d11affec53b0dfb8fb/spec.md#errors)\nfacilities in the form of\n[`CheckError`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/remote/transport#CheckError),\nwhich will parse the response body into a structured error for unexpected http\nstatus codes.\n\nHere's a \"simple\" program that writes the result of\n[listing tags](https://github.com/opencontainers/distribution-spec/blob/60be706c34ee7805bdd1d3d11affec53b0dfb8fb/spec.md#tags)\nfor [`gcr.io/google-containers/pause`](https://gcr.io/google-containers/pause)\nto stdout.\n\n```go\npackage main\n\nimport (\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n)\n\nfunc main() {\n\trepo, err := name.NewRepository(\"gcr.io/google-containers/pause\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Fetch credentials based on your docker config file, which is $HOME/.docker/config.json or $DOCKER_CONFIG.\n\tauth, err := authn.DefaultKeychain.Resolve(repo.Registry)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Construct an http.Client that is authorized to pull from gcr.io/google-containers/pause.\n\tscopes := []string{repo.Scope(transport.PullScope)}\n\tt, err := transport.New(repo.Registry, auth, http.DefaultTransport, scopes)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tclient := &http.Client{Transport: t}\n\n\t// Make the actual request.\n\tresp, err := client.Get(\"https://gcr.io/v2/google-containers/pause/tags/list\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Assert that we get a 200, otherwise attempt to parse body as a structured error.\n\tif err := transport.CheckError(resp, http.StatusOK); err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Write the response to stdout.\n\tif _, err := io.Copy(os.Stdout, resp.Body); err != nil {\n\t\tpanic(err)\n\t}\n}\n```\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n)\n\ntype basicTransport struct {\n\tinner  http.RoundTripper\n\tauth   authn.Authenticator\n\ttarget string\n}\n\nvar _ http.RoundTripper = (*basicTransport)(nil)\n\n// RoundTrip implements http.RoundTripper\nfunc (bt *basicTransport) RoundTrip(in *http.Request) (*http.Response, error) {\n\tif bt.auth != authn.Anonymous {\n\t\tauth, err := authn.Authorization(in.Context(), bt.auth)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// http.Client handles redirects at a layer above the http.RoundTripper\n\t\t// abstraction, so to avoid forwarding Authorization headers to places\n\t\t// we are redirected, only set it when the authorization header matches\n\t\t// the host with which we are interacting.\n\t\t// In case of redirect http.Client can use an empty Host, check URL too.\n\t\tif in.Host == bt.target || in.URL.Host == bt.target {\n\t\t\tif bearer := auth.RegistryToken; bearer != \"\" {\n\t\t\t\thdr := fmt.Sprintf(\"Bearer %s\", bearer)\n\t\t\t\tin.Header.Set(\"Authorization\", hdr)\n\t\t\t} else if user, pass := auth.Username, auth.Password; user != \"\" && pass != \"\" {\n\t\t\t\tdelimited := fmt.Sprintf(\"%s:%s\", user, pass)\n\t\t\t\tencoded := base64.StdEncoding.EncodeToString([]byte(delimited))\n\t\t\t\thdr := fmt.Sprintf(\"Basic %s\", encoded)\n\t\t\t\tin.Header.Set(\"Authorization\", hdr)\n\t\t\t} else if token := auth.Auth; token != \"\" {\n\t\t\t\thdr := fmt.Sprintf(\"Basic %s\", token)\n\t\t\t\tin.Header.Set(\"Authorization\", hdr)\n\t\t\t}\n\t\t}\n\t}\n\treturn bt.inner.RoundTrip(in)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"sync\"\n\n\tauthchallenge \"github.com/docker/distribution/registry/client/auth/challenge\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n)\n\ntype Token struct {\n\tToken        string `json:\"token\"`\n\tAccessToken  string `json:\"access_token,omitempty\"`\n\tRefreshToken string `json:\"refresh_token\"`\n\tExpiresIn    int    `json:\"expires_in\"`\n}\n\n// Exchange requests a registry Token with the given scopes.\nfunc Exchange(ctx context.Context, reg name.Registry, auth authn.Authenticator, t http.RoundTripper, scopes []string, pr *Challenge) (*Token, error) {\n\tif strings.ToLower(pr.Scheme) != \"bearer\" {\n\t\t// TODO: Pretend token for basic?\n\t\treturn nil, fmt.Errorf(\"challenge scheme %q is not bearer\", pr.Scheme)\n\t}\n\tbt, err := fromChallenge(reg, auth, t, pr, scopes...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tauthcfg, err := authn.Authorization(ctx, auth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttok, err := bt.Refresh(ctx, authcfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn tok, nil\n}\n\n// FromToken returns a transport given a Challenge + Token.\nfunc FromToken(reg name.Registry, auth authn.Authenticator, t http.RoundTripper, pr *Challenge, tok *Token) (http.RoundTripper, error) {\n\tif strings.ToLower(pr.Scheme) != \"bearer\" {\n\t\treturn &Wrapper{&basicTransport{inner: t, auth: auth, target: reg.RegistryStr()}}, nil\n\t}\n\tbt, err := fromChallenge(reg, auth, t, pr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif tok.Token != \"\" {\n\t\tbt.bearer.RegistryToken = tok.Token\n\t}\n\treturn &Wrapper{bt}, nil\n}\n\nfunc fromChallenge(reg name.Registry, auth authn.Authenticator, t http.RoundTripper, pr *Challenge, scopes ...string) (*bearerTransport, error) {\n\t// We require the realm, which tells us where to send our Basic auth to turn it into Bearer auth.\n\trealm, ok := pr.Parameters[\"realm\"]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"malformed www-authenticate, missing realm: %v\", pr.Parameters)\n\t}\n\tservice := pr.Parameters[\"service\"]\n\tscheme := \"https\"\n\tif pr.Insecure {\n\t\tscheme = \"http\"\n\t}\n\treturn &bearerTransport{\n\t\tinner:    t,\n\t\tbasic:    auth,\n\t\trealm:    realm,\n\t\tregistry: reg,\n\t\tservice:  service,\n\t\tscopes:   scopes,\n\t\tscheme:   scheme,\n\t}, nil\n}\n\ntype bearerTransport struct {\n\tmx sync.RWMutex\n\t// Wrapped by bearerTransport.\n\tinner http.RoundTripper\n\t// Basic credentials that we exchange for bearer tokens.\n\tbasic authn.Authenticator\n\t// Holds the bearer response from the token service.\n\tbearer authn.AuthConfig\n\t// Registry to which we send bearer tokens.\n\tregistry name.Registry\n\t// See https://tools.ietf.org/html/rfc6750#section-3\n\trealm string\n\t// See https://docs.docker.com/registry/spec/auth/token/\n\tservice string\n\tscopes  []string\n\t// Scheme we should use, determined by ping response.\n\tscheme string\n}\n\nvar _ http.RoundTripper = (*bearerTransport)(nil)\n\nvar portMap = map[string]string{\n\t\"http\":  \"80\",\n\t\"https\": \"443\",\n}\n\nfunc stringSet(ss []string) map[string]struct{} {\n\tset := make(map[string]struct{})\n\tfor _, s := range ss {\n\t\tset[s] = struct{}{}\n\t}\n\treturn set\n}\n\n// RoundTrip implements http.RoundTripper\nfunc (bt *bearerTransport) RoundTrip(in *http.Request) (*http.Response, error) {\n\tsendRequest := func() (*http.Response, error) {\n\t\t// http.Client handles redirects at a layer above the http.RoundTripper\n\t\t// abstraction, so to avoid forwarding Authorization headers to places\n\t\t// we are redirected, only set it when the authorization header matches\n\t\t// the registry with which we are interacting.\n\t\t// In case of redirect http.Client can use an empty Host, check URL too.\n\t\tif matchesHost(bt.registry.RegistryStr(), in, bt.scheme) {\n\t\t\tbt.mx.RLock()\n\t\t\tlocalToken := bt.bearer.RegistryToken\n\t\t\tbt.mx.RUnlock()\n\t\t\thdr := fmt.Sprintf(\"Bearer %s\", localToken)\n\t\t\tin.Header.Set(\"Authorization\", hdr)\n\t\t}\n\t\treturn bt.inner.RoundTrip(in)\n\t}\n\n\tres, err := sendRequest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If we hit a WWW-Authenticate challenge, it might be due to expired tokens or insufficient scope.\n\tif challenges := authchallenge.ResponseChallenges(res); len(challenges) != 0 {\n\t\t// close out old response, since we will not return it.\n\t\tres.Body.Close()\n\n\t\tnewScopes := []string{}\n\t\tbt.mx.Lock()\n\t\tgot := stringSet(bt.scopes)\n\t\tfor _, wac := range challenges {\n\t\t\t// TODO(jonjohnsonjr): Should we also update \"realm\" or \"service\"?\n\t\t\tif want, ok := wac.Parameters[\"scope\"]; ok {\n\t\t\t\t// Add any scopes that we don't already request.\n\t\t\t\tif _, ok := got[want]; !ok {\n\t\t\t\t\tnewScopes = append(newScopes, want)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Some registries seem to only look at the first scope parameter during a token exchange.\n\t\t// If a request fails because it's missing a scope, we should put those at the beginning,\n\t\t// otherwise the registry might just ignore it :/\n\t\tnewScopes = append(newScopes, bt.scopes...)\n\t\tbt.scopes = newScopes\n\t\tbt.mx.Unlock()\n\n\t\t// TODO(jonjohnsonjr): Teach transport.Error about \"error\" and \"error_description\" from challenge.\n\n\t\t// Retry the request to attempt to get a valid token.\n\t\tif err = bt.refresh(in.Context()); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn sendRequest()\n\t}\n\n\treturn res, err\n}\n\n// It's unclear which authentication flow to use based purely on the protocol,\n// so we rely on heuristics and fallbacks to support as many registries as possible.\n// The basic token exchange is attempted first, falling back to the oauth flow.\n// If the IdentityToken is set, this indicates that we should start with the oauth flow.\nfunc (bt *bearerTransport) refresh(ctx context.Context) error {\n\tauth, err := authn.Authorization(ctx, bt.basic)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif auth.RegistryToken != \"\" {\n\t\tbt.mx.Lock()\n\t\tbt.bearer.RegistryToken = auth.RegistryToken\n\t\tbt.mx.Unlock()\n\t\treturn nil\n\t}\n\n\tresponse, err := bt.Refresh(ctx, auth)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Some registries set access_token instead of token. See #54.\n\tif response.AccessToken != \"\" {\n\t\tresponse.Token = response.AccessToken\n\t}\n\n\t// Find a token to turn into a Bearer authenticator\n\tif response.Token != \"\" {\n\t\tbt.mx.Lock()\n\t\tbt.bearer.RegistryToken = response.Token\n\t\tbt.mx.Unlock()\n\t}\n\n\t// If we obtained a refresh token from the oauth flow, use that for refresh() now.\n\tif response.RefreshToken != \"\" {\n\t\tbt.basic = authn.FromConfig(authn.AuthConfig{\n\t\t\tIdentityToken: response.RefreshToken,\n\t\t})\n\t}\n\n\treturn nil\n}\n\nfunc (bt *bearerTransport) Refresh(ctx context.Context, auth *authn.AuthConfig) (*Token, error) {\n\tvar (\n\t\tcontent []byte\n\t\terr     error\n\t)\n\tif auth.IdentityToken != \"\" {\n\t\t// If the secret being stored is an identity token,\n\t\t// the Username should be set to <token>, which indicates\n\t\t// we are using an oauth flow.\n\t\tcontent, err = bt.refreshOauth(ctx)\n\t\tvar terr *Error\n\t\tif errors.As(err, &terr) && terr.StatusCode == http.StatusNotFound {\n\t\t\t// Note: Not all token servers implement oauth2.\n\t\t\t// If the request to the endpoint returns 404 using the HTTP POST method,\n\t\t\t// refer to Token Documentation for using the HTTP GET method supported by all token servers.\n\t\t\tcontent, err = bt.refreshBasic(ctx)\n\t\t}\n\t} else {\n\t\tcontent, err = bt.refreshBasic(ctx)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar response Token\n\tif err := json.Unmarshal(content, &response); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif response.Token == \"\" && response.AccessToken == \"\" {\n\t\treturn &response, fmt.Errorf(\"no token in bearer response:\\n%s\", content)\n\t}\n\n\treturn &response, nil\n}\n\nfunc matchesHost(host string, in *http.Request, scheme string) bool {\n\tcanonicalHeaderHost := canonicalAddress(in.Host, scheme)\n\tcanonicalURLHost := canonicalAddress(in.URL.Host, scheme)\n\tcanonicalRegistryHost := canonicalAddress(host, scheme)\n\treturn canonicalHeaderHost == canonicalRegistryHost || canonicalURLHost == canonicalRegistryHost\n}\n\nfunc canonicalAddress(host, scheme string) (address string) {\n\t// The host may be any one of:\n\t// - hostname\n\t// - hostname:port\n\t// - ipv4\n\t// - ipv4:port\n\t// - ipv6\n\t// - [ipv6]:port\n\t// As net.SplitHostPort returns an error if the host does not contain a port, we should only attempt\n\t// to call it when we know that the address contains a port\n\tif strings.Count(host, \":\") == 1 || (strings.Count(host, \":\") >= 2 && strings.Contains(host, \"]:\")) {\n\t\thostname, port, err := net.SplitHostPort(host)\n\t\tif err != nil {\n\t\t\treturn host\n\t\t}\n\t\tif port == \"\" {\n\t\t\tport = portMap[scheme]\n\t\t}\n\n\t\treturn net.JoinHostPort(hostname, port)\n\t}\n\n\treturn net.JoinHostPort(host, portMap[scheme])\n}\n\n// https://docs.docker.com/registry/spec/auth/oauth/\nfunc (bt *bearerTransport) refreshOauth(ctx context.Context) ([]byte, error) {\n\tauth, err := authn.Authorization(ctx, bt.basic)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tu, err := url.Parse(bt.realm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv := url.Values{}\n\tbt.mx.RLock()\n\tv.Set(\"scope\", strings.Join(bt.scopes, \" \"))\n\tbt.mx.RUnlock()\n\tif bt.service != \"\" {\n\t\tv.Set(\"service\", bt.service)\n\t}\n\tv.Set(\"client_id\", defaultUserAgent)\n\tif auth.IdentityToken != \"\" {\n\t\tv.Set(\"grant_type\", \"refresh_token\")\n\t\tv.Set(\"refresh_token\", auth.IdentityToken)\n\t} else if auth.Username != \"\" && auth.Password != \"\" {\n\t\t// TODO(#629): This is unreachable.\n\t\tv.Set(\"grant_type\", \"password\")\n\t\tv.Set(\"username\", auth.Username)\n\t\tv.Set(\"password\", auth.Password)\n\t\tv.Set(\"access_type\", \"offline\")\n\t}\n\n\tclient := http.Client{Transport: bt.inner}\n\treq, err := http.NewRequest(http.MethodPost, u.String(), strings.NewReader(v.Encode()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\n\t// We don't want to log credentials.\n\tctx = redact.NewContext(ctx, \"oauth token response contains credentials\")\n\n\tresp, err := client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := CheckError(resp, http.StatusOK); err != nil {\n\t\tif bt.basic == authn.Anonymous {\n\t\t\tlogs.Warn.Printf(\"No matching credentials were found for %q\", bt.registry)\n\t\t}\n\t\treturn nil, err\n\t}\n\n\treturn io.ReadAll(resp.Body)\n}\n\n// https://docs.docker.com/registry/spec/auth/token/\nfunc (bt *bearerTransport) refreshBasic(ctx context.Context) ([]byte, error) {\n\tu, err := url.Parse(bt.realm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb := &basicTransport{\n\t\tinner:  bt.inner,\n\t\tauth:   bt.basic,\n\t\ttarget: u.Host,\n\t}\n\tclient := http.Client{Transport: b}\n\n\tv := u.Query()\n\tbt.mx.RLock()\n\tv[\"scope\"] = bt.scopes\n\tbt.mx.RUnlock()\n\tv.Set(\"service\", bt.service)\n\tu.RawQuery = v.Encode()\n\n\treq, err := http.NewRequest(http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We don't want to log credentials.\n\tctx = redact.NewContext(ctx, \"basic token response contains credentials\")\n\n\tresp, err := client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := CheckError(resp, http.StatusOK); err != nil {\n\t\tif bt.basic == authn.Anonymous {\n\t\t\tlogs.Warn.Printf(\"No matching credentials were found for %q\", bt.registry)\n\t\t}\n\t\treturn nil, err\n\t}\n\n\treturn io.ReadAll(resp.Body)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport provides facilities for setting up an authenticated\n// http.RoundTripper given an Authenticator and base RoundTripper.  See\n// transport.New for more information.\npackage transport\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n)\n\n// Error implements error to support the following error specification:\n// https://github.com/distribution/distribution/blob/aac2f6c8b7c5a6c60190848bab5cbeed2b5ba0a9/docs/spec/api.md#errors\ntype Error struct {\n\tErrors []Diagnostic `json:\"errors,omitempty\"`\n\t// The http status code returned.\n\tStatusCode int\n\t// The request that failed.\n\tRequest *http.Request\n\t// The raw body if we couldn't understand it.\n\trawBody string\n\n\t// Bit of a hack to make it easier to force a retry.\n\ttemporary bool\n}\n\n// Check that Error implements error\nvar _ error = (*Error)(nil)\n\n// Error implements error\nfunc (e *Error) Error() string {\n\tprefix := \"\"\n\tif e.Request != nil {\n\t\tprefix = fmt.Sprintf(\"%s %s: \", e.Request.Method, redact.URL(e.Request.URL))\n\t}\n\treturn prefix + e.responseErr()\n}\n\nfunc (e *Error) responseErr() string {\n\tswitch len(e.Errors) {\n\tcase 0:\n\t\tif len(e.rawBody) == 0 {\n\t\t\tif e.Request != nil && e.Request.Method == http.MethodHead {\n\t\t\t\treturn fmt.Sprintf(\"unexpected status code %d %s (HEAD responses have no body, use GET for details)\", e.StatusCode, http.StatusText(e.StatusCode))\n\t\t\t}\n\t\t\treturn fmt.Sprintf(\"unexpected status code %d %s\", e.StatusCode, http.StatusText(e.StatusCode))\n\t\t}\n\t\treturn fmt.Sprintf(\"unexpected status code %d %s: %s\", e.StatusCode, http.StatusText(e.StatusCode), e.rawBody)\n\tcase 1:\n\t\treturn e.Errors[0].String()\n\tdefault:\n\t\tvar errors []string\n\t\tfor _, d := range e.Errors {\n\t\t\terrors = append(errors, d.String())\n\t\t}\n\t\treturn fmt.Sprintf(\"multiple errors returned: %s\",\n\t\t\tstrings.Join(errors, \"; \"))\n\t}\n}\n\n// Temporary returns whether the request that preceded the error is temporary.\nfunc (e *Error) Temporary() bool {\n\tif e.temporary {\n\t\treturn true\n\t}\n\n\tif len(e.Errors) == 0 {\n\t\t_, ok := temporaryStatusCodes[e.StatusCode]\n\t\treturn ok\n\t}\n\tfor _, d := range e.Errors {\n\t\tif _, ok := temporaryErrorCodes[d.Code]; !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Diagnostic represents a single error returned by a Docker registry interaction.\ntype Diagnostic struct {\n\tCode    ErrorCode `json:\"code\"`\n\tMessage string    `json:\"message,omitempty\"`\n\tDetail  any       `json:\"detail,omitempty\"`\n}\n\n// String stringifies the Diagnostic in the form: $Code: $Message[; $Detail]\nfunc (d Diagnostic) String() string {\n\tmsg := fmt.Sprintf(\"%s: %s\", d.Code, d.Message)\n\tif d.Detail != nil {\n\t\tmsg = fmt.Sprintf(\"%s; %v\", msg, d.Detail)\n\t}\n\treturn msg\n}\n\n// ErrorCode is an enumeration of supported error codes.\ntype ErrorCode string\n\n// The set of error conditions a registry may return:\n// https://github.com/distribution/distribution/blob/aac2f6c8b7c5a6c60190848bab5cbeed2b5ba0a9/docs/spec/api.md#errors-2\nconst (\n\tBlobUnknownErrorCode         ErrorCode = \"BLOB_UNKNOWN\"\n\tBlobUploadInvalidErrorCode   ErrorCode = \"BLOB_UPLOAD_INVALID\"\n\tBlobUploadUnknownErrorCode   ErrorCode = \"BLOB_UPLOAD_UNKNOWN\"\n\tDigestInvalidErrorCode       ErrorCode = \"DIGEST_INVALID\"\n\tManifestBlobUnknownErrorCode ErrorCode = \"MANIFEST_BLOB_UNKNOWN\"\n\tManifestInvalidErrorCode     ErrorCode = \"MANIFEST_INVALID\"\n\tManifestUnknownErrorCode     ErrorCode = \"MANIFEST_UNKNOWN\"\n\tManifestUnverifiedErrorCode  ErrorCode = \"MANIFEST_UNVERIFIED\"\n\tNameInvalidErrorCode         ErrorCode = \"NAME_INVALID\"\n\tNameUnknownErrorCode         ErrorCode = \"NAME_UNKNOWN\"\n\tSizeInvalidErrorCode         ErrorCode = \"SIZE_INVALID\"\n\tTagInvalidErrorCode          ErrorCode = \"TAG_INVALID\"\n\tUnauthorizedErrorCode        ErrorCode = \"UNAUTHORIZED\"\n\tDeniedErrorCode              ErrorCode = \"DENIED\"\n\tUnsupportedErrorCode         ErrorCode = \"UNSUPPORTED\"\n\tTooManyRequestsErrorCode     ErrorCode = \"TOOMANYREQUESTS\"\n\tUnknownErrorCode             ErrorCode = \"UNKNOWN\"\n\n\t// This isn't defined by either docker or OCI spec, but is defined by docker/distribution:\n\t// https://github.com/distribution/distribution/blob/6a977a5a754baa213041443f841705888107362a/registry/api/errcode/register.go#L60\n\tUnavailableErrorCode ErrorCode = \"UNAVAILABLE\"\n)\n\n// TODO: Include other error types.\nvar temporaryErrorCodes = map[ErrorCode]struct{}{\n\tBlobUploadInvalidErrorCode: {},\n\tTooManyRequestsErrorCode:   {},\n\tUnknownErrorCode:           {},\n\tUnavailableErrorCode:       {},\n}\n\nvar temporaryStatusCodes = map[int]struct{}{\n\thttp.StatusRequestTimeout:      {},\n\thttp.StatusInternalServerError: {},\n\thttp.StatusBadGateway:          {},\n\thttp.StatusServiceUnavailable:  {},\n\thttp.StatusGatewayTimeout:      {},\n}\n\n// CheckError returns a structured error if the response status is not in codes.\nfunc CheckError(resp *http.Response, codes ...int) error {\n\tfor _, code := range codes {\n\t\tif resp.StatusCode == code {\n\t\t\t// This is one of the supported status codes.\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tb, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn makeError(resp, b)\n}\n\nfunc makeError(resp *http.Response, body []byte) *Error {\n\t// https://github.com/distribution/distribution/blob/aac2f6c8b7c5a6c60190848bab5cbeed2b5ba0a9/docs/spec/api.md#errors\n\tstructuredError := &Error{}\n\n\t// This can fail if e.g. the response body is not valid JSON. That's fine,\n\t// we'll construct an appropriate error string from the body and status code.\n\t_ = json.Unmarshal(body, structuredError)\n\n\tstructuredError.rawBody = string(body)\n\tstructuredError.StatusCode = resp.StatusCode\n\tstructuredError.Request = resp.Request\n\n\treturn structuredError\n}\n\nfunc retryError(resp *http.Response) error {\n\tb, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trerr := makeError(resp, b)\n\trerr.temporary = true\n\treturn rerr\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/logger.go",
    "content": "// Copyright 2020 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"time\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n)\n\ntype logTransport struct {\n\tinner http.RoundTripper\n}\n\n// NewLogger returns a transport that logs requests and responses to\n// github.com/google/go-containerregistry/pkg/logs.Debug.\nfunc NewLogger(inner http.RoundTripper) http.RoundTripper {\n\treturn &logTransport{inner}\n}\n\nfunc (t *logTransport) RoundTrip(in *http.Request) (out *http.Response, err error) {\n\t// Inspired by: github.com/motemen/go-loghttp\n\n\t// We redact token responses and binary blobs in response/request.\n\tomitBody, reason := redact.FromContext(in.Context())\n\tif omitBody {\n\t\tlogs.Debug.Printf(\"--> %s %s [body redacted: %s]\", in.Method, in.URL, reason)\n\t} else {\n\t\tlogs.Debug.Printf(\"--> %s %s\", in.Method, in.URL)\n\t}\n\n\t// Save these headers so we can redact Authorization.\n\tsavedHeaders := in.Header.Clone()\n\tif in.Header != nil && in.Header.Get(\"authorization\") != \"\" {\n\t\tin.Header.Set(\"authorization\", \"<redacted>\")\n\t}\n\n\tb, err := httputil.DumpRequestOut(in, !omitBody)\n\tif err == nil {\n\t\tlogs.Debug.Println(string(b))\n\t} else {\n\t\tlogs.Debug.Printf(\"Failed to dump request %s %s: %v\", in.Method, in.URL, err)\n\t}\n\n\t// Restore the non-redacted headers.\n\tin.Header = savedHeaders\n\n\tstart := time.Now()\n\tout, err = t.inner.RoundTrip(in)\n\tduration := time.Since(start)\n\tif err != nil {\n\t\tlogs.Debug.Printf(\"<-- %v %s %s (%s)\", err, in.Method, in.URL, duration)\n\t}\n\tif out != nil {\n\t\tmsg := fmt.Sprintf(\"<-- %d\", out.StatusCode)\n\t\tif out.Request != nil {\n\t\t\tmsg = fmt.Sprintf(\"%s %s\", msg, out.Request.URL)\n\t\t}\n\t\tmsg = fmt.Sprintf(\"%s (%s)\", msg, duration)\n\n\t\tif omitBody {\n\t\t\tmsg = fmt.Sprintf(\"%s [body redacted: %s]\", msg, reason)\n\t\t}\n\n\t\tlogs.Debug.Print(msg)\n\n\t\tb, err := httputil.DumpResponse(out, !omitBody)\n\t\tif err == nil {\n\t\t\tlogs.Debug.Println(string(b))\n\t\t} else {\n\t\t\tlogs.Debug.Printf(\"Failed to dump response %s %s: %v\", in.Method, in.URL, err)\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"cmp\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\tauthchallenge \"github.com/docker/distribution/registry/client/auth/challenge\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n)\n\n// 300ms is the default fallback period for go's DNS dialer but we could make this configurable.\nvar fallbackDelay = 300 * time.Millisecond\n\ntype Challenge struct {\n\tScheme string\n\n\t// Following the challenge there are often key/value pairs\n\t// e.g. Bearer service=\"gcr.io\",realm=\"https://auth.gcr.io/v36/tokenz\"\n\tParameters map[string]string\n\n\t// Whether we had to use http to complete the Ping.\n\tInsecure bool\n}\n\n// Ping does a GET /v2/ against the registry and returns the response.\nfunc Ping(ctx context.Context, reg name.Registry, t http.RoundTripper) (*Challenge, error) {\n\t// This first attempts to use \"https\" for every request, falling back to http\n\t// if the registry matches our localhost heuristic or if it is intentionally\n\t// set to insecure via name.NewInsecureRegistry.\n\tschemes := []string{\"https\"}\n\tif reg.Scheme() == \"http\" {\n\t\tschemes = append(schemes, \"http\")\n\t}\n\tif len(schemes) == 1 {\n\t\treturn pingSingle(ctx, reg, t, schemes[0])\n\t}\n\treturn pingParallel(ctx, reg, t, schemes)\n}\n\nfunc pingSingle(ctx context.Context, reg name.Registry, t http.RoundTripper, scheme string) (*Challenge, error) {\n\tclient := http.Client{Transport: t}\n\turl := fmt.Sprintf(\"%s://%s/v2/\", scheme, reg.RegistryStr())\n\treq, err := http.NewRequest(http.MethodGet, url, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp, err := client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer func() {\n\t\t// By draining the body, make sure to reuse the connection made by\n\t\t// the ping for the following access to the registry\n\t\tio.Copy(io.Discard, resp.Body)\n\t\tresp.Body.Close()\n\t}()\n\n\t// If resp.Request is set, we may have followed a redirect,\n\t// so we want to prefer resp.Request.URL.Scheme (if it's set)\n\t// falling back to the original request's scheme.\n\tinsecure := cmp.Or(resp.Request, req).URL.Scheme == \"http\"\n\n\tswitch resp.StatusCode {\n\tcase http.StatusOK:\n\t\t// If we get a 200, then no authentication is needed.\n\t\treturn &Challenge{\n\t\t\tInsecure: insecure,\n\t\t}, nil\n\tcase http.StatusUnauthorized:\n\t\tif challenges := authchallenge.ResponseChallenges(resp); len(challenges) != 0 {\n\t\t\t// If we hit more than one, let's try to find one that we know how to handle.\n\t\t\twac := pickFromMultipleChallenges(challenges)\n\t\t\treturn &Challenge{\n\t\t\t\tScheme:     wac.Scheme,\n\t\t\t\tParameters: wac.Parameters,\n\t\t\t\tInsecure:   insecure,\n\t\t\t}, nil\n\t\t}\n\t\t// Otherwise, just return the challenge without parameters.\n\t\treturn &Challenge{\n\t\t\tScheme:   resp.Header.Get(\"WWW-Authenticate\"),\n\t\t\tInsecure: insecure,\n\t\t}, nil\n\tdefault:\n\t\treturn nil, CheckError(resp, http.StatusOK, http.StatusUnauthorized)\n\t}\n}\n\n// Based on the golang happy eyeballs dialParallel impl in net/dial.go.\nfunc pingParallel(ctx context.Context, reg name.Registry, t http.RoundTripper, schemes []string) (*Challenge, error) {\n\treturned := make(chan struct{})\n\tdefer close(returned)\n\n\ttype pingResult struct {\n\t\t*Challenge\n\t\terror\n\t\tprimary bool\n\t\tdone    bool\n\t}\n\n\tresults := make(chan pingResult)\n\n\tstartRacer := func(ctx context.Context, scheme string) {\n\t\tpr, err := pingSingle(ctx, reg, t, scheme)\n\t\tselect {\n\t\tcase results <- pingResult{Challenge: pr, error: err, primary: scheme == \"https\", done: true}:\n\t\tcase <-returned:\n\t\t\tif pr != nil {\n\t\t\t\tlogs.Debug.Printf(\"%s lost race\", scheme)\n\t\t\t}\n\t\t}\n\t}\n\n\tvar primary, fallback pingResult\n\n\tprimaryCtx, primaryCancel := context.WithCancel(ctx)\n\tdefer primaryCancel()\n\tgo startRacer(primaryCtx, schemes[0])\n\n\tfallbackTimer := time.NewTimer(fallbackDelay)\n\tdefer fallbackTimer.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-fallbackTimer.C:\n\t\t\tfallbackCtx, fallbackCancel := context.WithCancel(ctx)\n\t\t\tdefer fallbackCancel()\n\t\t\tgo startRacer(fallbackCtx, schemes[1])\n\n\t\tcase res := <-results:\n\t\t\tif res.error == nil {\n\t\t\t\treturn res.Challenge, nil\n\t\t\t}\n\t\t\tif res.primary {\n\t\t\t\tprimary = res\n\t\t\t} else {\n\t\t\t\tfallback = res\n\t\t\t}\n\t\t\tif primary.done && fallback.done {\n\t\t\t\treturn nil, multierrs{primary.error, fallback.error}\n\t\t\t}\n\t\t\tif res.primary && fallbackTimer.Stop() {\n\t\t\t\t// Primary failed and we haven't started the fallback,\n\t\t\t\t// reset time to start fallback immediately.\n\t\t\t\tfallbackTimer.Reset(0)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc pickFromMultipleChallenges(challenges []authchallenge.Challenge) authchallenge.Challenge {\n\t// It might happen there are multiple www-authenticate headers, e.g. `Negotiate` and `Basic`.\n\t// Picking simply the first one could result eventually in `unrecognized challenge` error,\n\t// that's why we're looping through the challenges in search for one that can be handled.\n\tallowedSchemes := []string{\"basic\", \"bearer\"}\n\n\tfor _, wac := range challenges {\n\t\tcurrentScheme := strings.ToLower(wac.Scheme)\n\t\tfor _, allowed := range allowedSchemes {\n\t\t\tif allowed == currentScheme {\n\t\t\t\treturn wac\n\t\t\t}\n\t\t}\n\t}\n\n\treturn challenges[0]\n}\n\ntype multierrs []error\n\nfunc (m multierrs) Error() string {\n\tvar b strings.Builder\n\thasWritten := false\n\tfor _, err := range m {\n\t\tif hasWritten {\n\t\t\tb.WriteString(\"; \")\n\t\t}\n\t\thasWritten = true\n\t\tb.WriteString(err.Error())\n\t}\n\treturn b.String()\n}\n\nfunc (m multierrs) As(target any) bool {\n\tfor _, err := range m {\n\t\tif errors.As(err, target) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (m multierrs) Is(target error) bool {\n\tfor _, err := range m {\n\t\tif errors.Is(err, target) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/retry.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/google/go-containerregistry/internal/retry\"\n)\n\n// Sleep for 0.1 then 0.3 seconds. This should cover networking blips.\nvar defaultBackoff = retry.Backoff{\n\tDuration: 100 * time.Millisecond,\n\tFactor:   3.0,\n\tJitter:   0.1,\n\tSteps:    3,\n}\n\nvar _ http.RoundTripper = (*retryTransport)(nil)\n\n// retryTransport wraps a RoundTripper and retries temporary network errors.\ntype retryTransport struct {\n\tinner     http.RoundTripper\n\tbackoff   retry.Backoff\n\tpredicate retry.Predicate\n\tcodes     []int\n}\n\n// Option is a functional option for retryTransport.\ntype Option func(*options)\n\ntype options struct {\n\tbackoff   retry.Backoff\n\tpredicate retry.Predicate\n\tcodes     []int\n}\n\n// Backoff is an alias of retry.Backoff to expose this configuration option to consumers of this lib\ntype Backoff = retry.Backoff\n\n// WithRetryBackoff sets the backoff for retry operations.\nfunc WithRetryBackoff(backoff Backoff) Option {\n\treturn func(o *options) {\n\t\to.backoff = backoff\n\t}\n}\n\n// WithRetryPredicate sets the predicate for retry operations.\nfunc WithRetryPredicate(predicate func(error) bool) Option {\n\treturn func(o *options) {\n\t\to.predicate = predicate\n\t}\n}\n\n// WithRetryStatusCodes sets which http response codes will be retried.\nfunc WithRetryStatusCodes(codes ...int) Option {\n\treturn func(o *options) {\n\t\to.codes = codes\n\t}\n}\n\n// NewRetry returns a transport that retries errors.\nfunc NewRetry(inner http.RoundTripper, opts ...Option) http.RoundTripper {\n\to := &options{\n\t\tbackoff:   defaultBackoff,\n\t\tpredicate: retry.IsTemporary,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(o)\n\t}\n\n\treturn &retryTransport{\n\t\tinner:     inner,\n\t\tbackoff:   o.backoff,\n\t\tpredicate: o.predicate,\n\t\tcodes:     o.codes,\n\t}\n}\n\nfunc (t *retryTransport) RoundTrip(in *http.Request) (out *http.Response, err error) {\n\troundtrip := func() error {\n\t\tout, err = t.inner.RoundTrip(in)\n\t\tif !retry.Ever(in.Context()) {\n\t\t\treturn nil\n\t\t}\n\t\tif out != nil {\n\t\t\tfor _, code := range t.codes {\n\t\t\t\tif out.StatusCode == code {\n\t\t\t\t\treturn retryError(out)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\tretry.Retry(roundtrip, t.predicate, t.backoff)\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/schemer.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n)\n\ntype schemeTransport struct {\n\t// Scheme we should use, determined by ping response.\n\tscheme string\n\n\t// Registry we're talking to.\n\tregistry name.Registry\n\n\t// Wrapped by schemeTransport.\n\tinner http.RoundTripper\n}\n\n// RoundTrip implements http.RoundTripper\nfunc (st *schemeTransport) RoundTrip(in *http.Request) (*http.Response, error) {\n\t// When we ping() the registry, we determine whether to use http or https\n\t// based on which scheme was successful. That is only valid for the\n\t// registry server and not e.g. a separate token server or blob storage,\n\t// so we should only override the scheme if the host is the registry.\n\tif matchesHost(st.registry.String(), in, st.scheme) {\n\t\tin.URL.Scheme = st.scheme\n\t}\n\treturn st.inner.RoundTrip(in)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\n// Scopes suitable to qualify each Repository\nconst (\n\tPullScope string = \"pull\"\n\tPushScope string = \"push,pull\"\n\t// For now DELETE is PUSH, which is the read/write ACL.\n\tDeleteScope  string = PushScope\n\tCatalogScope string = \"catalog\"\n)\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n)\n\n// New returns a new RoundTripper based on the provided RoundTripper that has been\n// setup to authenticate with the remote registry \"reg\", in the capacity\n// laid out by the specified scopes.\n//\n// Deprecated: Use NewWithContext.\nfunc New(reg name.Registry, auth authn.Authenticator, t http.RoundTripper, scopes []string) (http.RoundTripper, error) {\n\treturn NewWithContext(context.Background(), reg, auth, t, scopes)\n}\n\n// NewWithContext returns a new RoundTripper based on the provided RoundTripper that has been\n// set up to authenticate with the remote registry \"reg\", in the capacity\n// laid out by the specified scopes.\n// In case the RoundTripper is already of the type Wrapper it assumes\n// authentication was already done prior to this call, so it just returns\n// the provided RoundTripper without further action\nfunc NewWithContext(ctx context.Context, reg name.Registry, auth authn.Authenticator, t http.RoundTripper, scopes []string) (http.RoundTripper, error) {\n\t// When the transport provided is of the type Wrapper this function assumes that the caller already\n\t// executed the necessary login and check.\n\tswitch t.(type) {\n\tcase *Wrapper:\n\t\treturn t, nil\n\t}\n\t// The handshake:\n\t//  1. Use \"t\" to ping() the registry for the authentication challenge.\n\t//\n\t//  2a. If we get back a 200, then simply use \"t\".\n\t//\n\t//  2b. If we get back a 401 with a Basic challenge, then use a transport\n\t//     that just attachs auth each roundtrip.\n\t//\n\t//  2c. If we get back a 401 with a Bearer challenge, then use a transport\n\t//     that attaches a bearer token to each request, and refreshes is on 401s.\n\t//     Perform an initial refresh to seed the bearer token.\n\n\t// First we ping the registry to determine the parameters of the authentication handshake\n\t// (if one is even necessary).\n\tpr, err := Ping(ctx, reg, t)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Wrap t with a useragent transport unless we already have one.\n\tif _, ok := t.(*userAgentTransport); !ok {\n\t\tt = NewUserAgent(t, \"\")\n\t}\n\n\tscheme := \"https\"\n\tif pr.Insecure {\n\t\tscheme = \"http\"\n\t}\n\n\t// Wrap t in a transport that selects the appropriate scheme based on the ping response.\n\tt = &schemeTransport{\n\t\tscheme:   scheme,\n\t\tregistry: reg,\n\t\tinner:    t,\n\t}\n\n\tif strings.ToLower(pr.Scheme) != \"bearer\" {\n\t\treturn &Wrapper{&basicTransport{inner: t, auth: auth, target: reg.RegistryStr()}}, nil\n\t}\n\n\tbt, err := fromChallenge(reg, auth, t, pr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbt.scopes = scopes\n\n\tif err := bt.refresh(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Wrapper{bt}, nil\n}\n\n// Wrapper results in *not* wrapping supplied transport with additional logic such as retries, useragent and debug logging\n// Consumers are opt-ing into providing their own transport without any additional wrapping.\ntype Wrapper struct {\n\tinner http.RoundTripper\n}\n\n// RoundTrip delegates to the inner RoundTripper\nfunc (w *Wrapper) RoundTrip(in *http.Request) (*http.Response, error) {\n\treturn w.inner.RoundTrip(in)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/useragent.go",
    "content": "// Copyright 2019 Google LLC All Rights Reserved.\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 transport\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"runtime/debug\"\n)\n\nvar (\n\t// Version can be set via:\n\t// -ldflags=\"-X 'github.com/google/go-containerregistry/pkg/v1/remote/transport.Version=$TAG'\"\n\tVersion string\n\n\tggcrVersion = defaultUserAgent\n)\n\nconst (\n\tdefaultUserAgent = \"go-containerregistry\"\n\tmoduleName       = \"github.com/google/go-containerregistry\"\n)\n\ntype userAgentTransport struct {\n\tinner http.RoundTripper\n\tua    string\n}\n\nfunc init() {\n\tif v := version(); v != \"\" {\n\t\tggcrVersion = fmt.Sprintf(\"%s/%s\", defaultUserAgent, v)\n\t}\n}\n\nfunc version() string {\n\tif Version != \"\" {\n\t\t// Version was set via ldflags, just return it.\n\t\treturn Version\n\t}\n\n\tinfo, ok := debug.ReadBuildInfo()\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\t// Happens for crane and gcrane.\n\tif info.Main.Path == moduleName {\n\t\treturn info.Main.Version\n\t}\n\n\t// Anything else.\n\tfor _, dep := range info.Deps {\n\t\tif dep.Path == moduleName {\n\t\t\treturn dep.Version\n\t\t}\n\t}\n\n\treturn \"\"\n}\n\n// NewUserAgent returns an http.Roundtripper that sets the user agent to\n// The provided string plus additional go-containerregistry information,\n// e.g. if provided \"crane/v0.1.4\" and this modules was built at v0.1.4:\n//\n// User-Agent: crane/v0.1.4 go-containerregistry/v0.1.4\nfunc NewUserAgent(inner http.RoundTripper, ua string) http.RoundTripper {\n\tif ua == \"\" {\n\t\tua = ggcrVersion\n\t} else {\n\t\tua = fmt.Sprintf(\"%s %s\", ua, ggcrVersion)\n\t}\n\treturn &userAgentTransport{\n\t\tinner: inner,\n\t\tua:    ua,\n\t}\n}\n\n// RoundTrip implements http.RoundTripper\nfunc (ut *userAgentTransport) RoundTrip(in *http.Request) (*http.Response, error) {\n\tin.Header.Set(\"User-Agent\", ut.ua)\n\treturn ut.inner.RoundTrip(in)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 remote\n\nimport (\n\t\"bytes\"\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\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/google/go-containerregistry/internal/redact\"\n\t\"github.com/google/go-containerregistry/internal/retry\"\n\t\"github.com/google/go-containerregistry/pkg/authn\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote/transport\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\n// Taggable is an interface that enables a manifest PUT (e.g. for tagging).\ntype Taggable interface {\n\tRawManifest() ([]byte, error)\n}\n\n// Write pushes the provided img to the specified image reference.\nfunc Write(ref name.Reference, img v1.Image, options ...Option) (rerr error) {\n\treturn Push(ref, img, options...)\n}\n\n// writer writes the elements of an image to a remote image reference.\ntype writer struct {\n\trepo      name.Repository\n\tauth      authn.Authenticator\n\ttransport http.RoundTripper\n\n\tclient *http.Client\n\n\tprogress  *progress\n\tbackoff   Backoff\n\tpredicate retry.Predicate\n\n\tscopeLock sync.Mutex\n\t// Keep track of scopes that we have already requested.\n\tscopeSet map[string]struct{}\n\tscopes   []string\n}\n\nfunc makeWriter(ctx context.Context, repo name.Repository, ls []v1.Layer, o *options) (*writer, error) {\n\tauth := o.auth\n\tif o.keychain != nil {\n\t\tkauth, err := authn.Resolve(ctx, o.keychain, repo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tauth = kauth\n\t}\n\tscopes := scopesForUploadingImage(repo, ls)\n\ttr, err := transport.NewWithContext(ctx, repo.Registry, auth, o.transport, scopes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tscopeSet := map[string]struct{}{}\n\tfor _, scope := range scopes {\n\t\tscopeSet[scope] = struct{}{}\n\t}\n\treturn &writer{\n\t\trepo:      repo,\n\t\tclient:    &http.Client{Transport: tr},\n\t\tauth:      auth,\n\t\ttransport: o.transport,\n\t\tprogress:  o.progress,\n\t\tbackoff:   o.retryBackoff,\n\t\tpredicate: o.retryPredicate,\n\t\tscopes:    scopes,\n\t\tscopeSet:  scopeSet,\n\t}, nil\n}\n\n// url returns a url.Url for the specified path in the context of this remote image reference.\nfunc (w *writer) url(path string) url.URL {\n\treturn url.URL{\n\t\tScheme: w.repo.Scheme(),\n\t\tHost:   w.repo.RegistryStr(),\n\t\tPath:   path,\n\t}\n}\n\nfunc (w *writer) maybeUpdateScopes(ctx context.Context, ml *MountableLayer) error {\n\tif ml.Reference.Context().String() == w.repo.String() {\n\t\treturn nil\n\t}\n\tif ml.Reference.Context().Registry.String() != w.repo.Registry.String() {\n\t\treturn nil\n\t}\n\n\tscope := ml.Reference.Scope(transport.PullScope)\n\n\tw.scopeLock.Lock()\n\tdefer w.scopeLock.Unlock()\n\n\tif _, ok := w.scopeSet[scope]; !ok {\n\t\tw.scopeSet[scope] = struct{}{}\n\t\tw.scopes = append(w.scopes, scope)\n\n\t\tlogs.Debug.Printf(\"Refreshing token to add scope %q\", scope)\n\t\twt, err := transport.NewWithContext(ctx, w.repo.Registry, w.auth, w.transport, w.scopes)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tw.client = &http.Client{Transport: wt}\n\t}\n\n\treturn nil\n}\n\n// nextLocation extracts the fully-qualified URL to which we should send the next request in an upload sequence.\nfunc (w *writer) nextLocation(resp *http.Response) (string, error) {\n\tloc := resp.Header.Get(\"Location\")\n\tif len(loc) == 0 {\n\t\treturn \"\", errors.New(\"missing Location header\")\n\t}\n\tu, err := url.Parse(loc)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// If the location header returned is just a url path, then fully qualify it.\n\t// We cannot simply call w.url, since there might be an embedded query string.\n\treturn resp.Request.URL.ResolveReference(u).String(), nil\n}\n\n// checkExistingBlob checks if a blob exists already in the repository by making a\n// HEAD request to the blob store API.  GCR performs an existence check on the\n// initiation if \"mount\" is specified, even if no \"from\" sources are specified.\n// However, this is not broadly applicable to all registries, e.g. ECR.\nfunc (w *writer) checkExistingBlob(ctx context.Context, h v1.Hash) (bool, error) {\n\tu := w.url(fmt.Sprintf(\"/v2/%s/blobs/%s\", w.repo.RepositoryStr(), h.String()))\n\n\treq, err := http.NewRequest(http.MethodHead, u.String(), nil)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tresp, err := w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound); err != nil {\n\t\treturn false, err\n\t}\n\n\treturn resp.StatusCode == http.StatusOK, nil\n}\n\n// initiateUpload initiates the blob upload, which starts with a POST that can\n// optionally include the hash of the layer and a list of repositories from\n// which that layer might be read. On failure, an error is returned.\n// On success, the layer was either mounted (nothing more to do) or a blob\n// upload was initiated and the body of that blob should be sent to the returned\n// location.\nfunc (w *writer) initiateUpload(ctx context.Context, from, mount, origin string) (location string, mounted bool, err error) {\n\tu := w.url(fmt.Sprintf(\"/v2/%s/blobs/uploads/\", w.repo.RepositoryStr()))\n\tuv := url.Values{}\n\tif mount != \"\" && from != \"\" {\n\t\t// Quay will fail if we specify a \"mount\" without a \"from\".\n\t\tuv.Set(\"mount\", mount)\n\t\tuv.Set(\"from\", from)\n\t\tif origin != \"\" {\n\t\t\tuv.Set(\"origin\", origin)\n\t\t}\n\t}\n\tu.RawQuery = uv.Encode()\n\n\t// Make the request to initiate the blob upload.\n\treq, err := http.NewRequest(http.MethodPost, u.String(), nil)\n\tif err != nil {\n\t\treturn \"\", false, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\tresp, err := w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\tif from != \"\" {\n\t\t\t// https://github.com/google/go-containerregistry/issues/1679\n\t\t\tlogs.Warn.Printf(\"retrying without mount: %v\", err)\n\t\t\treturn w.initiateUpload(ctx, \"\", \"\", \"\")\n\t\t}\n\t\treturn \"\", false, err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusCreated, http.StatusAccepted); err != nil {\n\t\tif from != \"\" {\n\t\t\t// https://github.com/google/go-containerregistry/issues/1404\n\t\t\tlogs.Warn.Printf(\"retrying without mount: %v\", err)\n\t\t\treturn w.initiateUpload(ctx, \"\", \"\", \"\")\n\t\t}\n\t\treturn \"\", false, err\n\t}\n\n\t// Check the response code to determine the result.\n\tswitch resp.StatusCode {\n\tcase http.StatusCreated:\n\t\t// We're done, we were able to fast-path.\n\t\treturn \"\", true, nil\n\tcase http.StatusAccepted:\n\t\t// Proceed to PATCH, upload has begun.\n\t\tloc, err := w.nextLocation(resp)\n\t\treturn loc, false, err\n\tdefault:\n\t\tpanic(\"Unreachable: initiateUpload\")\n\t}\n}\n\n// streamBlob streams the contents of the blob to the specified location.\n// On failure, this will return an error.  On success, this will return the location\n// header indicating how to commit the streamed blob.\nfunc (w *writer) streamBlob(ctx context.Context, layer v1.Layer, streamLocation string) (commitLocation string, rerr error) {\n\treset := func() {}\n\tdefer func() {\n\t\tif rerr != nil {\n\t\t\treset()\n\t\t}\n\t}()\n\tblob, err := layer.Compressed()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tgetBody := layer.Compressed\n\tif w.progress != nil {\n\t\tvar count int64\n\t\tblob = &progressReader{rc: blob, progress: w.progress, count: &count}\n\t\tgetBody = func() (io.ReadCloser, error) {\n\t\t\tblob, err := layer.Compressed()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn &progressReader{rc: blob, progress: w.progress, count: &count}, nil\n\t\t}\n\t\treset = func() {\n\t\t\tw.progress.complete(-count)\n\t\t}\n\t}\n\n\treq, err := http.NewRequest(http.MethodPatch, streamLocation, blob)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif _, ok := layer.(*stream.Layer); !ok {\n\t\t// We can't retry streaming layers.\n\t\treq.GetBody = getBody\n\n\t\t// If we know the size, set it.\n\t\tif size, err := layer.Size(); err == nil {\n\t\t\treq.ContentLength = size\n\t\t}\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/octet-stream\")\n\n\tresp, err := w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusNoContent, http.StatusAccepted, http.StatusCreated); err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// The blob has been uploaded, return the location header indicating\n\t// how to commit this layer.\n\treturn w.nextLocation(resp)\n}\n\n// commitBlob commits this blob by sending a PUT to the location returned from\n// streaming the blob.\nfunc (w *writer) commitBlob(ctx context.Context, location, digest string) error {\n\tu, err := url.Parse(location)\n\tif err != nil {\n\t\treturn err\n\t}\n\tv := u.Query()\n\tv.Set(\"digest\", digest)\n\tu.RawQuery = v.Encode()\n\n\treq, err := http.NewRequest(http.MethodPut, u.String(), nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/octet-stream\")\n\n\tresp, err := w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer resp.Body.Close()\n\n\treturn transport.CheckError(resp, http.StatusCreated)\n}\n\n// incrProgress increments and sends a progress update, if WithProgress is used.\nfunc (w *writer) incrProgress(written int64) {\n\tif w.progress == nil {\n\t\treturn\n\t}\n\tw.progress.complete(written)\n}\n\n// uploadOne performs a complete upload of a single layer.\nfunc (w *writer) uploadOne(ctx context.Context, l v1.Layer) error {\n\ttryUpload := func() error {\n\t\tctx := retry.Never(ctx)\n\t\tvar from, mount, origin string\n\t\tif h, err := l.Digest(); err == nil {\n\t\t\t// If we know the digest, this isn't a streaming layer. Do an existence\n\t\t\t// check so we can skip uploading the layer if possible.\n\t\t\texisting, err := w.checkExistingBlob(ctx, h)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif existing {\n\t\t\t\tsize, err := l.Size()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.incrProgress(size)\n\t\t\t\tlogs.Progress.Printf(\"existing blob: %v\", h)\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tmount = h.String()\n\t\t}\n\t\tif ml, ok := l.(*MountableLayer); ok {\n\t\t\tif err := w.maybeUpdateScopes(ctx, ml); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tfrom = ml.Reference.Context().RepositoryStr()\n\t\t\torigin = ml.Reference.Context().RegistryStr()\n\n\t\t\t// This keeps breaking with DockerHub.\n\t\t\t// https://github.com/google/go-containerregistry/issues/1741\n\t\t\tif w.repo.RegistryStr() == name.DefaultRegistry && origin != w.repo.RegistryStr() {\n\t\t\t\tfrom = \"\"\n\t\t\t\torigin = \"\"\n\t\t\t}\n\t\t}\n\n\t\tlocation, mounted, err := w.initiateUpload(ctx, from, mount, origin)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t} else if mounted {\n\t\t\tsize, err := l.Size()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tw.incrProgress(size)\n\t\t\th, err := l.Digest()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlogs.Progress.Printf(\"mounted blob: %s\", h.String())\n\t\t\treturn nil\n\t\t}\n\n\t\t// Only log layers with +json or +yaml. We can let through other stuff if it becomes popular.\n\t\t// TODO(opencontainers/image-spec#791): Would be great to have an actual parser.\n\t\tmt, err := l.MediaType()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsmt := string(mt)\n\t\tif !strings.HasSuffix(smt, \"+json\") && !strings.HasSuffix(smt, \"+yaml\") {\n\t\t\tctx = redact.NewContext(ctx, \"omitting binary blobs from logs\")\n\t\t}\n\n\t\tlocation, err = w.streamBlob(ctx, l, location)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\th, err := l.Digest()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdigest := h.String()\n\n\t\tif err := w.commitBlob(ctx, location, digest); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogs.Progress.Printf(\"pushed blob: %s\", digest)\n\t\treturn nil\n\t}\n\n\treturn retry.Retry(tryUpload, w.predicate, w.backoff)\n}\n\ntype withMediaType interface {\n\tMediaType() (types.MediaType, error)\n}\n\n// This is really silly, but go interfaces don't let me satisfy remote.Taggable\n// with remote.Descriptor because of name collisions between method names and\n// struct fields.\n//\n// Use reflection to either pull the v1.Descriptor out of remote.Descriptor or\n// create a descriptor based on the RawManifest and (optionally) MediaType.\nfunc unpackTaggable(t Taggable) ([]byte, *v1.Descriptor, error) {\n\tif d, ok := t.(*Descriptor); ok {\n\t\treturn d.Manifest, &d.Descriptor, nil\n\t}\n\tb, err := t.RawManifest()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// A reasonable default if Taggable doesn't implement MediaType.\n\tmt := types.DockerManifestSchema2\n\n\tif wmt, ok := t.(withMediaType); ok {\n\t\tm, err := wmt.MediaType()\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tmt = m\n\t}\n\n\th, sz, err := v1.SHA256(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\treturn b, &v1.Descriptor{\n\t\tMediaType: mt,\n\t\tSize:      sz,\n\t\tDigest:    h,\n\t}, nil\n}\n\n// commitSubjectReferrers is responsible for updating the fallback tag manifest to track descriptors referring to a subject for registries that don't yet support the Referrers API.\n// TODO: use conditional requests to avoid race conditions\nfunc (w *writer) commitSubjectReferrers(ctx context.Context, sub name.Digest, add v1.Descriptor) error {\n\t// Check if the registry supports Referrers API.\n\t// TODO: This should be done once per registry, not once per subject.\n\tu := w.url(fmt.Sprintf(\"/v2/%s/referrers/%s\", w.repo.RepositoryStr(), sub.DigestStr()))\n\treq, err := http.NewRequest(http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\treq.Header.Set(\"Accept\", string(types.OCIImageIndex))\n\tresp, err := w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer resp.Body.Close()\n\n\tif err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound, http.StatusBadRequest); err != nil {\n\t\treturn err\n\t}\n\tif resp.StatusCode == http.StatusOK {\n\t\t// The registry supports Referrers API. The registry is responsible for updating the referrers list.\n\t\treturn nil\n\t}\n\n\t// The registry doesn't support Referrers API, we need to update the manifest tagged with the fallback tag.\n\t// Make the request to GET the current manifest.\n\tt := fallbackTag(sub)\n\tu = w.url(fmt.Sprintf(\"/v2/%s/manifests/%s\", w.repo.RepositoryStr(), t.Identifier()))\n\treq, err = http.NewRequest(http.MethodGet, u.String(), nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\treq.Header.Set(\"Accept\", string(types.OCIImageIndex))\n\tresp, err = w.client.Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer resp.Body.Close()\n\n\tvar im v1.IndexManifest\n\tif err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound); err != nil {\n\t\treturn err\n\t} else if resp.StatusCode == http.StatusNotFound {\n\t\t// Not found just means there are no attachments. Start with an empty index.\n\t\tim = v1.IndexManifest{\n\t\t\tSchemaVersion: 2,\n\t\t\tMediaType:     types.OCIImageIndex,\n\t\t\tManifests:     []v1.Descriptor{add},\n\t\t}\n\t} else {\n\t\tif err := json.NewDecoder(resp.Body).Decode(&im); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif im.SchemaVersion != 2 {\n\t\t\treturn fmt.Errorf(\"fallback tag manifest is not a schema version 2: %d\", im.SchemaVersion)\n\t\t}\n\t\tif im.MediaType != types.OCIImageIndex {\n\t\t\treturn fmt.Errorf(\"fallback tag manifest is not an OCI image index: %s\", im.MediaType)\n\t\t}\n\t\tfor _, desc := range im.Manifests {\n\t\t\tif desc.Digest == add.Digest {\n\t\t\t\t// The digest is already attached, nothing to do.\n\t\t\t\tlogs.Progress.Printf(\"fallback tag %s already had referrer\", t.Identifier())\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\t// Append the new descriptor to the index.\n\t\tim.Manifests = append(im.Manifests, add)\n\t}\n\n\t// Sort the manifests for reproducibility.\n\tsort.Slice(im.Manifests, func(i, j int) bool {\n\t\treturn im.Manifests[i].Digest.String() < im.Manifests[j].Digest.String()\n\t})\n\tlogs.Progress.Printf(\"updating fallback tag %s with new referrer\", t.Identifier())\n\treturn w.commitManifest(ctx, fallbackTaggable{im}, t)\n}\n\ntype fallbackTaggable struct {\n\tim v1.IndexManifest\n}\n\nfunc (f fallbackTaggable) RawManifest() ([]byte, error)        { return json.Marshal(f.im) }\nfunc (f fallbackTaggable) MediaType() (types.MediaType, error) { return types.OCIImageIndex, nil }\n\n// commitManifest does a PUT of the image's manifest.\nfunc (w *writer) commitManifest(ctx context.Context, t Taggable, ref name.Reference) error {\n\t// If the manifest refers to a subject, we need to check whether we need to update the fallback tag manifest.\n\traw, err := t.RawManifest()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar mf struct {\n\t\tMediaType types.MediaType `json:\"mediaType\"`\n\t\tSubject   *v1.Descriptor  `json:\"subject,omitempty\"`\n\t\tConfig    struct {\n\t\t\tMediaType types.MediaType `json:\"mediaType\"`\n\t\t} `json:\"config\"`\n\t}\n\tif err := json.Unmarshal(raw, &mf); err != nil {\n\t\treturn err\n\t}\n\n\ttryUpload := func() error {\n\t\tctx := retry.Never(ctx)\n\t\traw, desc, err := unpackTaggable(t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tu := w.url(fmt.Sprintf(\"/v2/%s/manifests/%s\", w.repo.RepositoryStr(), ref.Identifier()))\n\n\t\t// Make the request to PUT the serialized manifest\n\t\treq, err := http.NewRequest(http.MethodPut, u.String(), bytes.NewBuffer(raw))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treq.Header.Set(\"Content-Type\", string(desc.MediaType))\n\n\t\tresp, err := w.client.Do(req.WithContext(ctx))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer resp.Body.Close()\n\n\t\tif err := transport.CheckError(resp, http.StatusOK, http.StatusCreated, http.StatusAccepted); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// If the manifest referred to a subject, we may need to update the fallback tag manifest.\n\t\t// TODO: If this fails, we'll retry the whole upload. We should retry just this part.\n\t\tif mf.Subject != nil {\n\t\t\th, size, err := v1.SHA256(bytes.NewReader(raw))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdesc := v1.Descriptor{\n\t\t\t\tArtifactType: string(mf.Config.MediaType),\n\t\t\t\tMediaType:    mf.MediaType,\n\t\t\t\tDigest:       h,\n\t\t\t\tSize:         size,\n\t\t\t}\n\t\t\tif err := w.commitSubjectReferrers(ctx,\n\t\t\t\tref.Context().Digest(mf.Subject.Digest.String()),\n\t\t\t\tdesc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\t// The image was successfully pushed!\n\t\tlogs.Progress.Printf(\"%v: digest: %v size: %d\", ref, desc.Digest, desc.Size)\n\t\tw.incrProgress(int64(len(raw)))\n\t\treturn nil\n\t}\n\n\treturn retry.Retry(tryUpload, w.predicate, w.backoff)\n}\n\nfunc scopesForUploadingImage(repo name.Repository, layers []v1.Layer) []string {\n\t// use a map as set to remove duplicates scope strings\n\tscopeSet := map[string]struct{}{}\n\n\tfor _, l := range layers {\n\t\tif ml, ok := l.(*MountableLayer); ok {\n\t\t\t// we will add push scope for ref.Context() after the loop.\n\t\t\t// for now we ask pull scope for references of the same registry\n\t\t\tif ml.Reference.Context().String() != repo.String() && ml.Reference.Context().Registry.String() == repo.Registry.String() {\n\t\t\t\tscopeSet[ml.Reference.Scope(transport.PullScope)] = struct{}{}\n\t\t\t}\n\t\t}\n\t}\n\n\tscopes := make([]string, 0, len(scopeSet)+1)\n\t// Push scope should be the first element because a few registries just look at the first scope to determine access.\n\tscopes = append(scopes, repo.Scope(transport.PushScope))\n\n\tfor scope := range scopeSet {\n\t\tscopes = append(scopes, scope)\n\t}\n\n\treturn scopes\n}\n\n// WriteIndex pushes the provided ImageIndex to the specified image reference.\n// WriteIndex will attempt to push all of the referenced manifests before\n// attempting to push the ImageIndex, to retain referential integrity.\nfunc WriteIndex(ref name.Reference, ii v1.ImageIndex, options ...Option) (rerr error) {\n\treturn Push(ref, ii, options...)\n}\n\n// WriteLayer uploads the provided Layer to the specified repo.\nfunc WriteLayer(repo name.Repository, layer v1.Layer, options ...Option) (rerr error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif o.progress != nil {\n\t\tdefer func() { o.progress.Close(rerr) }()\n\t}\n\treturn newPusher(o).Upload(o.context, repo, layer)\n}\n\n// Tag adds a tag to the given Taggable via PUT /v2/.../manifests/<tag>\n//\n// Notable implementations of Taggable are v1.Image, v1.ImageIndex, and\n// remote.Descriptor.\n//\n// If t implements MediaType, we will use that for the Content-Type, otherwise\n// we will default to types.DockerManifestSchema2.\n//\n// Tag does not attempt to write anything other than the manifest, so callers\n// should ensure that all blobs or manifests that are referenced by t exist\n// in the target registry.\nfunc Tag(tag name.Tag, t Taggable, options ...Option) error {\n\treturn Put(tag, t, options...)\n}\n\n// Put adds a manifest from the given Taggable via PUT /v1/.../manifest/<ref>\n//\n// Notable implementations of Taggable are v1.Image, v1.ImageIndex, and\n// remote.Descriptor.\n//\n// If t implements MediaType, we will use that for the Content-Type, otherwise\n// we will default to types.DockerManifestSchema2.\n//\n// Put does not attempt to write anything other than the manifest, so callers\n// should ensure that all blobs or manifests that are referenced by t exist\n// in the target registry.\nfunc Put(ref name.Reference, t Taggable, options ...Option) error {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn newPusher(o).Put(o.context, ref, t)\n}\n\n// Push uploads the given Taggable to the specified reference.\nfunc Push(ref name.Reference, t Taggable, options ...Option) (rerr error) {\n\to, err := makeOptions(options...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif o.progress != nil {\n\t\tdefer func() { o.progress.Close(rerr) }()\n\t}\n\treturn newPusher(o).Push(o.context, ref, t)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/stream/README.md",
    "content": "# `stream`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/stream?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/stream)\n\nThe `stream` package contains an implementation of\n[`v1.Layer`](https://godoc.org/github.com/google/go-containerregistry/pkg/v1#Layer)\nthat supports _streaming_ access, i.e. the layer contents are read once and not\nbuffered.\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/remote\"\n\t\"github.com/google/go-containerregistry/pkg/v1/stream\"\n)\n\n// upload the contents of stdin as a layer to a local registry\nfunc main() {\n\trepo, err := name.NewRepository(\"localhost:5000/stream\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tlayer := stream.NewLayer(os.Stdin)\n\n\tif err := remote.WriteLayer(repo, layer); err != nil {\n\t\tpanic(err)\n\t}\n}\n```\n\n## Structure\n\nThis implements the layer portion of an [image\nupload](/pkg/v1/remote#anatomy-of-an-image-upload). We launch a goroutine that\nis responsible for hashing the uncompressed contents to compute the `DiffID`,\ngzipping them to produce the `Compressed` contents, and hashing/counting the\nbytes to produce the `Digest`/`Size`. This goroutine writes to an\n`io.PipeWriter`, which blocks until `Compressed` reads the gzipped contents from\nthe corresponding `io.PipeReader`.\n\n<p align=\"center\">\n  <img src=\"/images/stream.dot.svg\" />\n</p>\n\n## Caveats\n\nThis assumes that you have an uncompressed layer (i.e. a tarball) and would like\nto compress it. Calling `Uncompressed` is always an error. Likewise, other\nmethods are invalid until the contents of `Compressed` have been completely\nconsumed and `Close`d.\n\nUsing a `stream.Layer` will likely not work without careful consideration. For\nexample, in the `mutate` package, we defer computing the manifest and config\nfile until they are actually called. This allows you to `mutate.Append` a\nstreaming layer to an image without accidentally consuming it. Similarly, in\n`remote.Write`, if calling `Digest` on a layer fails, we attempt to upload the\nlayer anyway, understanding that we may be dealing with a `stream.Layer` whose\ncontents need to be uploaded before we can upload the config file.\n\nGiven the [structure](#structure) of how this is implemented, forgetting to\n`Close` a `stream.Layer` will leak a goroutine.\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 stream implements a single-pass streaming v1.Layer.\npackage stream\n\nimport (\n\t\"bufio\"\n\t\"compress/gzip\"\n\t\"crypto\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"hash\"\n\t\"io\"\n\t\"os\"\n\t\"sync\"\n\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\nvar (\n\t// ErrNotComputed is returned when the requested value is not yet\n\t// computed because the stream has not been consumed yet.\n\tErrNotComputed = errors.New(\"value not computed until stream is consumed\")\n\n\t// ErrConsumed is returned by Compressed when the underlying stream has\n\t// already been consumed and closed.\n\tErrConsumed = errors.New(\"stream was already consumed\")\n)\n\n// Layer is a streaming implementation of v1.Layer.\ntype Layer struct {\n\tblob        io.ReadCloser\n\tconsumed    bool\n\tcompression int\n\n\tmu             sync.Mutex\n\tdigest, diffID *v1.Hash\n\tsize           int64\n\tmediaType      types.MediaType\n}\n\nvar _ v1.Layer = (*Layer)(nil)\n\n// LayerOption applies options to layer\ntype LayerOption func(*Layer)\n\n// WithCompressionLevel sets the gzip compression. See `gzip.NewWriterLevel` for possible values.\nfunc WithCompressionLevel(level int) LayerOption {\n\treturn func(l *Layer) {\n\t\tl.compression = level\n\t}\n}\n\n// WithMediaType is a functional option for overriding the layer's media type.\nfunc WithMediaType(mt types.MediaType) LayerOption {\n\treturn func(l *Layer) {\n\t\tl.mediaType = mt\n\t}\n}\n\n// NewLayer creates a Layer from an io.ReadCloser.\nfunc NewLayer(rc io.ReadCloser, opts ...LayerOption) *Layer {\n\tlayer := &Layer{\n\t\tblob:        rc,\n\t\tcompression: gzip.BestSpeed,\n\t\t// We use DockerLayer for now as uncompressed layers\n\t\t// are unimplemented\n\t\tmediaType: types.DockerLayer,\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(layer)\n\t}\n\n\treturn layer\n}\n\n// Digest implements v1.Layer.\nfunc (l *Layer) Digest() (v1.Hash, error) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tif l.digest == nil {\n\t\treturn v1.Hash{}, ErrNotComputed\n\t}\n\treturn *l.digest, nil\n}\n\n// DiffID implements v1.Layer.\nfunc (l *Layer) DiffID() (v1.Hash, error) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tif l.diffID == nil {\n\t\treturn v1.Hash{}, ErrNotComputed\n\t}\n\treturn *l.diffID, nil\n}\n\n// Size implements v1.Layer.\nfunc (l *Layer) Size() (int64, error) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tif l.size == 0 {\n\t\treturn 0, ErrNotComputed\n\t}\n\treturn l.size, nil\n}\n\n// MediaType implements v1.Layer\nfunc (l *Layer) MediaType() (types.MediaType, error) {\n\treturn l.mediaType, nil\n}\n\n// Uncompressed implements v1.Layer.\nfunc (l *Layer) Uncompressed() (io.ReadCloser, error) {\n\treturn nil, errors.New(\"NYI: stream.Layer.Uncompressed is not implemented\")\n}\n\n// Compressed implements v1.Layer.\nfunc (l *Layer) Compressed() (io.ReadCloser, error) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tif l.consumed {\n\t\treturn nil, ErrConsumed\n\t}\n\treturn newCompressedReader(l)\n}\n\n// finalize sets the layer to consumed and computes all hash and size values.\nfunc (l *Layer) finalize(uncompressed, compressed hash.Hash, size int64) error {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\n\tdiffID, err := v1.NewHash(\"sha256:\" + hex.EncodeToString(uncompressed.Sum(nil)))\n\tif err != nil {\n\t\treturn err\n\t}\n\tl.diffID = &diffID\n\n\tdigest, err := v1.NewHash(\"sha256:\" + hex.EncodeToString(compressed.Sum(nil)))\n\tif err != nil {\n\t\treturn err\n\t}\n\tl.digest = &digest\n\n\tl.size = size\n\tl.consumed = true\n\treturn nil\n}\n\ntype compressedReader struct {\n\tpr     io.Reader\n\tcloser func() error\n}\n\nfunc newCompressedReader(l *Layer) (*compressedReader, error) {\n\t// Collect digests of compressed and uncompressed stream and size of\n\t// compressed stream.\n\th := crypto.SHA256.New()\n\tzh := crypto.SHA256.New()\n\tcount := &countWriter{}\n\n\t// gzip.Writer writes to the output stream via pipe, a hasher to\n\t// capture compressed digest, and a countWriter to capture compressed\n\t// size.\n\tpr, pw := io.Pipe()\n\n\t// Write compressed bytes to be read by the pipe.Reader, hashed by zh, and counted by count.\n\tmw := io.MultiWriter(pw, zh, count)\n\n\t// Buffer the output of the gzip writer so we don't have to wait on pr to keep writing.\n\t// 64K ought to be small enough for anybody.\n\tbw := bufio.NewWriterSize(mw, 2<<16)\n\tzw, err := gzip.NewWriterLevel(bw, l.compression)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdoneDigesting := make(chan struct{})\n\n\tcr := &compressedReader{\n\t\tpr: pr,\n\t\tcloser: func() error {\n\t\t\t// Immediately close pw without error. There are three ways to get\n\t\t\t// here.\n\t\t\t//\n\t\t\t// 1. There was a copy error due from the underlying reader, in which\n\t\t\t//    case the error will not be overwritten.\n\t\t\t// 2. Copying from the underlying reader completed successfully.\n\t\t\t// 3. Close has been called before the underlying reader has been\n\t\t\t//    fully consumed. In this case pw must be closed in order to\n\t\t\t//    keep the flush of bw from blocking indefinitely.\n\t\t\t//\n\t\t\t// NOTE: pw.Close never returns an error. The signature is only to\n\t\t\t// implement io.Closer.\n\t\t\t_ = pw.Close()\n\n\t\t\t// Close the inner ReadCloser.\n\t\t\t//\n\t\t\t// NOTE: net/http will call close on success, so if we've already\n\t\t\t// closed the inner rc, it's not an error.\n\t\t\tif err := l.blob.Close(); err != nil && !errors.Is(err, os.ErrClosed) {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Finalize layer with its digest and size values.\n\t\t\t<-doneDigesting\n\t\t\treturn l.finalize(h, zh, count.n)\n\t\t},\n\t}\n\tgo func() {\n\t\t// Copy blob into the gzip writer, which also hashes and counts the\n\t\t// size of the compressed output, and hasher of the raw contents.\n\t\t_, copyErr := io.Copy(io.MultiWriter(h, zw), l.blob)\n\n\t\t// Close the gzip writer once copying is done. If this is done in the\n\t\t// Close method of compressedReader instead, then it can cause a panic\n\t\t// when the compressedReader is closed before the blob is fully\n\t\t// consumed and io.Copy in this goroutine is still blocking.\n\t\tcloseErr := zw.Close()\n\n\t\t// Check errors from writing and closing streams.\n\t\tif copyErr != nil {\n\t\t\tclose(doneDigesting)\n\t\t\tpw.CloseWithError(copyErr)\n\t\t\treturn\n\t\t}\n\t\tif closeErr != nil {\n\t\t\tclose(doneDigesting)\n\t\t\tpw.CloseWithError(closeErr)\n\t\t\treturn\n\t\t}\n\n\t\t// Flush the buffer once all writes are complete to the gzip writer.\n\t\tif err := bw.Flush(); err != nil {\n\t\t\tclose(doneDigesting)\n\t\t\tpw.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\n\t\t// Notify closer that digests are done being written.\n\t\tclose(doneDigesting)\n\n\t\t// Close the compressed reader to calculate digest/diffID/size. This\n\t\t// will cause pr to return EOF which will cause readers of the\n\t\t// Compressed stream to finish reading.\n\t\tpw.CloseWithError(cr.Close())\n\t}()\n\n\treturn cr, nil\n}\n\nfunc (cr *compressedReader) Read(b []byte) (int, error) { return cr.pr.Read(b) }\n\nfunc (cr *compressedReader) Close() error { return cr.closer() }\n\n// countWriter counts bytes written to it.\ntype countWriter struct{ n int64 }\n\nfunc (c *countWriter) Write(p []byte) (int, error) {\n\tc.n += int64(len(p))\n\treturn len(p), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/tarball/README.md",
    "content": "# `tarball`\n\n[![GoDoc](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/tarball?status.svg)](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/tarball)\n\nThis package produces tarballs that can consumed via `docker load`. Note\nthat this is a _different_ format from the [`legacy`](/pkg/legacy/tarball)\ntarballs that are produced by `docker save`, but this package is still able to\nread the legacy tarballs produced by `docker save`.\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\t\"github.com/google/go-containerregistry/pkg/v1/tarball\"\n)\n\nfunc main() {\n\t// Read a tarball from os.Args[1] that contains ubuntu.\n\ttag, err := name.NewTag(\"ubuntu\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\timg, err := tarball.ImageFromPath(os.Args[1], &tag)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Write that tarball to os.Args[2] with a different tag.\n\tnewTag, err := name.NewTag(\"ubuntu:newest\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tf, err := os.Create(os.Args[2])\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer f.Close()\n\n\tif err := tarball.Write(newTag, img, f); err != nil {\n\t\tpanic(err)\n\t}\n}\n```\n\n## Structure\n\n<p align=\"center\">\n  <img src=\"/images/tarball.dot.svg\" />\n</p>\n\nLet's look at what happens when we write out a tarball:\n\n\n### `ubuntu:latest`\n\n```\n$ crane pull ubuntu ubuntu.tar && mkdir ubuntu && tar xf ubuntu.tar -C ubuntu && rm ubuntu.tar\n$ tree ubuntu/\nubuntu/\n├── 423ae2b273f4c17ceee9e8482fa8d071d90c7d052ae208e1fe4963fceb3d6954.tar.gz\n├── b6b53be908de2c0c78070fff0a9f04835211b3156c4e73785747af365e71a0d7.tar.gz\n├── de83a2304fa1f7c4a13708a0d15b9704f5945c2be5cbb2b3ed9b2ccb718d0b3d.tar.gz\n├── f9a83bce3af0648efaa60b9bb28225b09136d2d35d0bed25ac764297076dec1b.tar.gz\n├── manifest.json\n└── sha256:72300a873c2ca11c70d0c8642177ce76ff69ae04d61a5813ef58d40ff66e3e7c\n\n0 directories, 6 files\n```\n\nThere are a couple interesting files here.\n\n`manifest.json` is the entrypoint: a list of [`tarball.Descriptor`s](https://godoc.org/github.com/google/go-containerregistry/pkg/v1/tarball#Descriptor)\nthat describe the images contained in this tarball.\n\nFor each image, this has the `RepoTags` (how it was pulled), a `Config` file\nthat points to the image's config file, a list of `Layers`, and (optionally)\n`LayerSources`.\n\n```\n$ jq < ubuntu/manifest.json\n[\n  {\n    \"Config\": \"sha256:72300a873c2ca11c70d0c8642177ce76ff69ae04d61a5813ef58d40ff66e3e7c\",\n    \"RepoTags\": [\n      \"ubuntu\"\n    ],\n    \"Layers\": [\n      \"423ae2b273f4c17ceee9e8482fa8d071d90c7d052ae208e1fe4963fceb3d6954.tar.gz\",\n      \"de83a2304fa1f7c4a13708a0d15b9704f5945c2be5cbb2b3ed9b2ccb718d0b3d.tar.gz\",\n      \"f9a83bce3af0648efaa60b9bb28225b09136d2d35d0bed25ac764297076dec1b.tar.gz\",\n      \"b6b53be908de2c0c78070fff0a9f04835211b3156c4e73785747af365e71a0d7.tar.gz\"\n    ]\n  }\n]\n```\n\nThe config file and layers are exactly what you would expect, and match the\nregistry representations of the same artifacts. You'll notice that the\n`manifest.json` contains similar information as the registry manifest, but isn't\nquite the same:\n\n```\n$ crane manifest ubuntu@sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9\n{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 3408,\n      \"digest\": \"sha256:72300a873c2ca11c70d0c8642177ce76ff69ae04d61a5813ef58d40ff66e3e7c\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 26692096,\n         \"digest\": \"sha256:423ae2b273f4c17ceee9e8482fa8d071d90c7d052ae208e1fe4963fceb3d6954\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 35365,\n         \"digest\": \"sha256:de83a2304fa1f7c4a13708a0d15b9704f5945c2be5cbb2b3ed9b2ccb718d0b3d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 852,\n         \"digest\": \"sha256:f9a83bce3af0648efaa60b9bb28225b09136d2d35d0bed25ac764297076dec1b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 163,\n         \"digest\": \"sha256:b6b53be908de2c0c78070fff0a9f04835211b3156c4e73785747af365e71a0d7\"\n      }\n   ]\n}\n```\n\nThis makes it difficult to maintain image digests when roundtripping images\nthrough the tarball format, so it's not a great format if you care about\nprovenance.\n\nThe ubuntu example didn't have any `LayerSources` -- let's look at another image\nthat does.\n\n### `hello-world:nanoserver`\n\n```\n$ crane pull hello-world:nanoserver@sha256:63c287625c2b0b72900e562de73c0e381472a83b1b39217aef3856cd398eca0b nanoserver.tar\n$ mkdir nanoserver && tar xf nanoserver.tar -C nanoserver && rm nanoserver.tar\n$ tree nanoserver/\nnanoserver/\n├── 10d1439be4eb8819987ec2e9c140d44d74d6b42a823d57fe1953bd99948e1bc0.tar.gz\n├── a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053.tar.gz\n├── be21f08f670160cbae227e3053205b91d6bfa3de750b90c7e00bd2c511ccb63a.tar.gz\n├── manifest.json\n└── sha256:bc5d255ea81f83c8c38a982a6d29a6f2198427d258aea5f166e49856896b2da6\n\n0 directories, 5 files\n\n$ jq < nanoserver/manifest.json\n[\n  {\n    \"Config\": \"sha256:bc5d255ea81f83c8c38a982a6d29a6f2198427d258aea5f166e49856896b2da6\",\n    \"RepoTags\": [\n      \"index.docker.io/library/hello-world:i-was-a-digest\"\n    ],\n    \"Layers\": [\n      \"a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053.tar.gz\",\n      \"be21f08f670160cbae227e3053205b91d6bfa3de750b90c7e00bd2c511ccb63a.tar.gz\",\n      \"10d1439be4eb8819987ec2e9c140d44d74d6b42a823d57fe1953bd99948e1bc0.tar.gz\"\n    ],\n    \"LayerSources\": {\n      \"sha256:26fd2d9d4c64a4f965bbc77939a454a31b607470f430b5d69fc21ded301fa55e\": {\n        \"mediaType\": \"application/vnd.docker.image.rootfs.foreign.diff.tar.gzip\",\n        \"size\": 101145811,\n        \"digest\": \"sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\",\n        \"urls\": [\n          \"https://mcr.microsoft.com/v2/windows/nanoserver/blobs/sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\"\n        ]\n      }\n    }\n  }\n]\n```\n\nA couple things to note about this `manifest.json` versus the other:\n* The `RepoTags` field is a bit weird here. `hello-world` is a multi-platform\n  image, so We had to pull this image by digest, since we're (I'm) on\n  amd64/linux and wanted to grab a windows image. Since the tarball format\n  expects a tag under `RepoTags`, and we didn't pull by tag, we replace the\n  digest with a sentinel `i-was-a-digest` \"tag\" to appease docker.\n* The `LayerSources` has enough information to reconstruct the foreign layers\n  pointer when pushing/pulling from the registry. For legal reasons, microsoft\n  doesn't want anyone but them to serve windows base images, so the mediaType\n  here indicates a \"foreign\" or \"non-distributable\" layer with an URL for where\n  you can download it from microsoft (see the [OCI\n  image-spec](https://github.com/opencontainers/image-spec/blob/master/layer.md#non-distributable-layers)).\n\nWe can look at what's in the registry to explain both of these things:\n```\n$ crane manifest hello-world:nanoserver | jq .\n{\n  \"manifests\": [\n    {\n      \"digest\": \"sha256:63c287625c2b0b72900e562de73c0e381472a83b1b39217aef3856cd398eca0b\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"amd64\",\n        \"os\": \"windows\",\n        \"os.version\": \"10.0.17763.1040\"\n      },\n      \"size\": 1124\n    }\n  ],\n  \"mediaType\": \"application/vnd.docker.distribution.manifest.list.v2+json\",\n  \"schemaVersion\": 2\n}\n\n\n# Note the media type and \"urls\" field.\n$ crane manifest hello-world:nanoserver@sha256:63c287625c2b0b72900e562de73c0e381472a83b1b39217aef3856cd398eca0b | jq .\n{\n  \"schemaVersion\": 2,\n  \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n  \"config\": {\n    \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n    \"size\": 1721,\n    \"digest\": \"sha256:bc5d255ea81f83c8c38a982a6d29a6f2198427d258aea5f166e49856896b2da6\"\n  },\n  \"layers\": [\n    {\n      \"mediaType\": \"application/vnd.docker.image.rootfs.foreign.diff.tar.gzip\",\n      \"size\": 101145811,\n      \"digest\": \"sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\",\n      \"urls\": [\n        \"https://mcr.microsoft.com/v2/windows/nanoserver/blobs/sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\"\n      ]\n    },\n    {\n      \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n      \"size\": 1669,\n      \"digest\": \"sha256:be21f08f670160cbae227e3053205b91d6bfa3de750b90c7e00bd2c511ccb63a\"\n    },\n    {\n      \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n      \"size\": 949,\n      \"digest\": \"sha256:10d1439be4eb8819987ec2e9c140d44d74d6b42a823d57fe1953bd99948e1bc0\"\n    }\n  ]\n}\n```\n\nThe `LayerSources` map is keyed by the diffid. Note that `sha256:26fd2d9d4c64a4f965bbc77939a454a31b607470f430b5d69fc21ded301fa55e` matches the first layer in the config file:\n```\n$ jq '.[0].LayerSources' < nanoserver/manifest.json\n{\n  \"sha256:26fd2d9d4c64a4f965bbc77939a454a31b607470f430b5d69fc21ded301fa55e\": {\n    \"mediaType\": \"application/vnd.docker.image.rootfs.foreign.diff.tar.gzip\",\n    \"size\": 101145811,\n    \"digest\": \"sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\",\n    \"urls\": [\n      \"https://mcr.microsoft.com/v2/windows/nanoserver/blobs/sha256:a35da61c356213336e646756218539950461ff2bf096badf307a23add6e70053\"\n    ]\n  }\n}\n\n$ jq < nanoserver/sha256\\:bc5d255ea81f83c8c38a982a6d29a6f2198427d258aea5f166e49856896b2da6 | jq .rootfs\n{\n  \"type\": \"layers\",\n  \"diff_ids\": [\n    \"sha256:26fd2d9d4c64a4f965bbc77939a454a31b607470f430b5d69fc21ded301fa55e\",\n    \"sha256:601cf7d78c62e4b4d32a7bbf96a17606a9cea5bd9d22ffa6f34aa431d056b0e8\",\n    \"sha256:a1e1a3bf6529adcce4d91dce2cad86c2604a66b507ccbc4d2239f3da0ec5aab9\"\n  ]\n}\n```\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 tarball provides facilities for reading/writing v1.Images from/to\n// a tarball on-disk.\npackage tarball\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 tarball\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\tcomp \"github.com/google/go-containerregistry/internal/compression\"\n\t\"github.com/google/go-containerregistry/pkg/compression\"\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype image struct {\n\topener        Opener\n\tmanifest      *Manifest\n\tconfig        []byte\n\timgDescriptor *Descriptor\n\n\ttag *name.Tag\n}\n\ntype uncompressedImage struct {\n\t*image\n}\n\ntype compressedImage struct {\n\t*image\n\tmanifestLock sync.Mutex // Protects manifest\n\tmanifest     *v1.Manifest\n}\n\nvar _ partial.UncompressedImageCore = (*uncompressedImage)(nil)\nvar _ partial.CompressedImageCore = (*compressedImage)(nil)\n\n// Opener is a thunk for opening a tar file.\ntype Opener func() (io.ReadCloser, error)\n\nfunc pathOpener(path string) Opener {\n\treturn func() (io.ReadCloser, error) {\n\t\treturn os.Open(path)\n\t}\n}\n\n// ImageFromPath returns a v1.Image from a tarball located on path.\nfunc ImageFromPath(path string, tag *name.Tag) (v1.Image, error) {\n\treturn Image(pathOpener(path), tag)\n}\n\n// LoadManifest load manifest\nfunc LoadManifest(opener Opener) (Manifest, error) {\n\tm, err := extractFileFromTar(opener, \"manifest.json\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer m.Close()\n\n\tvar manifest Manifest\n\n\tif err := json.NewDecoder(m).Decode(&manifest); err != nil {\n\t\treturn nil, err\n\t}\n\treturn manifest, nil\n}\n\n// Image exposes an image from the tarball at the provided path.\nfunc Image(opener Opener, tag *name.Tag) (v1.Image, error) {\n\timg := &image{\n\t\topener: opener,\n\t\ttag:    tag,\n\t}\n\tif err := img.loadTarDescriptorAndConfig(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Peek at the first layer and see if it's compressed.\n\tif len(img.imgDescriptor.Layers) > 0 {\n\t\tcompressed, err := img.areLayersCompressed()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif compressed {\n\t\t\tc := compressedImage{\n\t\t\t\timage: img,\n\t\t\t}\n\t\t\treturn partial.CompressedToImage(&c)\n\t\t}\n\t}\n\n\tuc := uncompressedImage{\n\t\timage: img,\n\t}\n\treturn partial.UncompressedToImage(&uc)\n}\n\nfunc (i *image) MediaType() (types.MediaType, error) {\n\treturn types.DockerManifestSchema2, nil\n}\n\n// Descriptor stores the manifest data for a single image inside a `docker save` tarball.\ntype Descriptor struct {\n\tConfig   string\n\tRepoTags []string\n\tLayers   []string\n\n\t// Tracks foreign layer info. Key is DiffID.\n\tLayerSources map[v1.Hash]v1.Descriptor `json:\",omitempty\"`\n}\n\n// Manifest represents the manifests of all images as the `manifest.json` file in a `docker save` tarball.\ntype Manifest []Descriptor\n\nfunc (m Manifest) findDescriptor(tag *name.Tag) (*Descriptor, error) {\n\tif tag == nil {\n\t\tif len(m) != 1 {\n\t\t\treturn nil, errors.New(\"tarball must contain only a single image to be used with tarball.Image\")\n\t\t}\n\t\treturn &(m)[0], nil\n\t}\n\tfor _, img := range m {\n\t\tfor _, tagStr := range img.RepoTags {\n\t\t\trepoTag, err := name.NewTag(tagStr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Compare the resolved names, since there are several ways to specify the same tag.\n\t\t\tif repoTag.Name() == tag.Name() {\n\t\t\t\treturn &img, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"tag %s not found in tarball\", tag)\n}\n\nfunc (i *image) areLayersCompressed() (bool, error) {\n\tif len(i.imgDescriptor.Layers) == 0 {\n\t\treturn false, errors.New(\"0 layers found in image\")\n\t}\n\tlayer := i.imgDescriptor.Layers[0]\n\tblob, err := extractFileFromTar(i.opener, layer)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tdefer blob.Close()\n\n\tcp, _, err := comp.PeekCompression(blob)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\treturn cp != compression.None, nil\n}\n\nfunc (i *image) loadTarDescriptorAndConfig() error {\n\tm, err := extractFileFromTar(i.opener, \"manifest.json\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer m.Close()\n\n\tif err := json.NewDecoder(m).Decode(&i.manifest); err != nil {\n\t\treturn err\n\t}\n\n\tif i.manifest == nil {\n\t\treturn errors.New(\"no valid manifest.json in tarball\")\n\t}\n\n\ti.imgDescriptor, err = i.manifest.findDescriptor(i.tag)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcfg, err := extractFileFromTar(i.opener, i.imgDescriptor.Config)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer cfg.Close()\n\n\ti.config, err = io.ReadAll(cfg)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (i *image) RawConfigFile() ([]byte, error) {\n\treturn i.config, nil\n}\n\n// tarFile represents a single file inside a tar. Closing it closes the tar itself.\ntype tarFile struct {\n\tio.Reader\n\tio.Closer\n}\n\nfunc extractFileFromTar(opener Opener, filePath string) (io.ReadCloser, error) {\n\tf, err := opener()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tneedClose := true\n\tdefer func() {\n\t\tif needClose {\n\t\t\tf.Close()\n\t\t}\n\t}()\n\n\ttf := tar.NewReader(f)\n\tfor {\n\t\thdr, err := tf.Next()\n\t\tif errors.Is(err, io.EOF) {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif hdr.Name == filePath {\n\t\t\tif hdr.Typeflag == tar.TypeSymlink || hdr.Typeflag == tar.TypeLink {\n\t\t\t\tcurrentDir := filepath.Dir(filePath)\n\t\t\t\treturn extractFileFromTar(opener, path.Join(currentDir, path.Clean(hdr.Linkname)))\n\t\t\t}\n\t\t\tneedClose = false\n\t\t\treturn tarFile{\n\t\t\t\tReader: tf,\n\t\t\t\tCloser: f,\n\t\t\t}, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"file %s not found in tar\", filePath)\n}\n\n// uncompressedLayerFromTarball implements partial.UncompressedLayer\ntype uncompressedLayerFromTarball struct {\n\tdiffID    v1.Hash\n\tmediaType types.MediaType\n\topener    Opener\n\tfilePath  string\n}\n\n// foreignUncompressedLayer implements partial.UncompressedLayer but returns\n// a custom descriptor. This allows the foreign layer URLs to be included in\n// the generated image manifest for uncompressed layers.\ntype foreignUncompressedLayer struct {\n\tuncompressedLayerFromTarball\n\tdesc v1.Descriptor\n}\n\nfunc (fl *foreignUncompressedLayer) Descriptor() (*v1.Descriptor, error) {\n\treturn &fl.desc, nil\n}\n\n// DiffID implements partial.UncompressedLayer\nfunc (ulft *uncompressedLayerFromTarball) DiffID() (v1.Hash, error) {\n\treturn ulft.diffID, nil\n}\n\n// Uncompressed implements partial.UncompressedLayer\nfunc (ulft *uncompressedLayerFromTarball) Uncompressed() (io.ReadCloser, error) {\n\treturn extractFileFromTar(ulft.opener, ulft.filePath)\n}\n\nfunc (ulft *uncompressedLayerFromTarball) MediaType() (types.MediaType, error) {\n\treturn ulft.mediaType, nil\n}\n\nfunc (i *uncompressedImage) LayerByDiffID(h v1.Hash) (partial.UncompressedLayer, error) {\n\tcfg, err := partial.ConfigFile(i)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor idx, diffID := range cfg.RootFS.DiffIDs {\n\t\tif diffID == h {\n\t\t\t// Technically the media type should be 'application/tar' but given that our\n\t\t\t// v1.Layer doesn't force consumers to care about whether the layer is compressed\n\t\t\t// we should be fine returning the DockerLayer media type\n\t\t\tmt := types.DockerLayer\n\t\t\tbd, ok := i.imgDescriptor.LayerSources[h]\n\t\t\tif ok {\n\t\t\t\t// This is janky, but we don't want to implement Descriptor for\n\t\t\t\t// uncompressed layers because it breaks a bunch of assumptions in partial.\n\t\t\t\t// See https://github.com/google/go-containerregistry/issues/1870\n\t\t\t\tdocker25workaround := bd.MediaType == types.DockerUncompressedLayer || bd.MediaType == types.OCIUncompressedLayer\n\n\t\t\t\tif !docker25workaround {\n\t\t\t\t\t// Overwrite the mediaType for foreign layers.\n\t\t\t\t\treturn &foreignUncompressedLayer{\n\t\t\t\t\t\tuncompressedLayerFromTarball: uncompressedLayerFromTarball{\n\t\t\t\t\t\t\tdiffID:    diffID,\n\t\t\t\t\t\t\tmediaType: bd.MediaType,\n\t\t\t\t\t\t\topener:    i.opener,\n\t\t\t\t\t\t\tfilePath:  i.imgDescriptor.Layers[idx],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdesc: bd,\n\t\t\t\t\t}, nil\n\t\t\t\t}\n\n\t\t\t\t// Intentional fall through.\n\t\t\t}\n\n\t\t\treturn &uncompressedLayerFromTarball{\n\t\t\t\tdiffID:    diffID,\n\t\t\t\tmediaType: mt,\n\t\t\t\topener:    i.opener,\n\t\t\t\tfilePath:  i.imgDescriptor.Layers[idx],\n\t\t\t}, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"diff id %q not found\", h)\n}\n\nfunc (c *compressedImage) Manifest() (*v1.Manifest, error) {\n\tc.manifestLock.Lock()\n\tdefer c.manifestLock.Unlock()\n\tif c.manifest != nil {\n\t\treturn c.manifest, nil\n\t}\n\n\tb, err := c.RawConfigFile()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcfgHash, cfgSize, err := v1.SHA256(bytes.NewReader(b))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tc.manifest = &v1.Manifest{\n\t\tSchemaVersion: 2,\n\t\tMediaType:     types.DockerManifestSchema2,\n\t\tConfig: v1.Descriptor{\n\t\t\tMediaType: types.DockerConfigJSON,\n\t\t\tSize:      cfgSize,\n\t\t\tDigest:    cfgHash,\n\t\t},\n\t}\n\n\tfor i, p := range c.imgDescriptor.Layers {\n\t\tcfg, err := partial.ConfigFile(c)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdiffid := cfg.RootFS.DiffIDs[i]\n\t\tif d, ok := c.imgDescriptor.LayerSources[diffid]; ok {\n\t\t\t// If it's a foreign layer, just append the descriptor so we can avoid\n\t\t\t// reading the entire file.\n\t\t\tc.manifest.Layers = append(c.manifest.Layers, d)\n\t\t} else {\n\t\t\tl, err := extractFileFromTar(c.opener, p)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tdefer l.Close()\n\t\t\tsha, size, err := v1.SHA256(l)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tc.manifest.Layers = append(c.manifest.Layers, v1.Descriptor{\n\t\t\t\tMediaType: types.DockerLayer,\n\t\t\t\tSize:      size,\n\t\t\t\tDigest:    sha,\n\t\t\t})\n\t\t}\n\t}\n\treturn c.manifest, nil\n}\n\nfunc (c *compressedImage) RawManifest() ([]byte, error) {\n\treturn partial.RawManifest(c)\n}\n\n// compressedLayerFromTarball implements partial.CompressedLayer\ntype compressedLayerFromTarball struct {\n\tdesc     v1.Descriptor\n\topener   Opener\n\tfilePath string\n}\n\n// Digest implements partial.CompressedLayer\nfunc (clft *compressedLayerFromTarball) Digest() (v1.Hash, error) {\n\treturn clft.desc.Digest, nil\n}\n\n// Compressed implements partial.CompressedLayer\nfunc (clft *compressedLayerFromTarball) Compressed() (io.ReadCloser, error) {\n\treturn extractFileFromTar(clft.opener, clft.filePath)\n}\n\n// MediaType implements partial.CompressedLayer\nfunc (clft *compressedLayerFromTarball) MediaType() (types.MediaType, error) {\n\treturn clft.desc.MediaType, nil\n}\n\n// Size implements partial.CompressedLayer\nfunc (clft *compressedLayerFromTarball) Size() (int64, error) {\n\treturn clft.desc.Size, nil\n}\n\nfunc (c *compressedImage) LayerByDigest(h v1.Hash) (partial.CompressedLayer, error) {\n\tm, err := c.Manifest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor i, l := range m.Layers {\n\t\tif l.Digest == h {\n\t\t\tfp := c.imgDescriptor.Layers[i]\n\t\t\treturn &compressedLayerFromTarball{\n\t\t\t\tdesc:     l,\n\t\t\t\topener:   c.opener,\n\t\t\t\tfilePath: fp,\n\t\t\t}, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"blob %v not found\", h)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 tarball\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sync\"\n\n\t\"github.com/containerd/stargz-snapshotter/estargz\"\n\t\"github.com/google/go-containerregistry/internal/and\"\n\tcomp \"github.com/google/go-containerregistry/internal/compression\"\n\tgestargz \"github.com/google/go-containerregistry/internal/estargz\"\n\tggzip \"github.com/google/go-containerregistry/internal/gzip\"\n\t\"github.com/google/go-containerregistry/internal/zstd\"\n\t\"github.com/google/go-containerregistry/pkg/compression\"\n\t\"github.com/google/go-containerregistry/pkg/logs\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/types\"\n)\n\ntype layer struct {\n\tdigest             v1.Hash\n\tdiffID             v1.Hash\n\tsize               int64\n\tcompressedopener   Opener\n\tuncompressedopener Opener\n\tcompression        compression.Compression\n\tcompressionLevel   int\n\tannotations        map[string]string\n\testgzopts          []estargz.Option\n\tmediaType          types.MediaType\n}\n\n// Descriptor implements partial.withDescriptor.\nfunc (l *layer) Descriptor() (*v1.Descriptor, error) {\n\tdigest, err := l.Digest()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &v1.Descriptor{\n\t\tSize:        l.size,\n\t\tDigest:      digest,\n\t\tAnnotations: l.annotations,\n\t\tMediaType:   l.mediaType,\n\t}, nil\n}\n\n// Digest implements v1.Layer\nfunc (l *layer) Digest() (v1.Hash, error) {\n\treturn l.digest, nil\n}\n\n// DiffID implements v1.Layer\nfunc (l *layer) DiffID() (v1.Hash, error) {\n\treturn l.diffID, nil\n}\n\n// Compressed implements v1.Layer\nfunc (l *layer) Compressed() (io.ReadCloser, error) {\n\treturn l.compressedopener()\n}\n\n// Uncompressed implements v1.Layer\nfunc (l *layer) Uncompressed() (io.ReadCloser, error) {\n\treturn l.uncompressedopener()\n}\n\n// Size implements v1.Layer\nfunc (l *layer) Size() (int64, error) {\n\treturn l.size, nil\n}\n\n// MediaType implements v1.Layer\nfunc (l *layer) MediaType() (types.MediaType, error) {\n\treturn l.mediaType, nil\n}\n\n// LayerOption applies options to layer\ntype LayerOption func(*layer)\n\n// WithCompression is a functional option for overriding the default\n// compression algorithm used for compressing uncompressed tarballs.\n// Please note that WithCompression(compression.ZStd) should be used\n// in conjunction with WithMediaType(types.OCILayerZStd)\nfunc WithCompression(comp compression.Compression) LayerOption {\n\treturn func(l *layer) {\n\t\tswitch comp {\n\t\tcase compression.ZStd:\n\t\t\tl.compression = compression.ZStd\n\t\tcase compression.GZip:\n\t\t\tl.compression = compression.GZip\n\t\tcase compression.None:\n\t\t\tlogs.Warn.Printf(\"Compression type 'none' is not supported for tarball layers; using gzip compression.\")\n\t\t\tl.compression = compression.GZip\n\t\tdefault:\n\t\t\tlogs.Warn.Printf(\"Unexpected compression type for WithCompression(): %s; using gzip compression instead.\", comp)\n\t\t\tl.compression = compression.GZip\n\t\t}\n\t}\n}\n\n// WithCompressionLevel is a functional option for overriding the default\n// compression level used for compressing uncompressed tarballs.\nfunc WithCompressionLevel(level int) LayerOption {\n\treturn func(l *layer) {\n\t\tl.compressionLevel = level\n\t}\n}\n\n// WithMediaType is a functional option for overriding the layer's media type.\nfunc WithMediaType(mt types.MediaType) LayerOption {\n\treturn func(l *layer) {\n\t\tl.mediaType = mt\n\t}\n}\n\n// WithCompressedCaching is a functional option that overrides the\n// logic for accessing the compressed bytes to memoize the result\n// and avoid expensive repeated gzips.\nfunc WithCompressedCaching(l *layer) {\n\tvar once sync.Once\n\tvar err error\n\n\tbuf := bytes.NewBuffer(nil)\n\tog := l.compressedopener\n\n\tl.compressedopener = func() (io.ReadCloser, error) {\n\t\tonce.Do(func() {\n\t\t\tvar rc io.ReadCloser\n\t\t\trc, err = og()\n\t\t\tif err == nil {\n\t\t\t\tdefer rc.Close()\n\t\t\t\t_, err = io.Copy(buf, rc)\n\t\t\t}\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn io.NopCloser(bytes.NewBuffer(buf.Bytes())), nil\n\t}\n}\n\n// WithEstargzOptions is a functional option that allow the caller to pass\n// through estargz.Options to the underlying compression layer.  This is\n// only meaningful when estargz is enabled.\n//\n// Deprecated: WithEstargz is deprecated, and will be removed in a future release.\nfunc WithEstargzOptions(opts ...estargz.Option) LayerOption {\n\treturn func(l *layer) {\n\t\tl.estgzopts = opts\n\t}\n}\n\n// WithEstargz is a functional option that explicitly enables estargz support.\n//\n// Deprecated: WithEstargz is deprecated, and will be removed in a future release.\nfunc WithEstargz(l *layer) {\n\toguncompressed := l.uncompressedopener\n\testargz := func() (io.ReadCloser, error) {\n\t\tcrc, err := oguncompressed()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\teopts := append(l.estgzopts, estargz.WithCompressionLevel(l.compressionLevel))\n\t\trc, h, err := gestargz.ReadCloser(crc, eopts...)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tl.annotations[estargz.TOCJSONDigestAnnotation] = h.String()\n\t\treturn &and.ReadCloser{\n\t\t\tReader: rc,\n\t\t\tCloseFunc: func() error {\n\t\t\t\terr := rc.Close()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// As an optimization, leverage the DiffID exposed by the estargz ReadCloser\n\t\t\t\tl.diffID, err = v1.NewHash(rc.DiffID().String())\n\t\t\t\treturn err\n\t\t\t},\n\t\t}, nil\n\t}\n\tuncompressed := func() (io.ReadCloser, error) {\n\t\turc, err := estargz()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn ggzip.UnzipReadCloser(urc)\n\t}\n\n\tl.compressedopener = estargz\n\tl.uncompressedopener = uncompressed\n}\n\n// LayerFromFile returns a v1.Layer given a tarball\nfunc LayerFromFile(path string, opts ...LayerOption) (v1.Layer, error) {\n\topener := func() (io.ReadCloser, error) {\n\t\treturn os.Open(path)\n\t}\n\treturn LayerFromOpener(opener, opts...)\n}\n\n// LayerFromOpener returns a v1.Layer given an Opener function.\n// The Opener may return either an uncompressed tarball (common),\n// or a compressed tarball (uncommon).\n//\n// When using this in conjunction with something like remote.Write\n// the uncompressed path may end up gzipping things multiple times:\n//  1. Compute the layer SHA256\n//  2. Upload the compressed layer.\n//\n// Since gzip can be expensive, we support an option to memoize the\n// compression that can be passed here: tarball.WithCompressedCaching\nfunc LayerFromOpener(opener Opener, opts ...LayerOption) (v1.Layer, error) {\n\tcomp, err := comp.GetCompression(opener)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlayer := &layer{\n\t\tcompression:      compression.GZip,\n\t\tcompressionLevel: gzip.BestSpeed,\n\t\tannotations:      make(map[string]string, 1),\n\t\tmediaType:        types.DockerLayer,\n\t}\n\n\tif estgz := os.Getenv(\"GGCR_EXPERIMENT_ESTARGZ\"); estgz == \"1\" {\n\t\tlogs.Warn.Println(\"GGCR_EXPERIMENT_ESTARGZ is deprecated, and will be removed in a future release.\")\n\t\topts = append([]LayerOption{WithEstargz}, opts...)\n\t}\n\n\tswitch comp {\n\tcase compression.GZip:\n\t\tlayer.compressedopener = opener\n\t\tlayer.uncompressedopener = func() (io.ReadCloser, error) {\n\t\t\turc, err := opener()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn ggzip.UnzipReadCloser(urc)\n\t\t}\n\tcase compression.ZStd:\n\t\tlayer.compressedopener = opener\n\t\tlayer.uncompressedopener = func() (io.ReadCloser, error) {\n\t\t\turc, err := opener()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn zstd.UnzipReadCloser(urc)\n\t\t}\n\tdefault:\n\t\tlayer.uncompressedopener = opener\n\t\tlayer.compressedopener = func() (io.ReadCloser, error) {\n\t\t\tcrc, err := opener()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif layer.compression == compression.ZStd {\n\t\t\t\treturn zstd.ReadCloserLevel(crc, layer.compressionLevel), nil\n\t\t\t}\n\n\t\t\treturn ggzip.ReadCloserLevel(crc, layer.compressionLevel), nil\n\t\t}\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(layer)\n\t}\n\n\t// Warn if media type does not match compression\n\tvar mediaTypeMismatch = false\n\tswitch layer.compression {\n\tcase compression.GZip:\n\t\tmediaTypeMismatch =\n\t\t\tlayer.mediaType != types.OCILayer &&\n\t\t\t\tlayer.mediaType != types.OCIRestrictedLayer &&\n\t\t\t\tlayer.mediaType != types.DockerLayer\n\n\tcase compression.ZStd:\n\t\tmediaTypeMismatch = layer.mediaType != types.OCILayerZStd\n\t}\n\n\tif mediaTypeMismatch {\n\t\tlogs.Warn.Printf(\"Unexpected mediaType (%s) for selected compression in %s in LayerFromOpener().\", layer.mediaType, layer.compression)\n\t}\n\n\tif layer.digest, layer.size, err = computeDigest(layer.compressedopener); err != nil {\n\t\treturn nil, err\n\t}\n\n\tempty := v1.Hash{}\n\tif layer.diffID == empty {\n\t\tif layer.diffID, err = computeDiffID(layer.uncompressedopener); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn layer, nil\n}\n\n// LayerFromReader returns a v1.Layer given a io.Reader.\n//\n// The reader's contents are read and buffered to a temp file in the process.\n//\n// Deprecated: Use LayerFromOpener or stream.NewLayer instead, if possible.\nfunc LayerFromReader(reader io.Reader, opts ...LayerOption) (v1.Layer, error) {\n\ttmp, err := os.CreateTemp(\"\", \"\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating temp file to buffer reader: %w\", err)\n\t}\n\tif _, err := io.Copy(tmp, reader); err != nil {\n\t\treturn nil, fmt.Errorf(\"writing temp file to buffer reader: %w\", err)\n\t}\n\treturn LayerFromFile(tmp.Name(), opts...)\n}\n\nfunc computeDigest(opener Opener) (v1.Hash, int64, error) {\n\trc, err := opener()\n\tif err != nil {\n\t\treturn v1.Hash{}, 0, err\n\t}\n\tdefer rc.Close()\n\n\treturn v1.SHA256(rc)\n}\n\nfunc computeDiffID(opener Opener) (v1.Hash, error) {\n\trc, err := opener()\n\tif err != nil {\n\t\treturn v1.Hash{}, err\n\t}\n\tdefer rc.Close()\n\n\tdigest, _, err := v1.SHA256(rc)\n\treturn digest, err\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 tarball\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/google/go-containerregistry/pkg/name\"\n\tv1 \"github.com/google/go-containerregistry/pkg/v1\"\n\t\"github.com/google/go-containerregistry/pkg/v1/partial\"\n)\n\n// WriteToFile writes in the compressed format to a tarball, on disk.\n// This is just syntactic sugar wrapping tarball.Write with a new file.\nfunc WriteToFile(p string, ref name.Reference, img v1.Image, opts ...WriteOption) error {\n\tw, err := os.Create(p)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer w.Close()\n\n\treturn Write(ref, img, w, opts...)\n}\n\n// MultiWriteToFile writes in the compressed format to a tarball, on disk.\n// This is just syntactic sugar wrapping tarball.MultiWrite with a new file.\nfunc MultiWriteToFile(p string, tagToImage map[name.Tag]v1.Image, opts ...WriteOption) error {\n\trefToImage := make(map[name.Reference]v1.Image, len(tagToImage))\n\tfor i, d := range tagToImage {\n\t\trefToImage[i] = d\n\t}\n\treturn MultiRefWriteToFile(p, refToImage, opts...)\n}\n\n// MultiRefWriteToFile writes in the compressed format to a tarball, on disk.\n// This is just syntactic sugar wrapping tarball.MultiRefWrite with a new file.\nfunc MultiRefWriteToFile(p string, refToImage map[name.Reference]v1.Image, opts ...WriteOption) error {\n\tw, err := os.Create(p)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer w.Close()\n\n\treturn MultiRefWrite(refToImage, w, opts...)\n}\n\n// Write is a wrapper to write a single image and tag to a tarball.\nfunc Write(ref name.Reference, img v1.Image, w io.Writer, opts ...WriteOption) error {\n\treturn MultiRefWrite(map[name.Reference]v1.Image{ref: img}, w, opts...)\n}\n\n// MultiWrite writes the contents of each image to the provided writer, in the compressed format.\n// The contents are written in the following format:\n// One manifest.json file at the top level containing information about several images.\n// One file for each layer, named after the layer's SHA.\n// One file for the config blob, named after its SHA.\nfunc MultiWrite(tagToImage map[name.Tag]v1.Image, w io.Writer, opts ...WriteOption) error {\n\trefToImage := make(map[name.Reference]v1.Image, len(tagToImage))\n\tfor i, d := range tagToImage {\n\t\trefToImage[i] = d\n\t}\n\treturn MultiRefWrite(refToImage, w, opts...)\n}\n\n// MultiRefWrite writes the contents of each image to the provided writer, in the compressed format.\n// The contents are written in the following format:\n// One manifest.json file at the top level containing information about several images.\n// One file for each layer, named after the layer's SHA.\n// One file for the config blob, named after its SHA.\nfunc MultiRefWrite(refToImage map[name.Reference]v1.Image, w io.Writer, opts ...WriteOption) error {\n\t// process options\n\to := &writeOptions{\n\t\tupdates: nil,\n\t}\n\tfor _, option := range opts {\n\t\tif err := option(o); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\timageToTags := dedupRefToImage(refToImage)\n\tsize, mBytes, err := getSizeAndManifest(imageToTags)\n\tif err != nil {\n\t\treturn sendUpdateReturn(o, err)\n\t}\n\n\treturn writeImagesToTar(imageToTags, mBytes, size, w, o)\n}\n\n// sendUpdateReturn return the passed in error message, also sending on update channel, if it exists\nfunc sendUpdateReturn(o *writeOptions, err error) error {\n\tif o != nil && o.updates != nil {\n\t\to.updates <- v1.Update{\n\t\t\tError: err,\n\t\t}\n\t}\n\treturn err\n}\n\n// sendProgressWriterReturn return the passed in error message, also sending on update channel, if it exists, along with downloaded information\nfunc sendProgressWriterReturn(pw *progressWriter, err error) error {\n\tif pw != nil {\n\t\treturn pw.Error(err)\n\t}\n\treturn err\n}\n\n// writeImagesToTar writes the images to the tarball\nfunc writeImagesToTar(imageToTags map[v1.Image][]string, m []byte, size int64, w io.Writer, o *writeOptions) (err error) {\n\tif w == nil {\n\t\treturn sendUpdateReturn(o, errors.New(\"must pass valid writer\"))\n\t}\n\n\ttw := w\n\tvar pw *progressWriter\n\n\t// we only calculate the sizes and use a progressWriter if we were provided\n\t// an option with a progress channel\n\tif o != nil && o.updates != nil {\n\t\tpw = &progressWriter{\n\t\t\tw:       w,\n\t\t\tupdates: o.updates,\n\t\t\tsize:    size,\n\t\t}\n\t\ttw = pw\n\t}\n\n\ttf := tar.NewWriter(tw)\n\tdefer tf.Close()\n\n\tseenLayerDigests := make(map[string]struct{})\n\n\tfor img := range imageToTags {\n\t\t// Write the config.\n\t\tcfgName, err := img.ConfigName()\n\t\tif err != nil {\n\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t}\n\t\tcfgBlob, err := img.RawConfigFile()\n\t\tif err != nil {\n\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t}\n\t\tif err := writeTarEntry(tf, cfgName.String(), bytes.NewReader(cfgBlob), int64(len(cfgBlob))); err != nil {\n\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t}\n\n\t\t// Write the layers.\n\t\tlayers, err := img.Layers()\n\t\tif err != nil {\n\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t}\n\t\tlayerFiles := make([]string, len(layers))\n\t\tfor i, l := range layers {\n\t\t\td, err := l.Digest()\n\t\t\tif err != nil {\n\t\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t\t}\n\t\t\t// Munge the file name to appease ancient technology.\n\t\t\t//\n\t\t\t// tar assumes anything with a colon is a remote tape drive:\n\t\t\t// https://www.gnu.org/software/tar/manual/html_section/tar_45.html\n\t\t\t// Drop the algorithm prefix, e.g. \"sha256:\"\n\t\t\thex := d.Hex\n\n\t\t\t// gunzip expects certain file extensions:\n\t\t\t// https://www.gnu.org/software/gzip/manual/html_node/Overview.html\n\t\t\tlayerFiles[i] = fmt.Sprintf(\"%s.tar.gz\", hex)\n\n\t\t\tif _, ok := seenLayerDigests[hex]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tseenLayerDigests[hex] = struct{}{}\n\n\t\t\tr, err := l.Compressed()\n\t\t\tif err != nil {\n\t\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t\t}\n\t\t\tblobSize, err := l.Size()\n\t\t\tif err != nil {\n\t\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t\t}\n\n\t\t\tif err := writeTarEntry(tf, layerFiles[i], r, blobSize); err != nil {\n\t\t\t\treturn sendProgressWriterReturn(pw, err)\n\t\t\t}\n\t\t}\n\t}\n\tif err := writeTarEntry(tf, \"manifest.json\", bytes.NewReader(m), int64(len(m))); err != nil {\n\t\treturn sendProgressWriterReturn(pw, err)\n\t}\n\n\t// be sure to close the tar writer so everything is flushed out before we send our EOF\n\tif err := tf.Close(); err != nil {\n\t\treturn sendProgressWriterReturn(pw, err)\n\t}\n\t// send an EOF to indicate finished on the channel, but nil as our return error\n\t_ = sendProgressWriterReturn(pw, io.EOF)\n\treturn nil\n}\n\n// calculateManifest calculates the manifest and optionally the size of the tar file\nfunc calculateManifest(imageToTags map[v1.Image][]string) (m Manifest, err error) {\n\tif len(imageToTags) == 0 {\n\t\treturn nil, errors.New(\"set of images is empty\")\n\t}\n\n\tfor img, tags := range imageToTags {\n\t\tcfgName, err := img.ConfigName()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Store foreign layer info.\n\t\tlayerSources := make(map[v1.Hash]v1.Descriptor)\n\n\t\t// Write the layers.\n\t\tlayers, err := img.Layers()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlayerFiles := make([]string, len(layers))\n\t\tfor i, l := range layers {\n\t\t\td, err := l.Digest()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\t// Munge the file name to appease ancient technology.\n\t\t\t//\n\t\t\t// tar assumes anything with a colon is a remote tape drive:\n\t\t\t// https://www.gnu.org/software/tar/manual/html_section/tar_45.html\n\t\t\t// Drop the algorithm prefix, e.g. \"sha256:\"\n\t\t\thex := d.Hex\n\n\t\t\t// gunzip expects certain file extensions:\n\t\t\t// https://www.gnu.org/software/gzip/manual/html_node/Overview.html\n\t\t\tlayerFiles[i] = fmt.Sprintf(\"%s.tar.gz\", hex)\n\n\t\t\t// Add to LayerSources if it's a foreign layer.\n\t\t\tdesc, err := partial.BlobDescriptor(img, d)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif !desc.MediaType.IsDistributable() {\n\t\t\t\tdiffid, err := partial.BlobToDiffID(img, d)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tlayerSources[diffid] = *desc\n\t\t\t}\n\t\t}\n\n\t\t// Generate the tar descriptor and write it.\n\t\tm = append(m, Descriptor{\n\t\t\tConfig:       cfgName.String(),\n\t\t\tRepoTags:     tags,\n\t\t\tLayers:       layerFiles,\n\t\t\tLayerSources: layerSources,\n\t\t})\n\t}\n\t// sort by name of the repotags so it is consistent. Alternatively, we could sort by hash of the\n\t// descriptor, but that would make it hard for humans to process\n\tsort.Slice(m, func(i, j int) bool {\n\t\treturn strings.Join(m[i].RepoTags, \",\") < strings.Join(m[j].RepoTags, \",\")\n\t})\n\n\treturn m, nil\n}\n\n// CalculateSize calculates the expected complete size of the output tar file\nfunc CalculateSize(refToImage map[name.Reference]v1.Image) (size int64, err error) {\n\timageToTags := dedupRefToImage(refToImage)\n\tsize, _, err = getSizeAndManifest(imageToTags)\n\treturn size, err\n}\n\nfunc getSizeAndManifest(imageToTags map[v1.Image][]string) (int64, []byte, error) {\n\tm, err := calculateManifest(imageToTags)\n\tif err != nil {\n\t\treturn 0, nil, fmt.Errorf(\"unable to calculate manifest: %w\", err)\n\t}\n\tmBytes, err := json.Marshal(m)\n\tif err != nil {\n\t\treturn 0, nil, fmt.Errorf(\"could not marshall manifest to bytes: %w\", err)\n\t}\n\n\tsize, err := calculateTarballSize(imageToTags, mBytes)\n\tif err != nil {\n\t\treturn 0, nil, fmt.Errorf(\"error calculating tarball size: %w\", err)\n\t}\n\treturn size, mBytes, nil\n}\n\n// calculateTarballSize calculates the size of the tar file\nfunc calculateTarballSize(imageToTags map[v1.Image][]string, mBytes []byte) (size int64, err error) {\n\tseenLayerDigests := make(map[string]struct{})\n\tfor img, name := range imageToTags {\n\t\tmanifest, err := img.Manifest()\n\t\tif err != nil {\n\t\t\treturn size, fmt.Errorf(\"unable to get manifest for img %s: %w\", name, err)\n\t\t}\n\t\tsize += calculateSingleFileInTarSize(manifest.Config.Size)\n\t\tfor _, l := range manifest.Layers {\n\t\t\thex := l.Digest.Hex\n\t\t\tif _, ok := seenLayerDigests[hex]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tseenLayerDigests[hex] = struct{}{}\n\t\t\tsize += calculateSingleFileInTarSize(l.Size)\n\t\t}\n\t}\n\t// add the manifest\n\tsize += calculateSingleFileInTarSize(int64(len(mBytes)))\n\n\t// add the two padding blocks that indicate end of a tar file\n\tsize += 1024\n\treturn size, nil\n}\n\nfunc dedupRefToImage(refToImage map[name.Reference]v1.Image) map[v1.Image][]string {\n\timageToTags := make(map[v1.Image][]string)\n\n\tfor ref, img := range refToImage {\n\t\tif tag, ok := ref.(name.Tag); ok {\n\t\t\tif tags, ok := imageToTags[img]; !ok || tags == nil {\n\t\t\t\timageToTags[img] = []string{}\n\t\t\t}\n\t\t\t// Docker cannot load tarballs without an explicit tag:\n\t\t\t// https://github.com/google/go-containerregistry/issues/890\n\t\t\t//\n\t\t\t// We can't use the fully qualified tag.Name() because of rules_docker:\n\t\t\t// https://github.com/google/go-containerregistry/issues/527\n\t\t\t//\n\t\t\t// If the tag is \"latest\", but tag.String() doesn't end in \":latest\",\n\t\t\t// just append it. Kind of gross, but should work for now.\n\t\t\tts := tag.String()\n\t\t\tif tag.Identifier() == name.DefaultTag && !strings.HasSuffix(ts, \":\"+name.DefaultTag) {\n\t\t\t\tts = fmt.Sprintf(\"%s:%s\", ts, name.DefaultTag)\n\t\t\t}\n\t\t\timageToTags[img] = append(imageToTags[img], ts)\n\t\t} else if _, ok := imageToTags[img]; !ok {\n\t\t\timageToTags[img] = nil\n\t\t}\n\t}\n\n\treturn imageToTags\n}\n\n// writeTarEntry writes a file to the provided writer with a corresponding tar header\nfunc writeTarEntry(tf *tar.Writer, path string, r io.Reader, size int64) error {\n\thdr := &tar.Header{\n\t\tMode:     0644,\n\t\tTypeflag: tar.TypeReg,\n\t\tSize:     size,\n\t\tName:     path,\n\t}\n\tif err := tf.WriteHeader(hdr); err != nil {\n\t\treturn err\n\t}\n\t_, err := io.Copy(tf, r)\n\treturn err\n}\n\n// ComputeManifest get the manifest.json that will be written to the tarball\n// for multiple references\nfunc ComputeManifest(refToImage map[name.Reference]v1.Image) (Manifest, error) {\n\timageToTags := dedupRefToImage(refToImage)\n\treturn calculateManifest(imageToTags)\n}\n\n// WriteOption a function option to pass to Write()\ntype WriteOption func(*writeOptions) error\ntype writeOptions struct {\n\tupdates chan<- v1.Update\n}\n\n// WithProgress create a WriteOption for passing to Write() that enables\n// a channel to receive updates as they are downloaded and written to disk.\nfunc WithProgress(updates chan<- v1.Update) WriteOption {\n\treturn func(o *writeOptions) error {\n\t\to.updates = updates\n\t\treturn nil\n\t}\n}\n\n// progressWriter is a writer which will send the download progress\ntype progressWriter struct {\n\tw              io.Writer\n\tupdates        chan<- v1.Update\n\tsize, complete int64\n}\n\nfunc (pw *progressWriter) Write(p []byte) (int, error) {\n\tn, err := pw.w.Write(p)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\tpw.complete += int64(n)\n\n\tpw.updates <- v1.Update{\n\t\tTotal:    pw.size,\n\t\tComplete: pw.complete,\n\t}\n\n\treturn n, err\n}\n\nfunc (pw *progressWriter) Error(err error) error {\n\tpw.updates <- v1.Update{\n\t\tTotal:    pw.size,\n\t\tComplete: pw.complete,\n\t\tError:    err,\n\t}\n\treturn err\n}\n\nfunc (pw *progressWriter) Close() error {\n\tpw.updates <- v1.Update{\n\t\tTotal:    pw.size,\n\t\tComplete: pw.complete,\n\t\tError:    io.EOF,\n\t}\n\treturn io.EOF\n}\n\n// calculateSingleFileInTarSize calculate the size a file will take up in a tar archive,\n// given the input data. Provided by rounding up to nearest whole block (512)\n// and adding header 512\nfunc calculateSingleFileInTarSize(in int64) (out int64) {\n\t// doing this manually, because math.Round() works with float64\n\tout += in\n\tif remainder := out % 512; remainder != 0 {\n\t\tout += (512 - remainder)\n\t}\n\tout += 512\n\treturn out\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go",
    "content": "// Copyright 2018 Google LLC All Rights Reserved.\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 types holds common OCI media types.\npackage types\n\n// MediaType is an enumeration of the supported mime types that an element of an image might have.\ntype MediaType string\n\n// The collection of known MediaType values.\nconst (\n\tOCIContentDescriptor           MediaType = \"application/vnd.oci.descriptor.v1+json\"\n\tOCIImageIndex                  MediaType = \"application/vnd.oci.image.index.v1+json\"\n\tOCIManifestSchema1             MediaType = \"application/vnd.oci.image.manifest.v1+json\"\n\tOCIConfigJSON                  MediaType = \"application/vnd.oci.image.config.v1+json\"\n\tOCILayer                       MediaType = \"application/vnd.oci.image.layer.v1.tar+gzip\"\n\tOCILayerZStd                   MediaType = \"application/vnd.oci.image.layer.v1.tar+zstd\"\n\tOCIRestrictedLayer             MediaType = \"application/vnd.oci.image.layer.nondistributable.v1.tar+gzip\"\n\tOCIUncompressedLayer           MediaType = \"application/vnd.oci.image.layer.v1.tar\"\n\tOCIUncompressedRestrictedLayer MediaType = \"application/vnd.oci.image.layer.nondistributable.v1.tar\"\n\n\tDockerManifestSchema1       MediaType = \"application/vnd.docker.distribution.manifest.v1+json\"\n\tDockerManifestSchema1Signed MediaType = \"application/vnd.docker.distribution.manifest.v1+prettyjws\"\n\tDockerManifestSchema2       MediaType = \"application/vnd.docker.distribution.manifest.v2+json\"\n\tDockerManifestList          MediaType = \"application/vnd.docker.distribution.manifest.list.v2+json\"\n\tDockerLayer                 MediaType = \"application/vnd.docker.image.rootfs.diff.tar.gzip\"\n\tDockerConfigJSON            MediaType = \"application/vnd.docker.container.image.v1+json\"\n\tDockerPluginConfig          MediaType = \"application/vnd.docker.plugin.v1+json\"\n\tDockerForeignLayer          MediaType = \"application/vnd.docker.image.rootfs.foreign.diff.tar.gzip\"\n\tDockerUncompressedLayer     MediaType = \"application/vnd.docker.image.rootfs.diff.tar\"\n\n\tOCIVendorPrefix    = \"vnd.oci\"\n\tDockerVendorPrefix = \"vnd.docker\"\n)\n\n// IsDistributable returns true if a layer is distributable, see:\n// https://github.com/opencontainers/image-spec/blob/master/layer.md#non-distributable-layers\nfunc (m MediaType) IsDistributable() bool {\n\tswitch m {\n\tcase DockerForeignLayer, OCIRestrictedLayer, OCIUncompressedRestrictedLayer:\n\t\treturn false\n\t}\n\treturn true\n}\n\n// IsImage returns true if the mediaType represents an image manifest, as opposed to something else, like an index.\nfunc (m MediaType) IsImage() bool {\n\tswitch m {\n\tcase OCIManifestSchema1, DockerManifestSchema2:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsIndex returns true if the mediaType represents an index, as opposed to something else, like an image.\nfunc (m MediaType) IsIndex() bool {\n\tswitch m {\n\tcase OCIImageIndex, DockerManifestList:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsConfig returns true if the mediaType represents a config, as opposed to something else, like an image.\nfunc (m MediaType) IsConfig() bool {\n\tswitch m {\n\tcase OCIConfigJSON, DockerConfigJSON:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (m MediaType) IsSchema1() bool {\n\tswitch m {\n\tcase DockerManifestSchema1, DockerManifestSchema1Signed:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (m MediaType) IsLayer() bool {\n\tswitch m {\n\tcase DockerLayer, DockerUncompressedLayer, OCILayer, OCILayerZStd, OCIUncompressedLayer, DockerForeignLayer, OCIRestrictedLayer, OCIUncompressedRestrictedLayer:\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go",
    "content": "//go:build !ignore_autogenerated\n\n// Copyright 2018 Google LLC All Rights Reserved.\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// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Config) DeepCopyInto(out *Config) {\n\t*out = *in\n\tif in.Cmd != nil {\n\t\tin, out := &in.Cmd, &out.Cmd\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Healthcheck != nil {\n\t\tin, out := &in.Healthcheck, &out.Healthcheck\n\t\t*out = new(HealthConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Entrypoint != nil {\n\t\tin, out := &in.Entrypoint, &out.Entrypoint\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Labels != nil {\n\t\tin, out := &in.Labels, &out.Labels\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.OnBuild != nil {\n\t\tin, out := &in.OnBuild, &out.OnBuild\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Volumes != nil {\n\t\tin, out := &in.Volumes, &out.Volumes\n\t\t*out = make(map[string]struct{}, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ExposedPorts != nil {\n\t\tin, out := &in.ExposedPorts, &out.ExposedPorts\n\t\t*out = make(map[string]struct{}, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Shell != nil {\n\t\tin, out := &in.Shell, &out.Shell\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.\nfunc (in *Config) DeepCopy() *Config {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Config)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigFile) DeepCopyInto(out *ConfigFile) {\n\t*out = *in\n\tin.Created.DeepCopyInto(&out.Created)\n\tif in.History != nil {\n\t\tin, out := &in.History, &out.History\n\t\t*out = make([]History, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.RootFS.DeepCopyInto(&out.RootFS)\n\tin.Config.DeepCopyInto(&out.Config)\n\tif in.OSFeatures != nil {\n\t\tin, out := &in.OSFeatures, &out.OSFeatures\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigFile.\nfunc (in *ConfigFile) DeepCopy() *ConfigFile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigFile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Descriptor) DeepCopyInto(out *Descriptor) {\n\t*out = *in\n\tout.Digest = in.Digest\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.URLs != nil {\n\t\tin, out := &in.URLs, &out.URLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Platform != nil {\n\t\tin, out := &in.Platform, &out.Platform\n\t\t*out = new(Platform)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Descriptor.\nfunc (in *Descriptor) DeepCopy() *Descriptor {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Descriptor)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Hash) DeepCopyInto(out *Hash) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hash.\nfunc (in *Hash) DeepCopy() *Hash {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Hash)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HealthConfig) DeepCopyInto(out *HealthConfig) {\n\t*out = *in\n\tif in.Test != nil {\n\t\tin, out := &in.Test, &out.Test\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthConfig.\nfunc (in *HealthConfig) DeepCopy() *HealthConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HealthConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *History) DeepCopyInto(out *History) {\n\t*out = *in\n\tin.Created.DeepCopyInto(&out.Created)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new History.\nfunc (in *History) DeepCopy() *History {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(History)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IndexManifest) DeepCopyInto(out *IndexManifest) {\n\t*out = *in\n\tif in.Manifests != nil {\n\t\tin, out := &in.Manifests, &out.Manifests\n\t\t*out = make([]Descriptor, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Subject != nil {\n\t\tin, out := &in.Subject, &out.Subject\n\t\t*out = new(Descriptor)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IndexManifest.\nfunc (in *IndexManifest) DeepCopy() *IndexManifest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IndexManifest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Manifest) DeepCopyInto(out *Manifest) {\n\t*out = *in\n\tin.Config.DeepCopyInto(&out.Config)\n\tif in.Layers != nil {\n\t\tin, out := &in.Layers, &out.Layers\n\t\t*out = make([]Descriptor, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Subject != nil {\n\t\tin, out := &in.Subject, &out.Subject\n\t\t*out = new(Descriptor)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.\nfunc (in *Manifest) DeepCopy() *Manifest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Manifest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Platform) DeepCopyInto(out *Platform) {\n\t*out = *in\n\tif in.OSFeatures != nil {\n\t\tin, out := &in.OSFeatures, &out.OSFeatures\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Features != nil {\n\t\tin, out := &in.Features, &out.Features\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.\nfunc (in *Platform) DeepCopy() *Platform {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Platform)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RootFS) DeepCopyInto(out *RootFS) {\n\t*out = *in\n\tif in.DiffIDs != nil {\n\t\tin, out := &in.DiffIDs, &out.DiffIDs\n\t\t*out = make([]Hash, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootFS.\nfunc (in *RootFS) DeepCopy() *RootFS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RootFS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Time.\nfunc (in *Time) DeepCopy() *Time {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Time)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/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 2022 Alan Shreve (@inconshreveable)\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/inconshreveable/mousetrap/README.md",
    "content": "# mousetrap\n\nmousetrap is a tiny library that answers a single question.\n\nOn a Windows machine, was the process invoked by someone double clicking on\nthe executable file while browsing in explorer?\n\n### Motivation\n\nWindows developers unfamiliar with command line tools will often \"double-click\"\nthe executable for a tool. Because most CLI tools print the help and then exit\nwhen invoked without arguments, this is often very frustrating for those users.\n\nmousetrap provides a way to detect these invocations so that you can provide\nmore helpful behavior and instructions on how to run the CLI tool. To see what\nthis looks like, both from an organizational and a technical perspective, see\nhttps://inconshreveable.com/09-09-2014/sweat-the-small-stuff/\n\n### The interface\n\nThe library exposes a single interface:\n\n    func StartedByExplorer() (bool)\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_others.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage mousetrap\n\n// StartedByExplorer returns true if the program was invoked by the user\n// double-clicking on the executable from explorer.exe\n//\n// It is conservative and returns false if any of the internal calls fail.\n// It does not guarantee that the program was run from a terminal. It only can tell you\n// whether it was launched from explorer.exe\n//\n// On non-Windows platforms, it always returns false.\nfunc StartedByExplorer() bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_windows.go",
    "content": "package mousetrap\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc getProcessEntry(pid int) (*syscall.ProcessEntry32, error) {\n\tsnapshot, err := syscall.CreateToolhelp32Snapshot(syscall.TH32CS_SNAPPROCESS, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer syscall.CloseHandle(snapshot)\n\tvar procEntry syscall.ProcessEntry32\n\tprocEntry.Size = uint32(unsafe.Sizeof(procEntry))\n\tif err = syscall.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 = syscall.Process32Next(snapshot, &procEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\n// StartedByExplorer returns true if the program was invoked by the user double-clicking\n// on the executable from explorer.exe\n//\n// It is conservative and returns false if any of the internal calls fail.\n// It does not guarantee that the program was run from a terminal. It only can tell you\n// whether it was launched from explorer.exe\nfunc StartedByExplorer() bool {\n\tpe, err := getProcessEntry(syscall.Getppid())\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn \"explorer.exe\" == syscall.UTF16ToString(pe.ExeFile[:])\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/.gitattributes",
    "content": "* -text\n*.bin -text -diff\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/.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/s2/cmd/_s2sx/sfx-exe\n\n# Linux perf files\nperf.data\nperf.data.old\n\n# gdb history\n.gdb_history\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/.goreleaser.yml",
    "content": "version: 2\n\nbefore:\n  hooks:\n    - ./gen.sh\n\nbuilds:\n  -\n    id: \"s2c\"\n    binary: s2c\n    main: ./s2/cmd/s2c/main.go\n    flags:\n      - -trimpath\n    env:\n      - CGO_ENABLED=0\n    goos:\n      - aix\n      - linux\n      - freebsd\n      - netbsd\n      - windows\n      - darwin\n    goarch:\n      - 386\n      - amd64\n      - arm\n      - arm64\n      - ppc64\n      - ppc64le\n      - mips64\n      - mips64le\n    goarm:\n      - 7\n  -\n    id: \"s2d\"\n    binary: s2d\n    main: ./s2/cmd/s2d/main.go\n    flags:\n      - -trimpath\n    env:\n      - CGO_ENABLED=0\n    goos:\n      - aix\n      - linux\n      - freebsd\n      - netbsd\n      - windows\n      - darwin\n    goarch:\n      - 386\n      - amd64\n      - arm\n      - arm64\n      - ppc64\n      - ppc64le\n      - mips64\n      - mips64le\n    goarm:\n      - 7\n  -\n    id: \"s2sx\"\n    binary: s2sx\n    main: ./s2/cmd/_s2sx/main.go\n    flags:\n      - -modfile=s2sx.mod\n      - -trimpath\n    env:\n      - CGO_ENABLED=0\n    goos:\n      - aix\n      - linux\n      - freebsd\n      - netbsd\n      - windows\n      - darwin\n    goarch:\n      - 386\n      - amd64\n      - arm\n      - arm64\n      - ppc64\n      - ppc64le\n      - mips64\n      - mips64le\n    goarm:\n      - 7\n\narchives:\n  -\n    id: s2-binaries\n    name_template: \"s2-{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}\"\n    format_overrides:\n      - goos: windows\n        format: zip\n    files:\n      - unpack/*\n      - s2/LICENSE\n      - s2/README.md\nchecksum:\n  name_template: 'checksums.txt'\nsnapshot:\n  version_template: \"{{ .Tag }}-next\"\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n    - '^doc:'\n    - '^docs:'\n    - '^test:'\n    - '^tests:'\n    - '^Update\\sREADME.md'\n\nnfpms:\n  -\n    file_name_template: \"s2_package__{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}\"\n    vendor: Klaus Post\n    homepage: https://github.com/klauspost/compress\n    maintainer: Klaus Post <klauspost@gmail.com>\n    description: S2 Compression Tool\n    license: BSD 3-Clause\n    formats:\n      - deb\n      - rpm\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/LICENSE",
    "content": "Copyright (c) 2012 The Go Authors. All rights reserved.\nCopyright (c) 2019 Klaus Post. 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\n------------------\n\nFiles: gzhttp/*\n\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 2016-2017 The New York Times Company\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\nFiles: s2/cmd/internal/readahead/*\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Klaus Post\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---------------------\nFiles: snappy/*\nFiles: internal/snapref/*\n\nCopyright (c) 2011 The Snappy-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\n-----------------\n\nFiles: s2/cmd/internal/filepathx/*\n\nCopyright 2016 The filepathx Authors\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/klauspost/compress/README.md",
    "content": "# compress\r\n\r\nThis package provides various compression algorithms.\r\n\r\n* [zstandard](https://github.com/klauspost/compress/tree/master/zstd#zstd) compression and decompression in pure Go.\r\n* [S2](https://github.com/klauspost/compress/tree/master/s2#s2-compression) is a high performance replacement for Snappy.\r\n* Optimized [deflate](https://godoc.org/github.com/klauspost/compress/flate) packages which can be used as a dropin replacement for [gzip](https://godoc.org/github.com/klauspost/compress/gzip), [zip](https://godoc.org/github.com/klauspost/compress/zip) and [zlib](https://godoc.org/github.com/klauspost/compress/zlib).\r\n* [snappy](https://github.com/klauspost/compress/tree/master/snappy) is a drop-in replacement for `github.com/golang/snappy` offering better compression and concurrent streams.\r\n* [huff0](https://github.com/klauspost/compress/tree/master/huff0) and [FSE](https://github.com/klauspost/compress/tree/master/fse) implementations for raw entropy encoding.\r\n* [gzhttp](https://github.com/klauspost/compress/tree/master/gzhttp) Provides client and server wrappers for handling gzipped/zstd HTTP requests efficiently.\r\n* [pgzip](https://github.com/klauspost/pgzip) is a separate package that provides a very fast parallel gzip implementation.\r\n\r\n[![Go Reference](https://pkg.go.dev/badge/klauspost/compress.svg)](https://pkg.go.dev/github.com/klauspost/compress?tab=subdirectories)\r\n[![Go](https://github.com/klauspost/compress/actions/workflows/go.yml/badge.svg)](https://github.com/klauspost/compress/actions/workflows/go.yml)\r\n[![Sourcegraph Badge](https://sourcegraph.com/github.com/klauspost/compress/-/badge.svg)](https://sourcegraph.com/github.com/klauspost/compress?badge)\r\n\r\n# package usage\r\n\r\nUse `go get github.com/klauspost/compress@latest` to add it to your project.\r\n\r\nThis package will support the current Go version and 2 versions back.\r\n\r\n* Use the `nounsafe` tag to disable all use of the \"unsafe\" package.\r\n* Use the `noasm` tag to disable all assembly across packages.\r\n\r\nUse the links above for more information on each.\r\n\r\n# changelog\r\n* Jan 16th, 2026 [1.18.3](https://github.com/klauspost/compress/releases/tag/v1.18.3)\r\n\t* Downstream CVE-2025-61728. See [golang/go#77102](https://github.com/golang/go/issues/77102).\r\n\r\n* Dec 1st, 2025 - [1.18.2](https://github.com/klauspost/compress/releases/tag/v1.18.2)\r\n\t* flate: Fix invalid encoding on level 9 with single value input in https://github.com/klauspost/compress/pull/1115\r\n\t* flate: reduce stateless allocations by @RXamzin in https://github.com/klauspost/compress/pull/1106\r\n\r\n* Oct 20, 2025 - [1.18.1](https://github.com/klauspost/compress/releases/tag/v1.18.1) - RETRACTED\r\n  * zstd: Add simple zstd EncodeTo/DecodeTo functions  https://github.com/klauspost/compress/pull/1079\r\n  * zstd: Fix incorrect buffer size in dictionary encodes https://github.com/klauspost/compress/pull/1059\r\n  * s2: check for cap, not len of buffer in EncodeBetter/Best by @vdarulis in https://github.com/klauspost/compress/pull/1080\r\n  * zlib: Avoiding extra allocation in zlib.reader.Reset by @travelpolicy in https://github.com/klauspost/compress/pull/1086\r\n  * gzhttp: remove redundant err check in zstdReader by @ryanfowler in https://github.com/klauspost/compress/pull/1090\r\n  * flate: Faster load+store https://github.com/klauspost/compress/pull/1104\r\n  * flate: Simplify matchlen https://github.com/klauspost/compress/pull/1101\r\n  * flate: Use exact sizes for huffman tables https://github.com/klauspost/compress/pull/1103\r\n\r\n* Feb 19th, 2025 - [1.18.0](https://github.com/klauspost/compress/releases/tag/v1.18.0)\r\n  * Add unsafe little endian loaders https://github.com/klauspost/compress/pull/1036\r\n  * fix: check `r.err != nil` but return a nil value error `err` by @alingse in https://github.com/klauspost/compress/pull/1028\r\n  * flate: Simplify L4-6 loading https://github.com/klauspost/compress/pull/1043\r\n  * flate: Simplify matchlen (remove asm) https://github.com/klauspost/compress/pull/1045\r\n  * s2: Improve small block compression speed w/o asm https://github.com/klauspost/compress/pull/1048\r\n  * flate: Fix matchlen L5+L6 https://github.com/klauspost/compress/pull/1049\r\n  * flate: Cleanup & reduce casts https://github.com/klauspost/compress/pull/1050\r\n\r\n<details>\r\n\t<summary>See changes to v1.17.x</summary>\r\n\r\n* Oct 11th, 2024 - [1.17.11](https://github.com/klauspost/compress/releases/tag/v1.17.11)\r\n  * zstd: Fix extra CRC written with multiple Close calls https://github.com/klauspost/compress/pull/1017\r\n  * s2: Don't use stack for index tables https://github.com/klauspost/compress/pull/1014\r\n  * gzhttp: No content-type on no body response code by @juliens in https://github.com/klauspost/compress/pull/1011\r\n  * gzhttp: Do not set the content-type when response has no body by @kevinpollet in https://github.com/klauspost/compress/pull/1013\r\n\r\n* Sep 23rd, 2024 - [1.17.10](https://github.com/klauspost/compress/releases/tag/v1.17.10)\r\n\t* gzhttp: Add TransportAlwaysDecompress option. https://github.com/klauspost/compress/pull/978\r\n\t* gzhttp: Add supported decompress request body by @mirecl in https://github.com/klauspost/compress/pull/1002\r\n\t* s2: Add EncodeBuffer buffer recycling callback https://github.com/klauspost/compress/pull/982\r\n\t* zstd: Improve memory usage on small streaming encodes https://github.com/klauspost/compress/pull/1007\r\n\t* flate: read data written with partial flush by @vajexal in https://github.com/klauspost/compress/pull/996\r\n\r\n* Jun 12th, 2024 - [1.17.9](https://github.com/klauspost/compress/releases/tag/v1.17.9)\r\n\t* s2: Reduce ReadFrom temporary allocations https://github.com/klauspost/compress/pull/949\r\n\t* flate, zstd: Shave some bytes off amd64 matchLen by @greatroar in https://github.com/klauspost/compress/pull/963\r\n\t* Upgrade zip/zlib to 1.22.4 upstream https://github.com/klauspost/compress/pull/970 https://github.com/klauspost/compress/pull/971\r\n\t* zstd: BuildDict fails with RLE table https://github.com/klauspost/compress/pull/951\r\n\r\n* Apr 9th, 2024 - [1.17.8](https://github.com/klauspost/compress/releases/tag/v1.17.8)\r\n\t* zstd: Reject blocks where reserved values are not 0 https://github.com/klauspost/compress/pull/885\r\n\t* zstd: Add RLE detection+encoding https://github.com/klauspost/compress/pull/938\r\n\r\n* Feb 21st, 2024 - [1.17.7](https://github.com/klauspost/compress/releases/tag/v1.17.7)\r\n\t* s2: Add AsyncFlush method: Complete the block without flushing by @Jille in https://github.com/klauspost/compress/pull/927\r\n\t* s2: Fix literal+repeat exceeds dst crash https://github.com/klauspost/compress/pull/930\r\n  \r\n* Feb 5th, 2024 - [1.17.6](https://github.com/klauspost/compress/releases/tag/v1.17.6)\r\n\t* zstd: Fix incorrect repeat coding in best mode https://github.com/klauspost/compress/pull/923\r\n\t* s2: Fix DecodeConcurrent deadlock on errors https://github.com/klauspost/compress/pull/925\r\n  \r\n* Jan 26th, 2024 - [v1.17.5](https://github.com/klauspost/compress/releases/tag/v1.17.5)\r\n\t* flate: Fix reset with dictionary on custom window encodes https://github.com/klauspost/compress/pull/912\r\n\t* zstd: Add Frame header encoding and stripping https://github.com/klauspost/compress/pull/908\r\n\t* zstd: Limit better/best default window to 8MB https://github.com/klauspost/compress/pull/913\r\n\t* zstd: Speed improvements by @greatroar in https://github.com/klauspost/compress/pull/896 https://github.com/klauspost/compress/pull/910\r\n\t* s2: Fix callbacks for skippable blocks and disallow 0xfe (Padding) by @Jille in https://github.com/klauspost/compress/pull/916 https://github.com/klauspost/compress/pull/917\r\nhttps://github.com/klauspost/compress/pull/919 https://github.com/klauspost/compress/pull/918\r\n\r\n* Dec 1st, 2023 - [v1.17.4](https://github.com/klauspost/compress/releases/tag/v1.17.4)\r\n\t* huff0: Speed up symbol counting by @greatroar in https://github.com/klauspost/compress/pull/887\r\n\t* huff0: Remove byteReader by @greatroar in https://github.com/klauspost/compress/pull/886\r\n\t* gzhttp: Allow overriding decompression on transport https://github.com/klauspost/compress/pull/892\r\n\t* gzhttp: Clamp compression level https://github.com/klauspost/compress/pull/890\r\n\t* gzip: Error out if reserved bits are set https://github.com/klauspost/compress/pull/891\r\n\r\n* Nov 15th, 2023 - [v1.17.3](https://github.com/klauspost/compress/releases/tag/v1.17.3)\r\n\t* fse: Fix max header size https://github.com/klauspost/compress/pull/881\r\n\t* zstd: Improve better/best compression https://github.com/klauspost/compress/pull/877\r\n\t* gzhttp: Fix missing content type on Close https://github.com/klauspost/compress/pull/883\r\n\r\n* Oct 22nd, 2023 - [v1.17.2](https://github.com/klauspost/compress/releases/tag/v1.17.2)\r\n\t* zstd: Fix rare *CORRUPTION* output in \"best\" mode. See https://github.com/klauspost/compress/pull/876\r\n\r\n* Oct 14th, 2023 - [v1.17.1](https://github.com/klauspost/compress/releases/tag/v1.17.1)\r\n\t* s2: Fix S2 \"best\" dictionary wrong encoding https://github.com/klauspost/compress/pull/871\r\n\t* flate: Reduce allocations in decompressor and minor code improvements by @fakefloordiv in https://github.com/klauspost/compress/pull/869\r\n\t* s2: Fix EstimateBlockSize on 6&7 length input https://github.com/klauspost/compress/pull/867\r\n\r\n* Sept 19th, 2023 - [v1.17.0](https://github.com/klauspost/compress/releases/tag/v1.17.0)\r\n\t* Add experimental dictionary builder  https://github.com/klauspost/compress/pull/853\r\n\t* Add xerial snappy read/writer https://github.com/klauspost/compress/pull/838\r\n\t* flate: Add limited window compression https://github.com/klauspost/compress/pull/843\r\n\t* s2: Do 2 overlapping match checks https://github.com/klauspost/compress/pull/839\r\n\t* flate: Add amd64 assembly matchlen https://github.com/klauspost/compress/pull/837\r\n\t* gzip: Copy bufio.Reader on Reset by @thatguystone in https://github.com/klauspost/compress/pull/860\r\n   \r\n</details>\r\n<details>\r\n\t<summary>See changes to v1.16.x</summary>\r\n\r\n   \r\n* July 1st, 2023 - [v1.16.7](https://github.com/klauspost/compress/releases/tag/v1.16.7)\r\n\t* zstd: Fix default level first dictionary encode https://github.com/klauspost/compress/pull/829\r\n\t* s2: add GetBufferCapacity() method by @GiedriusS in https://github.com/klauspost/compress/pull/832\r\n\r\n* June 13, 2023 - [v1.16.6](https://github.com/klauspost/compress/releases/tag/v1.16.6)\r\n\t* zstd: correctly ignore WithEncoderPadding(1) by @ianlancetaylor in https://github.com/klauspost/compress/pull/806\r\n\t* zstd: Add amd64 match length assembly https://github.com/klauspost/compress/pull/824\r\n\t* gzhttp: Handle informational headers by @rtribotte in https://github.com/klauspost/compress/pull/815\r\n\t* s2: Improve Better compression slightly https://github.com/klauspost/compress/pull/663\r\n\r\n* Apr 16, 2023 - [v1.16.5](https://github.com/klauspost/compress/releases/tag/v1.16.5)\r\n\t* zstd: readByte needs to use io.ReadFull by @jnoxon in https://github.com/klauspost/compress/pull/802\r\n\t* gzip: Fix WriterTo after initial read https://github.com/klauspost/compress/pull/804\r\n\r\n* Apr 5, 2023 - [v1.16.4](https://github.com/klauspost/compress/releases/tag/v1.16.4)\r\n\t* zstd: Improve zstd best efficiency by @greatroar and @klauspost in https://github.com/klauspost/compress/pull/784\r\n\t* zstd: Respect WithAllLitEntropyCompression https://github.com/klauspost/compress/pull/792\r\n\t* zstd: Fix amd64 not always detecting corrupt data https://github.com/klauspost/compress/pull/785\r\n\t* zstd: Various minor improvements by @greatroar in https://github.com/klauspost/compress/pull/788 https://github.com/klauspost/compress/pull/794 https://github.com/klauspost/compress/pull/795\r\n\t* s2: Fix huge block overflow https://github.com/klauspost/compress/pull/779\r\n\t* s2: Allow CustomEncoder fallback https://github.com/klauspost/compress/pull/780\r\n\t* gzhttp: Support ResponseWriter Unwrap() in gzhttp handler by @jgimenez in https://github.com/klauspost/compress/pull/799\r\n\r\n* Mar 13, 2023 - [v1.16.1](https://github.com/klauspost/compress/releases/tag/v1.16.1)\r\n\t* zstd: Speed up + improve best encoder by @greatroar in https://github.com/klauspost/compress/pull/776\r\n\t* gzhttp: Add optional [BREACH mitigation](https://github.com/klauspost/compress/tree/master/gzhttp#breach-mitigation). https://github.com/klauspost/compress/pull/762 https://github.com/klauspost/compress/pull/768 https://github.com/klauspost/compress/pull/769 https://github.com/klauspost/compress/pull/770 https://github.com/klauspost/compress/pull/767\r\n\t* s2: Add Intel LZ4s converter https://github.com/klauspost/compress/pull/766\r\n\t* zstd: Minor bug fixes https://github.com/klauspost/compress/pull/771 https://github.com/klauspost/compress/pull/772 https://github.com/klauspost/compress/pull/773\r\n\t* huff0: Speed up compress1xDo by @greatroar in https://github.com/klauspost/compress/pull/774\r\n\r\n* Feb 26, 2023 - [v1.16.0](https://github.com/klauspost/compress/releases/tag/v1.16.0)\r\n\t* s2: Add [Dictionary](https://github.com/klauspost/compress/tree/master/s2#dictionaries) support.  https://github.com/klauspost/compress/pull/685\r\n\t* s2: Add Compression Size Estimate.  https://github.com/klauspost/compress/pull/752\r\n\t* s2: Add support for custom stream encoder. https://github.com/klauspost/compress/pull/755\r\n\t* s2: Add LZ4 block converter. https://github.com/klauspost/compress/pull/748\r\n\t* s2: Support io.ReaderAt in ReadSeeker. https://github.com/klauspost/compress/pull/747\r\n\t* s2c/s2sx: Use concurrent decoding. https://github.com/klauspost/compress/pull/746\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes to v1.15.x</summary>\r\n\t\r\n* Jan 21st, 2023 (v1.15.15)\r\n\t* deflate: Improve level 7-9 https://github.com/klauspost/compress/pull/739\r\n\t* zstd: Add delta encoding support by @greatroar in https://github.com/klauspost/compress/pull/728\r\n\t* zstd: Various speed improvements by @greatroar https://github.com/klauspost/compress/pull/741 https://github.com/klauspost/compress/pull/734 https://github.com/klauspost/compress/pull/736 https://github.com/klauspost/compress/pull/744 https://github.com/klauspost/compress/pull/743 https://github.com/klauspost/compress/pull/745\r\n\t* gzhttp: Add SuffixETag() and DropETag() options to prevent ETag collisions on compressed responses by @willbicks in https://github.com/klauspost/compress/pull/740\r\n\r\n* Jan 3rd, 2023 (v1.15.14)\r\n\r\n\t* flate: Improve speed in big stateless blocks https://github.com/klauspost/compress/pull/718\r\n\t* zstd: Minor speed tweaks by @greatroar in https://github.com/klauspost/compress/pull/716 https://github.com/klauspost/compress/pull/720\r\n\t* export NoGzipResponseWriter for custom ResponseWriter wrappers by @harshavardhana in https://github.com/klauspost/compress/pull/722\r\n\t* s2: Add example for indexing and existing stream https://github.com/klauspost/compress/pull/723\r\n\r\n* Dec 11, 2022 (v1.15.13)\r\n\t* zstd: Add [MaxEncodedSize](https://pkg.go.dev/github.com/klauspost/compress@v1.15.13/zstd#Encoder.MaxEncodedSize) to encoder  https://github.com/klauspost/compress/pull/691\r\n\t* zstd: Various tweaks and improvements https://github.com/klauspost/compress/pull/693 https://github.com/klauspost/compress/pull/695 https://github.com/klauspost/compress/pull/696 https://github.com/klauspost/compress/pull/701 https://github.com/klauspost/compress/pull/702 https://github.com/klauspost/compress/pull/703 https://github.com/klauspost/compress/pull/704 https://github.com/klauspost/compress/pull/705 https://github.com/klauspost/compress/pull/706 https://github.com/klauspost/compress/pull/707 https://github.com/klauspost/compress/pull/708\r\n\r\n* Oct 26, 2022 (v1.15.12)\r\n\r\n\t* zstd: Tweak decoder allocs. https://github.com/klauspost/compress/pull/680\r\n\t* gzhttp: Always delete `HeaderNoCompression` https://github.com/klauspost/compress/pull/683\r\n\r\n* Sept 26, 2022 (v1.15.11)\r\n\r\n\t* flate: Improve level 1-3 compression  https://github.com/klauspost/compress/pull/678\r\n\t* zstd: Improve \"best\" compression by @nightwolfz in https://github.com/klauspost/compress/pull/677\r\n\t* zstd: Fix+reduce decompression allocations https://github.com/klauspost/compress/pull/668\r\n\t* zstd: Fix non-effective noescape tag https://github.com/klauspost/compress/pull/667\r\n\r\n* Sept 16, 2022 (v1.15.10)\r\n\r\n\t* zstd: Add [WithDecodeAllCapLimit](https://pkg.go.dev/github.com/klauspost/compress@v1.15.10/zstd#WithDecodeAllCapLimit) https://github.com/klauspost/compress/pull/649\r\n\t* Add Go 1.19 - deprecate Go 1.16  https://github.com/klauspost/compress/pull/651\r\n\t* flate: Improve level 5+6 compression https://github.com/klauspost/compress/pull/656\r\n\t* zstd: Improve \"better\" compression  https://github.com/klauspost/compress/pull/657\r\n\t* s2: Improve \"best\" compression https://github.com/klauspost/compress/pull/658\r\n\t* s2: Improve \"better\" compression. https://github.com/klauspost/compress/pull/635\r\n\t* s2: Slightly faster non-assembly decompression https://github.com/klauspost/compress/pull/646\r\n\t* Use arrays for constant size copies https://github.com/klauspost/compress/pull/659\r\n\r\n* July 21, 2022 (v1.15.9)\r\n\r\n\t* zstd: Fix decoder crash on amd64 (no BMI) on invalid input https://github.com/klauspost/compress/pull/645\r\n\t* zstd: Disable decoder extended memory copies (amd64) due to possible crashes https://github.com/klauspost/compress/pull/644\r\n\t* zstd: Allow single segments up to \"max decoded size\" https://github.com/klauspost/compress/pull/643\r\n\r\n* July 13, 2022 (v1.15.8)\r\n\r\n\t* gzip: fix stack exhaustion bug in Reader.Read https://github.com/klauspost/compress/pull/641\r\n\t* s2: Add Index header trim/restore https://github.com/klauspost/compress/pull/638\r\n\t* zstd: Optimize seqdeq amd64 asm by @greatroar in https://github.com/klauspost/compress/pull/636\r\n\t* zstd: Improve decoder memcopy https://github.com/klauspost/compress/pull/637\r\n\t* huff0: Pass a single bitReader pointer to asm by @greatroar in https://github.com/klauspost/compress/pull/634\r\n\t* zstd: Branchless getBits for amd64 w/o BMI2 by @greatroar in https://github.com/klauspost/compress/pull/640\r\n\t* gzhttp: Remove header before writing https://github.com/klauspost/compress/pull/639\r\n\r\n* June 29, 2022 (v1.15.7)\r\n\r\n\t* s2: Fix absolute forward seeks  https://github.com/klauspost/compress/pull/633\r\n\t* zip: Merge upstream  https://github.com/klauspost/compress/pull/631\r\n\t* zip: Re-add zip64 fix https://github.com/klauspost/compress/pull/624\r\n\t* zstd: translate fseDecoder.buildDtable into asm by @WojciechMula in https://github.com/klauspost/compress/pull/598\r\n\t* flate: Faster histograms  https://github.com/klauspost/compress/pull/620\r\n\t* deflate: Use compound hcode  https://github.com/klauspost/compress/pull/622\r\n\r\n* June 3, 2022 (v1.15.6)\r\n\t* s2: Improve coding for long, close matches https://github.com/klauspost/compress/pull/613\r\n\t* s2c: Add Snappy/S2 stream recompression https://github.com/klauspost/compress/pull/611\r\n\t* zstd: Always use configured block size https://github.com/klauspost/compress/pull/605\r\n\t* zstd: Fix incorrect hash table placement for dict encoding in default https://github.com/klauspost/compress/pull/606\r\n\t* zstd: Apply default config to ZipDecompressor without options https://github.com/klauspost/compress/pull/608\r\n\t* gzhttp: Exclude more common archive formats https://github.com/klauspost/compress/pull/612\r\n\t* s2: Add ReaderIgnoreCRC https://github.com/klauspost/compress/pull/609\r\n\t* s2: Remove sanity load on index creation https://github.com/klauspost/compress/pull/607\r\n\t* snappy: Use dedicated function for scoring https://github.com/klauspost/compress/pull/614\r\n\t* s2c+s2d: Use official snappy framed extension https://github.com/klauspost/compress/pull/610\r\n\r\n* May 25, 2022 (v1.15.5)\r\n\t* s2: Add concurrent stream decompression https://github.com/klauspost/compress/pull/602\r\n\t* s2: Fix final emit oob read crash on amd64 https://github.com/klauspost/compress/pull/601\r\n\t* huff0: asm implementation of Decompress1X by @WojciechMula https://github.com/klauspost/compress/pull/596\r\n\t* zstd: Use 1 less goroutine for stream decoding https://github.com/klauspost/compress/pull/588\r\n\t* zstd: Copy literal in 16 byte blocks when possible https://github.com/klauspost/compress/pull/592\r\n\t* zstd: Speed up when WithDecoderLowmem(false) https://github.com/klauspost/compress/pull/599\r\n\t* zstd: faster next state update in BMI2 version of decode by @WojciechMula in https://github.com/klauspost/compress/pull/593\r\n\t* huff0: Do not check max size when reading table. https://github.com/klauspost/compress/pull/586\r\n\t* flate: Inplace hashing for level 7-9 https://github.com/klauspost/compress/pull/590\r\n\r\n\r\n* May 11, 2022 (v1.15.4)\r\n\t* huff0: decompress directly into output by @WojciechMula in [#577](https://github.com/klauspost/compress/pull/577)\r\n\t* inflate: Keep dict on stack [#581](https://github.com/klauspost/compress/pull/581)\r\n\t* zstd: Faster decoding memcopy in asm [#583](https://github.com/klauspost/compress/pull/583)\r\n\t* zstd: Fix ignored crc [#580](https://github.com/klauspost/compress/pull/580)\r\n\r\n* May 5, 2022 (v1.15.3)\r\n\t* zstd: Allow to ignore checksum checking by @WojciechMula [#572](https://github.com/klauspost/compress/pull/572)\r\n\t* s2: Fix incorrect seek for io.SeekEnd in [#575](https://github.com/klauspost/compress/pull/575)\r\n\r\n* Apr 26, 2022 (v1.15.2)\r\n\t* zstd: Add x86-64 assembly for decompression on streams and blocks. Contributed by [@WojciechMula](https://github.com/WojciechMula). Typically 2x faster.  [#528](https://github.com/klauspost/compress/pull/528) [#531](https://github.com/klauspost/compress/pull/531) [#545](https://github.com/klauspost/compress/pull/545) [#537](https://github.com/klauspost/compress/pull/537)\r\n\t* zstd: Add options to ZipDecompressor and fixes [#539](https://github.com/klauspost/compress/pull/539)\r\n\t* s2: Use sorted search for index [#555](https://github.com/klauspost/compress/pull/555)\r\n\t* Minimum version is Go 1.16, added CI test on 1.18.\r\n\r\n* Mar 11, 2022 (v1.15.1)\r\n\t* huff0: Add x86 assembly of Decode4X by @WojciechMula in [#512](https://github.com/klauspost/compress/pull/512)\r\n\t* zstd: Reuse zip decoders in [#514](https://github.com/klauspost/compress/pull/514)\r\n\t* zstd: Detect extra block data and report as corrupted in [#520](https://github.com/klauspost/compress/pull/520)\r\n\t* zstd: Handle zero sized frame content size stricter in [#521](https://github.com/klauspost/compress/pull/521)\r\n\t* zstd: Add stricter block size checks in [#523](https://github.com/klauspost/compress/pull/523)\r\n\r\n* Mar 3, 2022 (v1.15.0)\r\n\t* zstd: Refactor decoder [#498](https://github.com/klauspost/compress/pull/498)\r\n\t* zstd: Add stream encoding without goroutines [#505](https://github.com/klauspost/compress/pull/505)\r\n\t* huff0: Prevent single blocks exceeding 16 bits by @klauspost in[#507](https://github.com/klauspost/compress/pull/507)\r\n\t* flate: Inline literal emission [#509](https://github.com/klauspost/compress/pull/509)\r\n\t* gzhttp: Add zstd to transport [#400](https://github.com/klauspost/compress/pull/400)\r\n\t* gzhttp: Make content-type optional [#510](https://github.com/klauspost/compress/pull/510)\r\n\r\nBoth compression and decompression now supports \"synchronous\" stream operations. This means that whenever \"concurrency\" is set to 1, they will operate without spawning goroutines.\r\n\r\nStream decompression is now faster on asynchronous, since the goroutine allocation much more effectively splits the workload. On typical streams this will typically use 2 cores fully for decompression. When a stream has finished decoding no goroutines will be left over, so decoders can now safely be pooled and still be garbage collected.\r\n\r\nWhile the release has been extensively tested, it is recommended to testing when upgrading.\r\n\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes to v1.14.x</summary>\r\n\t\r\n* Feb 22, 2022 (v1.14.4)\r\n\t* flate: Fix rare huffman only (-2) corruption. [#503](https://github.com/klauspost/compress/pull/503)\r\n\t* zip: Update deprecated CreateHeaderRaw to correctly call CreateRaw by @saracen in [#502](https://github.com/klauspost/compress/pull/502)\r\n\t* zip: don't read data descriptor early by @saracen in [#501](https://github.com/klauspost/compress/pull/501)  #501\r\n\t* huff0: Use static decompression buffer up to 30% faster [#499](https://github.com/klauspost/compress/pull/499) [#500](https://github.com/klauspost/compress/pull/500)\r\n\r\n* Feb 17, 2022 (v1.14.3)\r\n\t* flate: Improve fastest levels compression speed ~10% more throughput. [#482](https://github.com/klauspost/compress/pull/482) [#489](https://github.com/klauspost/compress/pull/489) [#490](https://github.com/klauspost/compress/pull/490) [#491](https://github.com/klauspost/compress/pull/491) [#494](https://github.com/klauspost/compress/pull/494)  [#478](https://github.com/klauspost/compress/pull/478)\r\n\t* flate: Faster decompression speed, ~5-10%. [#483](https://github.com/klauspost/compress/pull/483)\r\n\t* s2: Faster compression with Go v1.18 and amd64 microarch level 3+. [#484](https://github.com/klauspost/compress/pull/484) [#486](https://github.com/klauspost/compress/pull/486)\r\n\r\n* Jan 25, 2022 (v1.14.2)\r\n\t* zstd: improve header decoder by @dsnet  [#476](https://github.com/klauspost/compress/pull/476)\r\n\t* zstd: Add bigger default blocks  [#469](https://github.com/klauspost/compress/pull/469)\r\n\t* zstd: Remove unused decompression buffer [#470](https://github.com/klauspost/compress/pull/470)\r\n\t* zstd: Fix logically dead code by @ningmingxiao [#472](https://github.com/klauspost/compress/pull/472)\r\n\t* flate: Improve level 7-9 [#471](https://github.com/klauspost/compress/pull/471) [#473](https://github.com/klauspost/compress/pull/473)\r\n\t* zstd: Add noasm tag for xxhash [#475](https://github.com/klauspost/compress/pull/475)\r\n\r\n* Jan 11, 2022 (v1.14.1)\r\n\t* s2: Add stream index in [#462](https://github.com/klauspost/compress/pull/462)\r\n\t* flate: Speed and efficiency improvements in [#439](https://github.com/klauspost/compress/pull/439) [#461](https://github.com/klauspost/compress/pull/461) [#455](https://github.com/klauspost/compress/pull/455) [#452](https://github.com/klauspost/compress/pull/452) [#458](https://github.com/klauspost/compress/pull/458)\r\n\t* zstd: Performance improvement in [#420]( https://github.com/klauspost/compress/pull/420) [#456](https://github.com/klauspost/compress/pull/456) [#437](https://github.com/klauspost/compress/pull/437) [#467](https://github.com/klauspost/compress/pull/467) [#468](https://github.com/klauspost/compress/pull/468)\r\n\t* zstd: add arm64 xxhash assembly in [#464](https://github.com/klauspost/compress/pull/464)\r\n\t* Add garbled for binaries for s2 in [#445](https://github.com/klauspost/compress/pull/445)\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes to v1.13.x</summary>\r\n\t\r\n* Aug 30, 2021 (v1.13.5)\r\n\t* gz/zlib/flate: Alias stdlib errors [#425](https://github.com/klauspost/compress/pull/425)\r\n\t* s2: Add block support to commandline tools [#413](https://github.com/klauspost/compress/pull/413)\r\n\t* zstd: pooledZipWriter should return Writers to the same pool [#426](https://github.com/klauspost/compress/pull/426)\r\n\t* Removed golang/snappy as external dependency for tests [#421](https://github.com/klauspost/compress/pull/421)\r\n\r\n* Aug 12, 2021 (v1.13.4)\r\n\t* Add [snappy replacement package](https://github.com/klauspost/compress/tree/master/snappy).\r\n\t* zstd: Fix incorrect encoding in \"best\" mode [#415](https://github.com/klauspost/compress/pull/415)\r\n\r\n* Aug 3, 2021 (v1.13.3) \r\n\t* zstd: Improve Best compression [#404](https://github.com/klauspost/compress/pull/404)\r\n\t* zstd: Fix WriteTo error forwarding [#411](https://github.com/klauspost/compress/pull/411)\r\n\t* gzhttp: Return http.HandlerFunc instead of http.Handler. Unlikely breaking change. [#406](https://github.com/klauspost/compress/pull/406)\r\n\t* s2sx: Fix max size error [#399](https://github.com/klauspost/compress/pull/399)\r\n\t* zstd: Add optional stream content size on reset [#401](https://github.com/klauspost/compress/pull/401)\r\n\t* zstd: use SpeedBestCompression for level >= 10 [#410](https://github.com/klauspost/compress/pull/410)\r\n\r\n* Jun 14, 2021 (v1.13.1)\r\n\t* s2: Add full Snappy output support  [#396](https://github.com/klauspost/compress/pull/396)\r\n\t* zstd: Add configurable [Decoder window](https://pkg.go.dev/github.com/klauspost/compress/zstd#WithDecoderMaxWindow) size [#394](https://github.com/klauspost/compress/pull/394)\r\n\t* gzhttp: Add header to skip compression  [#389](https://github.com/klauspost/compress/pull/389)\r\n\t* s2: Improve speed with bigger output margin  [#395](https://github.com/klauspost/compress/pull/395)\r\n\r\n* Jun 3, 2021 (v1.13.0)\r\n\t* Added [gzhttp](https://github.com/klauspost/compress/tree/master/gzhttp#gzip-handler) which allows wrapping HTTP servers and clients with GZIP compressors.\r\n\t* zstd: Detect short invalid signatures [#382](https://github.com/klauspost/compress/pull/382)\r\n\t* zstd: Spawn decoder goroutine only if needed. [#380](https://github.com/klauspost/compress/pull/380)\r\n</details>\r\n\r\n\r\n<details>\r\n\t<summary>See changes to v1.12.x</summary>\r\n\t\r\n* May 25, 2021 (v1.12.3)\r\n\t* deflate: Better/faster Huffman encoding [#374](https://github.com/klauspost/compress/pull/374)\r\n\t* deflate: Allocate less for history. [#375](https://github.com/klauspost/compress/pull/375)\r\n\t* zstd: Forward read errors [#373](https://github.com/klauspost/compress/pull/373) \r\n\r\n* Apr 27, 2021 (v1.12.2)\r\n\t* zstd: Improve better/best compression [#360](https://github.com/klauspost/compress/pull/360) [#364](https://github.com/klauspost/compress/pull/364) [#365](https://github.com/klauspost/compress/pull/365)\r\n\t* zstd: Add helpers to compress/decompress zstd inside zip files [#363](https://github.com/klauspost/compress/pull/363)\r\n\t* deflate: Improve level 5+6 compression [#367](https://github.com/klauspost/compress/pull/367)\r\n\t* s2: Improve better/best compression [#358](https://github.com/klauspost/compress/pull/358) [#359](https://github.com/klauspost/compress/pull/358)\r\n\t* s2: Load after checking src limit on amd64. [#362](https://github.com/klauspost/compress/pull/362)\r\n\t* s2sx: Limit max executable size [#368](https://github.com/klauspost/compress/pull/368) \r\n\r\n* Apr 14, 2021 (v1.12.1)\r\n\t* snappy package removed. Upstream added as dependency.\r\n\t* s2: Better compression in \"best\" mode [#353](https://github.com/klauspost/compress/pull/353)\r\n\t* s2sx: Add stdin input and detect pre-compressed from signature [#352](https://github.com/klauspost/compress/pull/352)\r\n\t* s2c/s2d: Add http as possible input [#348](https://github.com/klauspost/compress/pull/348)\r\n\t* s2c/s2d/s2sx: Always truncate when writing files [#352](https://github.com/klauspost/compress/pull/352)\r\n\t* zstd: Reduce memory usage further when using [WithLowerEncoderMem](https://pkg.go.dev/github.com/klauspost/compress/zstd#WithLowerEncoderMem) [#346](https://github.com/klauspost/compress/pull/346)\r\n\t* s2: Fix potential problem with amd64 assembly and profilers [#349](https://github.com/klauspost/compress/pull/349)\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes to v1.11.x</summary>\r\n\t\r\n* Mar 26, 2021 (v1.11.13)\r\n\t* zstd: Big speedup on small dictionary encodes [#344](https://github.com/klauspost/compress/pull/344) [#345](https://github.com/klauspost/compress/pull/345)\r\n\t* zstd: Add [WithLowerEncoderMem](https://pkg.go.dev/github.com/klauspost/compress/zstd#WithLowerEncoderMem) encoder option [#336](https://github.com/klauspost/compress/pull/336)\r\n\t* deflate: Improve entropy compression [#338](https://github.com/klauspost/compress/pull/338)\r\n\t* s2: Clean up and minor performance improvement in best [#341](https://github.com/klauspost/compress/pull/341)\r\n\r\n* Mar 5, 2021 (v1.11.12)\r\n\t* s2: Add `s2sx` binary that creates [self extracting archives](https://github.com/klauspost/compress/tree/master/s2#s2sx-self-extracting-archives).\r\n\t* s2: Speed up decompression on non-assembly platforms [#328](https://github.com/klauspost/compress/pull/328)\r\n\r\n* Mar 1, 2021 (v1.11.9)\r\n\t* s2: Add ARM64 decompression assembly. Around 2x output speed. [#324](https://github.com/klauspost/compress/pull/324)\r\n\t* s2: Improve \"better\" speed and efficiency. [#325](https://github.com/klauspost/compress/pull/325)\r\n\t* s2: Fix binaries.\r\n\r\n* Feb 25, 2021 (v1.11.8)\r\n\t* s2: Fixed occasional out-of-bounds write on amd64. Upgrade recommended.\r\n\t* s2: Add AMD64 assembly for better mode. 25-50% faster. [#315](https://github.com/klauspost/compress/pull/315)\r\n\t* s2: Less upfront decoder allocation. [#322](https://github.com/klauspost/compress/pull/322)\r\n\t* zstd: Faster \"compression\" of incompressible data. [#314](https://github.com/klauspost/compress/pull/314)\r\n\t* zip: Fix zip64 headers. [#313](https://github.com/klauspost/compress/pull/313)\r\n  \r\n* Jan 14, 2021 (v1.11.7)\r\n\t* Use Bytes() interface to get bytes across packages. [#309](https://github.com/klauspost/compress/pull/309)\r\n\t* s2: Add 'best' compression option.  [#310](https://github.com/klauspost/compress/pull/310)\r\n\t* s2: Add ReaderMaxBlockSize, changes `s2.NewReader` signature to include varargs. [#311](https://github.com/klauspost/compress/pull/311)\r\n\t* s2: Fix crash on small better buffers. [#308](https://github.com/klauspost/compress/pull/308)\r\n\t* s2: Clean up decoder. [#312](https://github.com/klauspost/compress/pull/312)\r\n\r\n* Jan 7, 2021 (v1.11.6)\r\n\t* zstd: Make decoder allocations smaller [#306](https://github.com/klauspost/compress/pull/306)\r\n\t* zstd: Free Decoder resources when Reset is called with a nil io.Reader  [#305](https://github.com/klauspost/compress/pull/305)\r\n\r\n* Dec 20, 2020 (v1.11.4)\r\n\t* zstd: Add Best compression mode [#304](https://github.com/klauspost/compress/pull/304)\r\n\t* Add header decoder [#299](https://github.com/klauspost/compress/pull/299)\r\n\t* s2: Add uncompressed stream option [#297](https://github.com/klauspost/compress/pull/297)\r\n\t* Simplify/speed up small blocks with known max size. [#300](https://github.com/klauspost/compress/pull/300)\r\n\t* zstd: Always reset literal dict encoder [#303](https://github.com/klauspost/compress/pull/303)\r\n\r\n* Nov 15, 2020 (v1.11.3)\r\n\t* inflate: 10-15% faster decompression  [#293](https://github.com/klauspost/compress/pull/293)\r\n\t* zstd: Tweak DecodeAll default allocation [#295](https://github.com/klauspost/compress/pull/295)\r\n\r\n* Oct 11, 2020 (v1.11.2)\r\n\t* s2: Fix out of bounds read in \"better\" block compression [#291](https://github.com/klauspost/compress/pull/291)\r\n\r\n* Oct 1, 2020 (v1.11.1)\r\n\t* zstd: Set allLitEntropy true in default configuration [#286](https://github.com/klauspost/compress/pull/286)\r\n\r\n* Sept 8, 2020 (v1.11.0)\r\n\t* zstd: Add experimental compression [dictionaries](https://github.com/klauspost/compress/tree/master/zstd#dictionaries) [#281](https://github.com/klauspost/compress/pull/281)\r\n\t* zstd: Fix mixed Write and ReadFrom calls [#282](https://github.com/klauspost/compress/pull/282)\r\n\t* inflate/gz: Limit variable shifts, ~5% faster decompression [#274](https://github.com/klauspost/compress/pull/274)\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes to v1.10.x</summary>\r\n \r\n* July 8, 2020 (v1.10.11) \r\n\t* zstd: Fix extra block when compressing with ReadFrom. [#278](https://github.com/klauspost/compress/pull/278)\r\n\t* huff0: Also populate compression table when reading decoding table. [#275](https://github.com/klauspost/compress/pull/275)\r\n\t\r\n* June 23, 2020 (v1.10.10) \r\n\t* zstd: Skip entropy compression in fastest mode when no matches. [#270](https://github.com/klauspost/compress/pull/270)\r\n\t\r\n* June 16, 2020 (v1.10.9): \r\n\t* zstd: API change for specifying dictionaries. See [#268](https://github.com/klauspost/compress/pull/268)\r\n\t* zip: update CreateHeaderRaw to handle zip64 fields. [#266](https://github.com/klauspost/compress/pull/266)\r\n\t* Fuzzit tests removed. The service has been purchased and is no longer available.\r\n\t\r\n* June 5, 2020 (v1.10.8): \r\n\t* 1.15x faster zstd block decompression. [#265](https://github.com/klauspost/compress/pull/265)\r\n\t\r\n* June 1, 2020 (v1.10.7): \r\n\t* Added zstd decompression [dictionary support](https://github.com/klauspost/compress/tree/master/zstd#dictionaries)\r\n\t* Increase zstd decompression speed up to 1.19x.  [#259](https://github.com/klauspost/compress/pull/259)\r\n\t* Remove internal reset call in zstd compression and reduce allocations. [#263](https://github.com/klauspost/compress/pull/263)\r\n\t\r\n* May 21, 2020: (v1.10.6) \r\n\t* zstd: Reduce allocations while decoding. [#258](https://github.com/klauspost/compress/pull/258), [#252](https://github.com/klauspost/compress/pull/252)\r\n\t* zstd: Stricter decompression checks.\r\n\t\r\n* April 12, 2020: (v1.10.5)\r\n\t* s2-commands: Flush output when receiving SIGINT. [#239](https://github.com/klauspost/compress/pull/239)\r\n\t\r\n* Apr 8, 2020: (v1.10.4) \r\n\t* zstd: Minor/special case optimizations. [#251](https://github.com/klauspost/compress/pull/251),  [#250](https://github.com/klauspost/compress/pull/250),  [#249](https://github.com/klauspost/compress/pull/249),  [#247](https://github.com/klauspost/compress/pull/247)\r\n* Mar 11, 2020: (v1.10.3) \r\n\t* s2: Use S2 encoder in pure Go mode for Snappy output as well. [#245](https://github.com/klauspost/compress/pull/245)\r\n\t* s2: Fix pure Go block encoder. [#244](https://github.com/klauspost/compress/pull/244)\r\n\t* zstd: Added \"better compression\" mode. [#240](https://github.com/klauspost/compress/pull/240)\r\n\t* zstd: Improve speed of fastest compression mode by 5-10% [#241](https://github.com/klauspost/compress/pull/241)\r\n\t* zstd: Skip creating encoders when not needed. [#238](https://github.com/klauspost/compress/pull/238)\r\n\t\r\n* Feb 27, 2020: (v1.10.2) \r\n\t* Close to 50% speedup in inflate (gzip/zip decompression). [#236](https://github.com/klauspost/compress/pull/236) [#234](https://github.com/klauspost/compress/pull/234) [#232](https://github.com/klauspost/compress/pull/232)\r\n\t* Reduce deflate level 1-6 memory usage up to 59%. [#227](https://github.com/klauspost/compress/pull/227)\r\n\t\r\n* Feb 18, 2020: (v1.10.1)\r\n\t* Fix zstd crash when resetting multiple times without sending data. [#226](https://github.com/klauspost/compress/pull/226)\r\n\t* deflate: Fix dictionary use on level 1-6. [#224](https://github.com/klauspost/compress/pull/224)\r\n\t* Remove deflate writer reference when closing. [#224](https://github.com/klauspost/compress/pull/224)\r\n\t\r\n* Feb 4, 2020: (v1.10.0) \r\n\t* Add optional dictionary to [stateless deflate](https://pkg.go.dev/github.com/klauspost/compress/flate?tab=doc#StatelessDeflate). Breaking change, send `nil` for previous behaviour. [#216](https://github.com/klauspost/compress/pull/216)\r\n\t* Fix buffer overflow on repeated small block deflate.  [#218](https://github.com/klauspost/compress/pull/218)\r\n\t* Allow copying content from an existing ZIP file without decompressing+compressing. [#214](https://github.com/klauspost/compress/pull/214)\r\n\t* Added [S2](https://github.com/klauspost/compress/tree/master/s2#s2-compression) AMD64 assembler and various optimizations. Stream speed >10GB/s.  [#186](https://github.com/klauspost/compress/pull/186)\r\n\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes prior to v1.10.0</summary>\r\n\r\n* Jan 20,2020 (v1.9.8) Optimize gzip/deflate with better size estimates and faster table generation. [#207](https://github.com/klauspost/compress/pull/207) by [luyu6056](https://github.com/luyu6056),  [#206](https://github.com/klauspost/compress/pull/206).\r\n* Jan 11, 2020: S2 Encode/Decode will use provided buffer if capacity is big enough. [#204](https://github.com/klauspost/compress/pull/204) \r\n* Jan 5, 2020: (v1.9.7) Fix another zstd regression in v1.9.5 - v1.9.6 removed.\r\n* Jan 4, 2020: (v1.9.6) Regression in v1.9.5 fixed causing corrupt zstd encodes in rare cases.\r\n* Jan 4, 2020: Faster IO in [s2c + s2d commandline tools](https://github.com/klauspost/compress/tree/master/s2#commandline-tools) compression/decompression. [#192](https://github.com/klauspost/compress/pull/192)\r\n* Dec 29, 2019: Removed v1.9.5 since fuzz tests showed a compatibility problem with the reference zstandard decoder.\r\n* Dec 29, 2019: (v1.9.5) zstd: 10-20% faster block compression. [#199](https://github.com/klauspost/compress/pull/199)\r\n* Dec 29, 2019: [zip](https://godoc.org/github.com/klauspost/compress/zip) package updated with latest Go features\r\n* Dec 29, 2019: zstd: Single segment flag condintions tweaked. [#197](https://github.com/klauspost/compress/pull/197)\r\n* Dec 18, 2019: s2: Faster compression when ReadFrom is used. [#198](https://github.com/klauspost/compress/pull/198)\r\n* Dec 10, 2019: s2: Fix repeat length output when just above at 16MB limit.\r\n* Dec 10, 2019: zstd: Add function to get decoder as io.ReadCloser. [#191](https://github.com/klauspost/compress/pull/191)\r\n* Dec 3, 2019: (v1.9.4) S2: limit max repeat length. [#188](https://github.com/klauspost/compress/pull/188)\r\n* Dec 3, 2019: Add [WithNoEntropyCompression](https://godoc.org/github.com/klauspost/compress/zstd#WithNoEntropyCompression) to zstd [#187](https://github.com/klauspost/compress/pull/187)\r\n* Dec 3, 2019: Reduce memory use for tests. Check for leaked goroutines.\r\n* Nov 28, 2019 (v1.9.3) Less allocations in stateless deflate.\r\n* Nov 28, 2019: 5-20% Faster huff0 decode. Impacts zstd as well. [#184](https://github.com/klauspost/compress/pull/184)\r\n* Nov 12, 2019 (v1.9.2) Added [Stateless Compression](#stateless-compression) for gzip/deflate.\r\n* Nov 12, 2019: Fixed zstd decompression of large single blocks. [#180](https://github.com/klauspost/compress/pull/180)\r\n* Nov 11, 2019: Set default  [s2c](https://github.com/klauspost/compress/tree/master/s2#commandline-tools) block size to 4MB.\r\n* Nov 11, 2019: Reduce inflate memory use by 1KB.\r\n* Nov 10, 2019: Less allocations in deflate bit writer.\r\n* Nov 10, 2019: Fix inconsistent error returned by zstd decoder.\r\n* Oct 28, 2019 (v1.9.1) ztsd: Fix crash when compressing blocks. [#174](https://github.com/klauspost/compress/pull/174)\r\n* Oct 24, 2019 (v1.9.0) zstd: Fix rare data corruption [#173](https://github.com/klauspost/compress/pull/173)\r\n* Oct 24, 2019 zstd: Fix huff0 out of buffer write [#171](https://github.com/klauspost/compress/pull/171) and always return errors [#172](https://github.com/klauspost/compress/pull/172) \r\n* Oct 10, 2019: Big deflate rewrite, 30-40% faster with better compression [#105](https://github.com/klauspost/compress/pull/105)\r\n\r\n</details>\r\n\r\n<details>\r\n\t<summary>See changes prior to v1.9.0</summary>\r\n\r\n* Oct 10, 2019: (v1.8.6) zstd: Allow partial reads to get flushed data. [#169](https://github.com/klauspost/compress/pull/169)\r\n* Oct 3, 2019: Fix inconsistent results on broken zstd streams.\r\n* Sep 25, 2019: Added `-rm` (remove source files) and `-q` (no output except errors) to `s2c` and `s2d` [commands](https://github.com/klauspost/compress/tree/master/s2#commandline-tools)\r\n* Sep 16, 2019: (v1.8.4) Add `s2c` and `s2d` [commandline tools](https://github.com/klauspost/compress/tree/master/s2#commandline-tools).\r\n* Sep 10, 2019: (v1.8.3) Fix s2 decoder [Skip](https://godoc.org/github.com/klauspost/compress/s2#Reader.Skip).\r\n* Sep 7, 2019: zstd: Added [WithWindowSize](https://godoc.org/github.com/klauspost/compress/zstd#WithWindowSize), contributed by [ianwilkes](https://github.com/ianwilkes).\r\n* Sep 5, 2019: (v1.8.2) Add [WithZeroFrames](https://godoc.org/github.com/klauspost/compress/zstd#WithZeroFrames) which adds full zero payload block encoding option.\r\n* Sep 5, 2019: Lazy initialization of zstandard predefined en/decoder tables.\r\n* Aug 26, 2019: (v1.8.1) S2: 1-2% compression increase in \"better\" compression mode.\r\n* Aug 26, 2019: zstd: Check maximum size of Huffman 1X compressed literals while decoding.\r\n* Aug 24, 2019: (v1.8.0) Added [S2 compression](https://github.com/klauspost/compress/tree/master/s2#s2-compression), a high performance replacement for Snappy. \r\n* Aug 21, 2019: (v1.7.6) Fixed minor issues found by fuzzer. One could lead to zstd not decompressing.\r\n* Aug 18, 2019: Add [fuzzit](https://fuzzit.dev/) continuous fuzzing.\r\n* Aug 14, 2019: zstd: Skip incompressible data 2x faster.  [#147](https://github.com/klauspost/compress/pull/147)\r\n* Aug 4, 2019 (v1.7.5): Better literal compression. [#146](https://github.com/klauspost/compress/pull/146)\r\n* Aug 4, 2019: Faster zstd compression. [#143](https://github.com/klauspost/compress/pull/143) [#144](https://github.com/klauspost/compress/pull/144)\r\n* Aug 4, 2019: Faster zstd decompression. [#145](https://github.com/klauspost/compress/pull/145) [#143](https://github.com/klauspost/compress/pull/143) [#142](https://github.com/klauspost/compress/pull/142)\r\n* July 15, 2019 (v1.7.4): Fix double EOF block in rare cases on zstd encoder.\r\n* July 15, 2019 (v1.7.3): Minor speedup/compression increase in default zstd encoder.\r\n* July 14, 2019: zstd decoder: Fix decompression error on multiple uses with mixed content.\r\n* July 7, 2019 (v1.7.2): Snappy update, zstd decoder potential race fix.\r\n* June 17, 2019: zstd decompression bugfix.\r\n* June 17, 2019: fix 32 bit builds.\r\n* June 17, 2019: Easier use in modules (less dependencies).\r\n* June 9, 2019: New stronger \"default\" [zstd](https://github.com/klauspost/compress/tree/master/zstd#zstd) compression mode. Matches zstd default compression ratio.\r\n* June 5, 2019: 20-40% throughput in [zstandard](https://github.com/klauspost/compress/tree/master/zstd#zstd) compression and better compression.\r\n* June 5, 2019: deflate/gzip compression: Reduce memory usage of lower compression levels.\r\n* June 2, 2019: Added [zstandard](https://github.com/klauspost/compress/tree/master/zstd#zstd) compression!\r\n* May 25, 2019: deflate/gzip: 10% faster bit writer, mostly visible in lower levels.\r\n* Apr 22, 2019: [zstd](https://github.com/klauspost/compress/tree/master/zstd#zstd) decompression added.\r\n* Aug 1, 2018: Added [huff0 README](https://github.com/klauspost/compress/tree/master/huff0#huff0-entropy-compression).\r\n* Jul 8, 2018: Added [Performance Update 2018](#performance-update-2018) below.\r\n* Jun 23, 2018: Merged [Go 1.11 inflate optimizations](https://go-review.googlesource.com/c/go/+/102235). Go 1.9 is now required. Backwards compatible version tagged with [v1.3.0](https://github.com/klauspost/compress/releases/tag/v1.3.0).\r\n* Apr 2, 2018: Added [huff0](https://godoc.org/github.com/klauspost/compress/huff0) en/decoder. Experimental for now, API may change.\r\n* Mar 4, 2018: Added [FSE Entropy](https://godoc.org/github.com/klauspost/compress/fse) en/decoder. Experimental for now, API may change.\r\n* Nov 3, 2017: Add compression [Estimate](https://godoc.org/github.com/klauspost/compress#Estimate) function.\r\n* May 28, 2017: Reduce allocations when resetting decoder.\r\n* Apr 02, 2017: Change back to official crc32, since changes were merged in Go 1.7.\r\n* Jan 14, 2017: Reduce stack pressure due to array copies. See [Issue #18625](https://github.com/golang/go/issues/18625).\r\n* Oct 25, 2016: Level 2-4 have been rewritten and now offers significantly better performance than before.\r\n* Oct 20, 2016: Port zlib changes from Go 1.7 to fix zlib writer issue. Please update.\r\n* Oct 16, 2016: Go 1.7 changes merged. Apples to apples this package is a few percent faster, but has a significantly better balance between speed and compression per level. \r\n* Mar 24, 2016: Always attempt Huffman encoding on level 4-7. This improves base 64 encoded data compression.\r\n* Mar 24, 2016: Small speedup for level 1-3.\r\n* Feb 19, 2016: Faster bit writer, level -2 is 15% faster, level 1 is 4% faster.\r\n* Feb 19, 2016: Handle small payloads faster in level 1-3.\r\n* Feb 19, 2016: Added faster level 2 + 3 compression modes.\r\n* Feb 19, 2016: [Rebalanced compression levels](https://blog.klauspost.com/rebalancing-deflate-compression-levels/), so there is a more even progression in terms of compression. New default level is 5.\r\n* Feb 14, 2016: Snappy: Merge upstream changes. \r\n* Feb 14, 2016: Snappy: Fix aggressive skipping.\r\n* Feb 14, 2016: Snappy: Update benchmark.\r\n* Feb 13, 2016: Deflate: Fixed assembler problem that could lead to sub-optimal compression.\r\n* Feb 12, 2016: Snappy: Added AMD64 SSE 4.2 optimizations to matching, which makes easy to compress material run faster. Typical speedup is around 25%.\r\n* Feb 9, 2016: Added Snappy package fork. This version is 5-7% faster, much more on hard to compress content.\r\n* Jan 30, 2016: Optimize level 1 to 3 by not considering static dictionary or storing uncompressed. ~4-5% speedup.\r\n* Jan 16, 2016: Optimization on deflate level 1,2,3 compression.\r\n* Jan 8 2016: Merge [CL 18317](https://go-review.googlesource.com/#/c/18317): fix reading, writing of zip64 archives.\r\n* Dec 8 2015: Make level 1 and -2 deterministic even if write size differs.\r\n* Dec 8 2015: Split encoding functions, so hashing and matching can potentially be inlined. 1-3% faster on AMD64. 5% faster on other platforms.\r\n* Dec 8 2015: Fixed rare [one byte out-of bounds read](https://github.com/klauspost/compress/issues/20). Please update!\r\n* Nov 23 2015: Optimization on token writer. ~2-4% faster. Contributed by [@dsnet](https://github.com/dsnet).\r\n* Nov 20 2015: Small optimization to bit writer on 64 bit systems.\r\n* Nov 17 2015: Fixed out-of-bound errors if the underlying Writer returned an error. See [#15](https://github.com/klauspost/compress/issues/15).\r\n* Nov 12 2015: Added [io.WriterTo](https://golang.org/pkg/io/#WriterTo) support to gzip/inflate.\r\n* Nov 11 2015: Merged [CL 16669](https://go-review.googlesource.com/#/c/16669/4): archive/zip: enable overriding (de)compressors per file\r\n* Oct 15 2015: Added skipping on uncompressible data. Random data speed up >5x.\r\n\r\n</details>\r\n\r\n# deflate usage\r\n\r\nThe packages are drop-in replacements for standard library [deflate](https://godoc.org/github.com/klauspost/compress/flate), [gzip](https://godoc.org/github.com/klauspost/compress/gzip), [zip](https://godoc.org/github.com/klauspost/compress/zip), and [zlib](https://godoc.org/github.com/klauspost/compress/zlib). Simply replace the import path to use them:\r\n\r\nTypical speed is about 2x of the standard library packages.\r\n\r\n| old import       | new import                            | Documentation                                                           |\r\n|------------------|---------------------------------------|-------------------------------------------------------------------------|\r\n| `compress/gzip`  | `github.com/klauspost/compress/gzip`  | [gzip](https://pkg.go.dev/github.com/klauspost/compress/gzip?tab=doc)   |\r\n| `compress/zlib`  | `github.com/klauspost/compress/zlib`  | [zlib](https://pkg.go.dev/github.com/klauspost/compress/zlib?tab=doc)   |\r\n| `archive/zip`    | `github.com/klauspost/compress/zip`   | [zip](https://pkg.go.dev/github.com/klauspost/compress/zip?tab=doc)     |\r\n| `compress/flate` | `github.com/klauspost/compress/flate` | [flate](https://pkg.go.dev/github.com/klauspost/compress/flate?tab=doc) |\r\n\r\nYou may also be interested in [pgzip](https://github.com/klauspost/pgzip), which is a drop-in replacement for gzip, which support multithreaded compression on big files and the optimized [crc32](https://github.com/klauspost/crc32) package used by these packages.\r\n\r\nThe packages implement the same API as the standard library, so you can use the original godoc documentation: [gzip](http://golang.org/pkg/compress/gzip/), [zip](http://golang.org/pkg/archive/zip/), [zlib](http://golang.org/pkg/compress/zlib/), [flate](http://golang.org/pkg/compress/flate/).\r\n\r\nCurrently there is only minor speedup on decompression (mostly CRC32 calculation).\r\n\r\nMemory usage is typically 1MB for a Writer. stdlib is in the same range. \r\nIf you expect to have a lot of concurrently allocated Writers consider using \r\nthe stateless compression described below.\r\n\r\nFor compression performance, see: [this spreadsheet](https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit?usp=sharing).\r\n\r\nTo disable all assembly add `-tags=noasm`. This works across all packages.\r\n\r\n# Stateless compression\r\n\r\nThis package offers stateless compression as a special option for gzip/deflate. \r\nIt will do compression but without maintaining any state between Write calls.\r\n\r\nThis means there will be no memory kept between Write calls, but compression and speed will be suboptimal.\r\n\r\nThis is only relevant in cases where you expect to run many thousands of compressors concurrently, \r\nbut with very little activity. This is *not* intended for regular web servers serving individual requests.  \r\n\r\nBecause of this, the size of actual Write calls will affect output size.\r\n\r\nIn gzip, specify level `-3` / `gzip.StatelessCompression` to enable.\r\n\r\nFor direct deflate use, NewStatelessWriter and StatelessDeflate are available. See [documentation](https://godoc.org/github.com/klauspost/compress/flate#NewStatelessWriter)\r\n\r\nA `bufio.Writer` can of course be used to control write sizes. For example, to use a 4KB buffer:\r\n\r\n```go\r\n\t// replace 'ioutil.Discard' with your output.\r\n\tgzw, err := gzip.NewWriterLevel(ioutil.Discard, gzip.StatelessCompression)\r\n\tif err != nil {\r\n\t\treturn err\r\n\t}\r\n\tdefer gzw.Close()\r\n\r\n\tw := bufio.NewWriterSize(gzw, 4096)\r\n\tdefer w.Flush()\r\n\t\r\n\t// Write to 'w' \r\n```\r\n\r\nThis will only use up to 4KB in memory when the writer is idle. \r\n\r\nCompression is almost always worse than the fastest compression level \r\nand each write will allocate (a little) memory. \r\n\r\n\r\n# Other packages\r\n\r\nHere are other packages of good quality and pure Go (no cgo wrappers or autoconverted code):\r\n\r\n* [github.com/pierrec/lz4](https://github.com/pierrec/lz4) - strong multithreaded LZ4 compression.\r\n* [github.com/cosnicolaou/pbzip2](https://github.com/cosnicolaou/pbzip2) - multithreaded bzip2 decompression.\r\n* [github.com/dsnet/compress](https://github.com/dsnet/compress) - brotli decompression, bzip2 writer.\r\n* [github.com/ronanh/intcomp](https://github.com/ronanh/intcomp) - Integer compression.\r\n* [github.com/spenczar/fpc](https://github.com/spenczar/fpc) - Float compression.\r\n* [github.com/minio/zipindex](https://github.com/minio/zipindex) - External ZIP directory index.\r\n* [github.com/ybirader/pzip](https://github.com/ybirader/pzip) - Fast concurrent zip archiver and extractor.\r\n\r\n# license\r\n\r\nThis code is licensed under the same conditions as the original Go code. See LICENSE file.\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\nSecurity updates are applied only to the latest release.\n\n## Vulnerability Definition\n\nA security vulnerability is a bug that with certain input triggers a crash or an infinite loop. Most calls will have varying execution time and only in rare cases will slow operation be considered a security vulnerability.\n\nCorrupted output generally is not considered a security vulnerability, unless independent operations are able to affect each other. Note that not all functionality is re-entrant and safe to use concurrently.\n\nOut-of-memory crashes only applies if the en/decoder uses an abnormal amount of memory, with appropriate options applied, to limit maximum window size, concurrency, etc. However, if you are in doubt you are welcome to file a security issue.\n\nIt is assumed that all callers are trusted, meaning internal data exposed through reflection or inspection of returned data structures is not considered a vulnerability.\n\nVulnerabilities resulting from compiler/assembler errors should be reported upstream. Depending on the severity this package may or may not implement a workaround.\n\n## Reporting a Vulnerability\n\nIf you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.\n\nPlease disclose it at [security advisory](https://github.com/klauspost/compress/security/advisories/new). If possible please provide a minimal reproducer. If the issue only applies to a single platform, it would be helpful to provide access to that.\n\nThis project is maintained by a team of volunteers on a reasonable-effort basis. As such, vulnerabilities will be disclosed in a best effort base.\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/compressible.go",
    "content": "package compress\n\nimport \"math\"\n\n// Estimate returns a normalized compressibility estimate of block b.\n// Values close to zero are likely uncompressible.\n// Values above 0.1 are likely to be compressible.\n// Values above 0.5 are very compressible.\n// Very small lengths will return 0.\nfunc Estimate(b []byte) float64 {\n\tif len(b) < 16 {\n\t\treturn 0\n\t}\n\n\t// Correctly predicted order 1\n\thits := 0\n\tlastMatch := false\n\tvar o1 [256]byte\n\tvar hist [256]int\n\tc1 := byte(0)\n\tfor _, c := range b {\n\t\tif c == o1[c1] {\n\t\t\t// We only count a hit if there was two correct predictions in a row.\n\t\t\tif lastMatch {\n\t\t\t\thits++\n\t\t\t}\n\t\t\tlastMatch = true\n\t\t} else {\n\t\t\tlastMatch = false\n\t\t}\n\t\to1[c1] = c\n\t\tc1 = c\n\t\thist[c]++\n\t}\n\n\t// Use x^0.6 to give better spread\n\tprediction := math.Pow(float64(hits)/float64(len(b)), 0.6)\n\n\t// Calculate histogram distribution\n\tvariance := float64(0)\n\tavg := float64(len(b)) / 256\n\n\tfor _, v := range hist {\n\t\tΔ := float64(v) - avg\n\t\tvariance += Δ * Δ\n\t}\n\n\tstddev := math.Sqrt(float64(variance)) / float64(len(b))\n\texp := math.Sqrt(1 / float64(len(b)))\n\n\t// Subtract expected stddev\n\tstddev -= exp\n\tif stddev < 0 {\n\t\tstddev = 0\n\t}\n\tstddev *= 1 + exp\n\n\t// Use x^0.4 to give better spread\n\tentropy := math.Pow(stddev, 0.4)\n\n\t// 50/50 weight between prediction and histogram distribution\n\treturn math.Pow((prediction+entropy)/2, 0.9)\n}\n\n// ShannonEntropyBits returns the number of bits minimum required to represent\n// an entropy encoding of the input bytes.\n// https://en.wiktionary.org/wiki/Shannon_entropy\nfunc ShannonEntropyBits(b []byte) int {\n\tif len(b) == 0 {\n\t\treturn 0\n\t}\n\tvar hist [256]int\n\tfor _, c := range b {\n\t\thist[c]++\n\t}\n\tshannon := float64(0)\n\tinvTotal := 1.0 / float64(len(b))\n\tfor _, v := range hist[:] {\n\t\tif v > 0 {\n\t\t\tn := float64(v)\n\t\t\tshannon += math.Ceil(-math.Log2(n*invTotal) * n)\n\t\t}\n\t}\n\treturn int(math.Ceil(shannon))\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/README.md",
    "content": "# Finite State Entropy\r\n\r\nThis package provides Finite State Entropy encoding and decoding.\r\n            \r\nFinite State Entropy (also referenced as [tANS](https://en.wikipedia.org/wiki/Asymmetric_numeral_systems#tANS)) \r\nencoding provides a fast near-optimal symbol encoding/decoding\r\nfor byte blocks as implemented in [zstandard](https://github.com/facebook/zstd).\r\n\r\nThis can be used for compressing input with a lot of similar input values to the smallest number of bytes.\r\nThis does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders,\r\nbut it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. \r\n\r\n* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/fse)\r\n\r\n## News\r\n\r\n * Feb 2018: First implementation released. Consider this beta software for now.\r\n\r\n# Usage\r\n\r\nThis package provides a low level interface that allows to compress single independent blocks. \r\n\r\nEach block is separate, and there is no built in integrity checks. \r\nThis means that the caller should keep track of block sizes and also do checksums if needed.  \r\n\r\nCompressing a block is done via the [`Compress`](https://godoc.org/github.com/klauspost/compress/fse#Compress) function.\r\nYou must provide input and will receive the output and maybe an error.\r\n\r\nThese error values can be returned:\r\n\r\n| Error               | Description                                                                 |\r\n|---------------------|-----------------------------------------------------------------------------|\r\n| `<nil>`             | Everything ok, output is returned                                           |\r\n| `ErrIncompressible` | Returned when input is judged to be too hard to compress                    |\r\n| `ErrUseRLE`         | Returned from the compressor when the input is a single byte value repeated |\r\n| `(error)`           | An internal error occurred.                                                 |\r\n\r\nAs can be seen above there are errors that will be returned even under normal operation so it is important to handle these.\r\n\r\nTo reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/fse#Scratch) object \r\nthat can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same \r\nobject can be used for both.   \r\n\r\nBe aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this\r\nyou must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output.\r\n\r\nDecompressing is done by calling the [`Decompress`](https://godoc.org/github.com/klauspost/compress/fse#Decompress) function.\r\nYou must provide the output from the compression stage, at exactly the size you got back. If you receive an error back\r\nyour input was likely corrupted. \r\n\r\nIt is important to note that a successful decoding does *not* mean your output matches your original input. \r\nThere are no integrity checks, so relying on errors from the decompressor does not assure your data is valid.\r\n\r\nFor more detailed usage, see examples in the [godoc documentation](https://godoc.org/github.com/klauspost/compress/fse#pkg-examples).\r\n\r\n# Performance\r\n\r\nA lot of factors are affecting speed. Block sizes and compressibility of the material are primary factors.  \r\nAll compression functions are currently only running on the calling goroutine so only one core will be used per block.  \r\n\r\nThe compressor is significantly faster if symbols are kept as small as possible. The highest byte value of the input\r\nis used to reduce some of the processing, so if all your input is above byte value 64 for instance, it may be \r\nbeneficial to transpose all your input values down by 64.   \r\n\r\nWith moderate block sizes around 64k speed are typically 200MB/s per core for compression and \r\naround 300MB/s decompression speed. \r\n\r\nThe same hardware typically does Huffman (deflate) encoding at 125MB/s and decompression at 100MB/s. \r\n\r\n# Plans\r\n\r\nAt one point, more internals will be exposed to facilitate more \"expert\" usage of the components. \r\n\r\nA streaming interface is also likely to be implemented. Likely compatible with [FSE stream format](https://github.com/Cyan4973/FiniteStateEntropy/blob/dev/programs/fileio.c#L261).  \r\n\r\n# Contributing\r\n\r\nContributions are always welcome. Be aware that adding public functions will require good justification and breaking \r\nchanges will likely not be accepted. If in doubt open an issue before writing the PR.  "
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/bitreader.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage fse\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\n// bitReader reads a bitstream in reverse.\n// The last set bit indicates the start of the stream and is used\n// for aligning the input.\ntype bitReader struct {\n\tin       []byte\n\toff      uint // next byte to read is at in[off - 1]\n\tvalue    uint64\n\tbitsRead uint8\n}\n\n// init initializes and resets the bit reader.\nfunc (b *bitReader) init(in []byte) error {\n\tif len(in) < 1 {\n\t\treturn errors.New(\"corrupt stream: too short\")\n\t}\n\tb.in = in\n\tb.off = uint(len(in))\n\t// The highest bit of the last byte indicates where to start\n\tv := in[len(in)-1]\n\tif v == 0 {\n\t\treturn errors.New(\"corrupt stream, did not find end of stream\")\n\t}\n\tb.bitsRead = 64\n\tb.value = 0\n\tif len(in) >= 8 {\n\t\tb.fillFastStart()\n\t} else {\n\t\tb.fill()\n\t\tb.fill()\n\t}\n\tb.bitsRead += 8 - uint8(highBits(uint32(v)))\n\treturn nil\n}\n\n// getBits will return n bits. n can be 0.\nfunc (b *bitReader) getBits(n uint8) uint16 {\n\tif n == 0 || b.bitsRead >= 64 {\n\t\treturn 0\n\t}\n\treturn b.getBitsFast(n)\n}\n\n// getBitsFast requires that at least one bit is requested every time.\n// There are no checks if the buffer is filled.\nfunc (b *bitReader) getBitsFast(n uint8) uint16 {\n\tconst regMask = 64 - 1\n\tv := uint16((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask))\n\tb.bitsRead += n\n\treturn v\n}\n\n// fillFast() will make sure at least 32 bits are available.\n// There must be at least 4 bytes available.\nfunc (b *bitReader) fillFast() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\t// 2 bounds checks.\n\tv := b.in[b.off-4:]\n\tv = v[:4]\n\tlow := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24)\n\tb.value = (b.value << 32) | uint64(low)\n\tb.bitsRead -= 32\n\tb.off -= 4\n}\n\n// fill() will make sure at least 32 bits are available.\nfunc (b *bitReader) fill() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\tif b.off > 4 {\n\t\tv := b.in[b.off-4:]\n\t\tv = v[:4]\n\t\tlow := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24)\n\t\tb.value = (b.value << 32) | uint64(low)\n\t\tb.bitsRead -= 32\n\t\tb.off -= 4\n\t\treturn\n\t}\n\tfor b.off > 0 {\n\t\tb.value = (b.value << 8) | uint64(b.in[b.off-1])\n\t\tb.bitsRead -= 8\n\t\tb.off--\n\t}\n}\n\n// fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read.\nfunc (b *bitReader) fillFastStart() {\n\t// Do single re-slice to avoid bounds checks.\n\tb.value = binary.LittleEndian.Uint64(b.in[b.off-8:])\n\tb.bitsRead = 0\n\tb.off -= 8\n}\n\n// finished returns true if all bits have been read from the bit stream.\nfunc (b *bitReader) finished() bool {\n\treturn b.bitsRead >= 64 && b.off == 0\n}\n\n// close the bitstream and returns an error if out-of-buffer reads occurred.\nfunc (b *bitReader) close() error {\n\t// Release reference.\n\tb.in = nil\n\tif b.bitsRead > 64 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/bitwriter.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage fse\n\nimport \"fmt\"\n\n// bitWriter will write bits.\n// First bit will be LSB of the first byte of output.\ntype bitWriter struct {\n\tbitContainer uint64\n\tnBits        uint8\n\tout          []byte\n}\n\n// bitMask16 is bitmasks. Has extra to avoid bounds check.\nvar bitMask16 = [32]uint16{\n\t0, 1, 3, 7, 0xF, 0x1F,\n\t0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF,\n\t0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF,\n\t0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,\n\t0xFFFF, 0xFFFF} /* up to 16 bits */\n\n// addBits16NC will add up to 16 bits.\n// It will not check if there is space for them,\n// so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits16NC(value uint16, bits uint8) {\n\tb.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated.\n// It will not check if there is space for them, so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits16Clean(value uint16, bits uint8) {\n\tb.bitContainer |= uint64(value) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// addBits16ZeroNC will add up to 16 bits.\n// It will not check if there is space for them,\n// so the caller must ensure that it has flushed recently.\n// This is fastest if bits can be zero.\nfunc (b *bitWriter) addBits16ZeroNC(value uint16, bits uint8) {\n\tif bits == 0 {\n\t\treturn\n\t}\n\tvalue <<= (16 - bits) & 15\n\tvalue >>= (16 - bits) & 15\n\tb.bitContainer |= uint64(value) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// flush will flush all pending full bytes.\n// There will be at least 56 bits available for writing when this has been called.\n// Using flush32 is faster, but leaves less space for writing.\nfunc (b *bitWriter) flush() {\n\tv := b.nBits >> 3\n\tswitch v {\n\tcase 0:\n\tcase 1:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t)\n\tcase 2:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t)\n\tcase 3:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t)\n\tcase 4:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t\tbyte(b.bitContainer>>24),\n\t\t)\n\tcase 5:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t\tbyte(b.bitContainer>>24),\n\t\t\tbyte(b.bitContainer>>32),\n\t\t)\n\tcase 6:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t\tbyte(b.bitContainer>>24),\n\t\t\tbyte(b.bitContainer>>32),\n\t\t\tbyte(b.bitContainer>>40),\n\t\t)\n\tcase 7:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t\tbyte(b.bitContainer>>24),\n\t\t\tbyte(b.bitContainer>>32),\n\t\t\tbyte(b.bitContainer>>40),\n\t\t\tbyte(b.bitContainer>>48),\n\t\t)\n\tcase 8:\n\t\tb.out = append(b.out,\n\t\t\tbyte(b.bitContainer),\n\t\t\tbyte(b.bitContainer>>8),\n\t\t\tbyte(b.bitContainer>>16),\n\t\t\tbyte(b.bitContainer>>24),\n\t\t\tbyte(b.bitContainer>>32),\n\t\t\tbyte(b.bitContainer>>40),\n\t\t\tbyte(b.bitContainer>>48),\n\t\t\tbyte(b.bitContainer>>56),\n\t\t)\n\tdefault:\n\t\tpanic(fmt.Errorf(\"bits (%d) > 64\", b.nBits))\n\t}\n\tb.bitContainer >>= v << 3\n\tb.nBits &= 7\n}\n\n// flush32 will flush out, so there are at least 32 bits available for writing.\nfunc (b *bitWriter) flush32() {\n\tif b.nBits < 32 {\n\t\treturn\n\t}\n\tb.out = append(b.out,\n\t\tbyte(b.bitContainer),\n\t\tbyte(b.bitContainer>>8),\n\t\tbyte(b.bitContainer>>16),\n\t\tbyte(b.bitContainer>>24))\n\tb.nBits -= 32\n\tb.bitContainer >>= 32\n}\n\n// flushAlign will flush remaining full bytes and align to next byte boundary.\nfunc (b *bitWriter) flushAlign() {\n\tnbBytes := (b.nBits + 7) >> 3\n\tfor i := range nbBytes {\n\t\tb.out = append(b.out, byte(b.bitContainer>>(i*8)))\n\t}\n\tb.nBits = 0\n\tb.bitContainer = 0\n}\n\n// close will write the alignment bit and write the final byte(s)\n// to the output.\nfunc (b *bitWriter) close() {\n\t// End mark\n\tb.addBits16Clean(1, 1)\n\t// flush until next byte.\n\tb.flushAlign()\n}\n\n// reset and continue writing by appending to out.\nfunc (b *bitWriter) reset(out []byte) {\n\tb.bitContainer = 0\n\tb.nBits = 0\n\tb.out = out\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/bytereader.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage fse\n\n// byteReader provides a byte reader that reads\n// little endian values from a byte stream.\n// The input stream is manually advanced.\n// The reader performs no bounds checks.\ntype byteReader struct {\n\tb   []byte\n\toff int\n}\n\n// init will initialize the reader and set the input.\nfunc (b *byteReader) init(in []byte) {\n\tb.b = in\n\tb.off = 0\n}\n\n// advance the stream b n bytes.\nfunc (b *byteReader) advance(n uint) {\n\tb.off += int(n)\n}\n\n// Uint32 returns a little endian uint32 starting at current offset.\nfunc (b byteReader) Uint32() uint32 {\n\tb2 := b.b[b.off:]\n\tb2 = b2[:4]\n\tv3 := uint32(b2[3])\n\tv2 := uint32(b2[2])\n\tv1 := uint32(b2[1])\n\tv0 := uint32(b2[0])\n\treturn v0 | (v1 << 8) | (v2 << 16) | (v3 << 24)\n}\n\n// unread returns the unread portion of the input.\nfunc (b byteReader) unread() []byte {\n\treturn b.b[b.off:]\n}\n\n// remain will return the number of bytes remaining.\nfunc (b byteReader) remain() int {\n\treturn len(b.b) - b.off\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/compress.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage fse\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Compress the input bytes. Input must be < 2GB.\n// Provide a Scratch buffer to avoid memory allocations.\n// Note that the output is also kept in the scratch buffer.\n// If input is too hard to compress, ErrIncompressible is returned.\n// If input is a single byte value repeated ErrUseRLE is returned.\nfunc Compress(in []byte, s *Scratch) ([]byte, error) {\n\tif len(in) <= 1 {\n\t\treturn nil, ErrIncompressible\n\t}\n\tif len(in) > (2<<30)-1 {\n\t\treturn nil, errors.New(\"input too big, must be < 2GB\")\n\t}\n\ts, err := s.prepare(in)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Create histogram, if none was provided.\n\tmaxCount := s.maxCount\n\tif maxCount == 0 {\n\t\tmaxCount = s.countSimple(in)\n\t}\n\t// Reset for next run.\n\ts.clearCount = true\n\ts.maxCount = 0\n\tif maxCount == len(in) {\n\t\t// One symbol, use RLE\n\t\treturn nil, ErrUseRLE\n\t}\n\tif maxCount == 1 || maxCount < (len(in)>>7) {\n\t\t// Each symbol present maximum once or too well distributed.\n\t\treturn nil, ErrIncompressible\n\t}\n\ts.optimalTableLog()\n\terr = s.normalizeCount()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = s.writeCount()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif false {\n\t\terr = s.validateNorm()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\terr = s.buildCTable()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = s.compress(in)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ts.Out = s.bw.out\n\t// Check if we compressed.\n\tif len(s.Out) >= len(in) {\n\t\treturn nil, ErrIncompressible\n\t}\n\treturn s.Out, nil\n}\n\n// cState contains the compression state of a stream.\ntype cState struct {\n\tbw         *bitWriter\n\tstateTable []uint16\n\tstate      uint16\n}\n\n// init will initialize the compression state to the first symbol of the stream.\nfunc (c *cState) init(bw *bitWriter, ct *cTable, tableLog uint8, first symbolTransform) {\n\tc.bw = bw\n\tc.stateTable = ct.stateTable\n\n\tnbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16\n\tim := int32((nbBitsOut << 16) - first.deltaNbBits)\n\tlu := (im >> nbBitsOut) + first.deltaFindState\n\tc.state = c.stateTable[lu]\n}\n\n// encode the output symbol provided and write it to the bitstream.\nfunc (c *cState) encode(symbolTT symbolTransform) {\n\tnbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16\n\tdstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState\n\tc.bw.addBits16NC(c.state, uint8(nbBitsOut))\n\tc.state = c.stateTable[dstState]\n}\n\n// encode the output symbol provided and write it to the bitstream.\nfunc (c *cState) encodeZero(symbolTT symbolTransform) {\n\tnbBitsOut := (uint32(c.state) + symbolTT.deltaNbBits) >> 16\n\tdstState := int32(c.state>>(nbBitsOut&15)) + symbolTT.deltaFindState\n\tc.bw.addBits16ZeroNC(c.state, uint8(nbBitsOut))\n\tc.state = c.stateTable[dstState]\n}\n\n// flush will write the tablelog to the output and flush the remaining full bytes.\nfunc (c *cState) flush(tableLog uint8) {\n\tc.bw.flush32()\n\tc.bw.addBits16NC(c.state, tableLog)\n\tc.bw.flush()\n}\n\n// compress is the main compression loop that will encode the input from the last byte to the first.\nfunc (s *Scratch) compress(src []byte) error {\n\tif len(src) <= 2 {\n\t\treturn errors.New(\"compress: src too small\")\n\t}\n\ttt := s.ct.symbolTT[:256]\n\ts.bw.reset(s.Out)\n\n\t// Our two states each encodes every second byte.\n\t// Last byte encoded (first byte decoded) will always be encoded by c1.\n\tvar c1, c2 cState\n\n\t// Encode so remaining size is divisible by 4.\n\tip := len(src)\n\tif ip&1 == 1 {\n\t\tc1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]])\n\t\tc2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]])\n\t\tc1.encodeZero(tt[src[ip-3]])\n\t\tip -= 3\n\t} else {\n\t\tc2.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-1]])\n\t\tc1.init(&s.bw, &s.ct, s.actualTableLog, tt[src[ip-2]])\n\t\tip -= 2\n\t}\n\tif ip&2 != 0 {\n\t\tc2.encodeZero(tt[src[ip-1]])\n\t\tc1.encodeZero(tt[src[ip-2]])\n\t\tip -= 2\n\t}\n\tsrc = src[:ip]\n\n\t// Main compression loop.\n\tswitch {\n\tcase !s.zeroBits && s.actualTableLog <= 8:\n\t\t// We can encode 4 symbols without requiring a flush.\n\t\t// We do not need to check if any output is 0 bits.\n\t\tfor ; len(src) >= 4; src = src[:len(src)-4] {\n\t\t\ts.bw.flush32()\n\t\t\tv3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1]\n\t\t\tc2.encode(tt[v0])\n\t\t\tc1.encode(tt[v1])\n\t\t\tc2.encode(tt[v2])\n\t\t\tc1.encode(tt[v3])\n\t\t}\n\tcase !s.zeroBits:\n\t\t// We do not need to check if any output is 0 bits.\n\t\tfor ; len(src) >= 4; src = src[:len(src)-4] {\n\t\t\ts.bw.flush32()\n\t\t\tv3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1]\n\t\t\tc2.encode(tt[v0])\n\t\t\tc1.encode(tt[v1])\n\t\t\ts.bw.flush32()\n\t\t\tc2.encode(tt[v2])\n\t\t\tc1.encode(tt[v3])\n\t\t}\n\tcase s.actualTableLog <= 8:\n\t\t// We can encode 4 symbols without requiring a flush\n\t\tfor ; len(src) >= 4; src = src[:len(src)-4] {\n\t\t\ts.bw.flush32()\n\t\t\tv3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1]\n\t\t\tc2.encodeZero(tt[v0])\n\t\t\tc1.encodeZero(tt[v1])\n\t\t\tc2.encodeZero(tt[v2])\n\t\t\tc1.encodeZero(tt[v3])\n\t\t}\n\tdefault:\n\t\tfor ; len(src) >= 4; src = src[:len(src)-4] {\n\t\t\ts.bw.flush32()\n\t\t\tv3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1]\n\t\t\tc2.encodeZero(tt[v0])\n\t\t\tc1.encodeZero(tt[v1])\n\t\t\ts.bw.flush32()\n\t\t\tc2.encodeZero(tt[v2])\n\t\t\tc1.encodeZero(tt[v3])\n\t\t}\n\t}\n\n\t// Flush final state.\n\t// Used to initialize state when decoding.\n\tc2.flush(s.actualTableLog)\n\tc1.flush(s.actualTableLog)\n\n\ts.bw.close()\n\treturn nil\n}\n\n// writeCount will write the normalized histogram count to header.\n// This is read back by readNCount.\nfunc (s *Scratch) writeCount() error {\n\tvar (\n\t\ttableLog  = s.actualTableLog\n\t\ttableSize = 1 << tableLog\n\t\tprevious0 bool\n\t\tcharnum   uint16\n\n\t\tmaxHeaderSize = ((int(s.symbolLen)*int(tableLog) + 4 + 2) >> 3) + 3\n\n\t\t// Write Table Size\n\t\tbitStream = uint32(tableLog - minTablelog)\n\t\tbitCount  = uint(4)\n\t\tremaining = int16(tableSize + 1) /* +1 for extra accuracy */\n\t\tthreshold = int16(tableSize)\n\t\tnbBits    = uint(tableLog + 1)\n\t)\n\tif cap(s.Out) < maxHeaderSize {\n\t\ts.Out = make([]byte, 0, s.br.remain()+maxHeaderSize)\n\t}\n\toutP := uint(0)\n\tout := s.Out[:maxHeaderSize]\n\n\t// stops at 1\n\tfor remaining > 1 {\n\t\tif previous0 {\n\t\t\tstart := charnum\n\t\t\tfor s.norm[charnum] == 0 {\n\t\t\t\tcharnum++\n\t\t\t}\n\t\t\tfor charnum >= start+24 {\n\t\t\t\tstart += 24\n\t\t\t\tbitStream += uint32(0xFFFF) << bitCount\n\t\t\t\tout[outP] = byte(bitStream)\n\t\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\t\toutP += 2\n\t\t\t\tbitStream >>= 16\n\t\t\t}\n\t\t\tfor charnum >= start+3 {\n\t\t\t\tstart += 3\n\t\t\t\tbitStream += 3 << bitCount\n\t\t\t\tbitCount += 2\n\t\t\t}\n\t\t\tbitStream += uint32(charnum-start) << bitCount\n\t\t\tbitCount += 2\n\t\t\tif bitCount > 16 {\n\t\t\t\tout[outP] = byte(bitStream)\n\t\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\t\toutP += 2\n\t\t\t\tbitStream >>= 16\n\t\t\t\tbitCount -= 16\n\t\t\t}\n\t\t}\n\n\t\tcount := s.norm[charnum]\n\t\tcharnum++\n\t\tmax := (2*threshold - 1) - remaining\n\t\tif count < 0 {\n\t\t\tremaining += count\n\t\t} else {\n\t\t\tremaining -= count\n\t\t}\n\t\tcount++ // +1 for extra accuracy\n\t\tif count >= threshold {\n\t\t\tcount += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[\n\t\t}\n\t\tbitStream += uint32(count) << bitCount\n\t\tbitCount += nbBits\n\t\tif count < max {\n\t\t\tbitCount--\n\t\t}\n\n\t\tprevious0 = count == 1\n\t\tif remaining < 1 {\n\t\t\treturn errors.New(\"internal error: remaining<1\")\n\t\t}\n\t\tfor remaining < threshold {\n\t\t\tnbBits--\n\t\t\tthreshold >>= 1\n\t\t}\n\n\t\tif bitCount > 16 {\n\t\t\tout[outP] = byte(bitStream)\n\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\toutP += 2\n\t\t\tbitStream >>= 16\n\t\t\tbitCount -= 16\n\t\t}\n\t}\n\n\tout[outP] = byte(bitStream)\n\tout[outP+1] = byte(bitStream >> 8)\n\toutP += (bitCount + 7) / 8\n\n\tif charnum > s.symbolLen {\n\t\treturn errors.New(\"internal error: charnum > s.symbolLen\")\n\t}\n\ts.Out = out[:outP]\n\treturn nil\n}\n\n// symbolTransform contains the state transform for a symbol.\ntype symbolTransform struct {\n\tdeltaFindState int32\n\tdeltaNbBits    uint32\n}\n\n// String prints values as a human readable string.\nfunc (s symbolTransform) String() string {\n\treturn fmt.Sprintf(\"dnbits: %08x, fs:%d\", s.deltaNbBits, s.deltaFindState)\n}\n\n// cTable contains tables used for compression.\ntype cTable struct {\n\ttableSymbol []byte\n\tstateTable  []uint16\n\tsymbolTT    []symbolTransform\n}\n\n// allocCtable will allocate tables needed for compression.\n// If existing tables a re big enough, they are simply re-used.\nfunc (s *Scratch) allocCtable() {\n\ttableSize := 1 << s.actualTableLog\n\t// get tableSymbol that is big enough.\n\tif cap(s.ct.tableSymbol) < tableSize {\n\t\ts.ct.tableSymbol = make([]byte, tableSize)\n\t}\n\ts.ct.tableSymbol = s.ct.tableSymbol[:tableSize]\n\n\tctSize := tableSize\n\tif cap(s.ct.stateTable) < ctSize {\n\t\ts.ct.stateTable = make([]uint16, ctSize)\n\t}\n\ts.ct.stateTable = s.ct.stateTable[:ctSize]\n\n\tif cap(s.ct.symbolTT) < 256 {\n\t\ts.ct.symbolTT = make([]symbolTransform, 256)\n\t}\n\ts.ct.symbolTT = s.ct.symbolTT[:256]\n}\n\n// buildCTable will populate the compression table so it is ready to be used.\nfunc (s *Scratch) buildCTable() error {\n\ttableSize := uint32(1 << s.actualTableLog)\n\thighThreshold := tableSize - 1\n\tvar cumul [maxSymbolValue + 2]int16\n\n\ts.allocCtable()\n\ttableSymbol := s.ct.tableSymbol[:tableSize]\n\t// symbol start positions\n\t{\n\t\tcumul[0] = 0\n\t\tfor ui, v := range s.norm[:s.symbolLen-1] {\n\t\t\tu := byte(ui) // one less than reference\n\t\t\tif v == -1 {\n\t\t\t\t// Low proba symbol\n\t\t\t\tcumul[u+1] = cumul[u] + 1\n\t\t\t\ttableSymbol[highThreshold] = u\n\t\t\t\thighThreshold--\n\t\t\t} else {\n\t\t\t\tcumul[u+1] = cumul[u] + v\n\t\t\t}\n\t\t}\n\t\t// Encode last symbol separately to avoid overflowing u\n\t\tu := int(s.symbolLen - 1)\n\t\tv := s.norm[s.symbolLen-1]\n\t\tif v == -1 {\n\t\t\t// Low proba symbol\n\t\t\tcumul[u+1] = cumul[u] + 1\n\t\t\ttableSymbol[highThreshold] = byte(u)\n\t\t\thighThreshold--\n\t\t} else {\n\t\t\tcumul[u+1] = cumul[u] + v\n\t\t}\n\t\tif uint32(cumul[s.symbolLen]) != tableSize {\n\t\t\treturn fmt.Errorf(\"internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)\", cumul[s.symbolLen], tableSize)\n\t\t}\n\t\tcumul[s.symbolLen] = int16(tableSize) + 1\n\t}\n\t// Spread symbols\n\ts.zeroBits = false\n\t{\n\t\tstep := tableStep(tableSize)\n\t\ttableMask := tableSize - 1\n\t\tvar position uint32\n\t\t// if any symbol > largeLimit, we may have 0 bits output.\n\t\tlargeLimit := int16(1 << (s.actualTableLog - 1))\n\t\tfor ui, v := range s.norm[:s.symbolLen] {\n\t\t\tsymbol := byte(ui)\n\t\t\tif v > largeLimit {\n\t\t\t\ts.zeroBits = true\n\t\t\t}\n\t\t\tfor range v {\n\t\t\t\ttableSymbol[position] = symbol\n\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\tfor position > highThreshold {\n\t\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\t} /* Low proba area */\n\t\t\t}\n\t\t}\n\n\t\t// Check if we have gone through all positions\n\t\tif position != 0 {\n\t\t\treturn errors.New(\"position!=0\")\n\t\t}\n\t}\n\n\t// Build table\n\ttable := s.ct.stateTable\n\t{\n\t\ttsi := int(tableSize)\n\t\tfor u, v := range tableSymbol {\n\t\t\t// TableU16 : sorted by symbol order; gives next state value\n\t\t\ttable[cumul[v]] = uint16(tsi + u)\n\t\t\tcumul[v]++\n\t\t}\n\t}\n\n\t// Build Symbol Transformation Table\n\t{\n\t\ttotal := int16(0)\n\t\tsymbolTT := s.ct.symbolTT[:s.symbolLen]\n\t\ttableLog := s.actualTableLog\n\t\ttl := (uint32(tableLog) << 16) - (1 << tableLog)\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tswitch v {\n\t\t\tcase 0:\n\t\t\tcase -1, 1:\n\t\t\t\tsymbolTT[i].deltaNbBits = tl\n\t\t\t\tsymbolTT[i].deltaFindState = int32(total - 1)\n\t\t\t\ttotal++\n\t\t\tdefault:\n\t\t\t\tmaxBitsOut := uint32(tableLog) - highBits(uint32(v-1))\n\t\t\t\tminStatePlus := uint32(v) << maxBitsOut\n\t\t\t\tsymbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus\n\t\t\t\tsymbolTT[i].deltaFindState = int32(total - v)\n\t\t\t\ttotal += v\n\t\t\t}\n\t\t}\n\t\tif total != int16(tableSize) {\n\t\t\treturn fmt.Errorf(\"total mismatch %d (got) != %d (want)\", total, tableSize)\n\t\t}\n\t}\n\treturn nil\n}\n\n// countSimple will create a simple histogram in s.count.\n// Returns the biggest count.\n// Does not update s.clearCount.\nfunc (s *Scratch) countSimple(in []byte) (max int) {\n\tfor _, v := range in {\n\t\ts.count[v]++\n\t}\n\tm, symlen := uint32(0), s.symbolLen\n\tfor i, v := range s.count[:] {\n\t\tif v == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif v > m {\n\t\t\tm = v\n\t\t}\n\t\tsymlen = uint16(i) + 1\n\t}\n\ts.symbolLen = symlen\n\treturn int(m)\n}\n\n// minTableLog provides the minimum logSize to safely represent a distribution.\nfunc (s *Scratch) minTableLog() uint8 {\n\tminBitsSrc := highBits(uint32(s.br.remain()-1)) + 1\n\tminBitsSymbols := highBits(uint32(s.symbolLen-1)) + 2\n\tif minBitsSrc < minBitsSymbols {\n\t\treturn uint8(minBitsSrc)\n\t}\n\treturn uint8(minBitsSymbols)\n}\n\n// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog\nfunc (s *Scratch) optimalTableLog() {\n\ttableLog := s.TableLog\n\tminBits := s.minTableLog()\n\tmaxBitsSrc := uint8(highBits(uint32(s.br.remain()-1))) - 2\n\tif maxBitsSrc < tableLog {\n\t\t// Accuracy can be reduced\n\t\ttableLog = maxBitsSrc\n\t}\n\tif minBits > tableLog {\n\t\ttableLog = minBits\n\t}\n\t// Need a minimum to safely represent all symbol values\n\tif tableLog < minTablelog {\n\t\ttableLog = minTablelog\n\t}\n\tif tableLog > maxTableLog {\n\t\ttableLog = maxTableLog\n\t}\n\ts.actualTableLog = tableLog\n}\n\nvar rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000}\n\n// normalizeCount will normalize the count of the symbols so\n// the total is equal to the table size.\nfunc (s *Scratch) normalizeCount() error {\n\tvar (\n\t\ttableLog          = s.actualTableLog\n\t\tscale             = 62 - uint64(tableLog)\n\t\tstep              = (1 << 62) / uint64(s.br.remain())\n\t\tvStep             = uint64(1) << (scale - 20)\n\t\tstillToDistribute = int16(1 << tableLog)\n\t\tlargest           int\n\t\tlargestP          int16\n\t\tlowThreshold      = (uint32)(s.br.remain() >> tableLog)\n\t)\n\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t// already handled\n\t\t// if (count[s] == s.length) return 0;   /* rle special case */\n\n\t\tif cnt == 0 {\n\t\t\ts.norm[i] = 0\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowThreshold {\n\t\t\ts.norm[i] = -1\n\t\t\tstillToDistribute--\n\t\t} else {\n\t\t\tproba := (int16)((uint64(cnt) * step) >> scale)\n\t\t\tif proba < 8 {\n\t\t\t\trestToBeat := vStep * uint64(rtbTable[proba])\n\t\t\t\tv := uint64(cnt)*step - (uint64(proba) << scale)\n\t\t\t\tif v > restToBeat {\n\t\t\t\t\tproba++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif proba > largestP {\n\t\t\t\tlargestP = proba\n\t\t\t\tlargest = i\n\t\t\t}\n\t\t\ts.norm[i] = proba\n\t\t\tstillToDistribute -= proba\n\t\t}\n\t}\n\n\tif -stillToDistribute >= (s.norm[largest] >> 1) {\n\t\t// corner case, need another normalization method\n\t\treturn s.normalizeCount2()\n\t}\n\ts.norm[largest] += stillToDistribute\n\treturn nil\n}\n\n// Secondary normalization method.\n// To be used when primary method fails.\nfunc (s *Scratch) normalizeCount2() error {\n\tconst notYetAssigned = -2\n\tvar (\n\t\tdistributed  uint32\n\t\ttotal        = uint32(s.br.remain())\n\t\ttableLog     = s.actualTableLog\n\t\tlowThreshold = total >> tableLog\n\t\tlowOne       = (total * 3) >> (tableLog + 1)\n\t)\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\tif cnt == 0 {\n\t\t\ts.norm[i] = 0\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowThreshold {\n\t\t\ts.norm[i] = -1\n\t\t\tdistributed++\n\t\t\ttotal -= cnt\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowOne {\n\t\t\ts.norm[i] = 1\n\t\t\tdistributed++\n\t\t\ttotal -= cnt\n\t\t\tcontinue\n\t\t}\n\t\ts.norm[i] = notYetAssigned\n\t}\n\ttoDistribute := (1 << tableLog) - distributed\n\n\tif (total / toDistribute) > lowOne {\n\t\t// risk of rounding to zero\n\t\tlowOne = (total * 3) / (toDistribute * 2)\n\t\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t\tif (s.norm[i] == notYetAssigned) && (cnt <= lowOne) {\n\t\t\t\ts.norm[i] = 1\n\t\t\t\tdistributed++\n\t\t\t\ttotal -= cnt\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\ttoDistribute = (1 << tableLog) - distributed\n\t}\n\tif distributed == uint32(s.symbolLen)+1 {\n\t\t// all values are pretty poor;\n\t\t//   probably incompressible data (should have already been detected);\n\t\t//   find max, then give all remaining points to max\n\t\tvar maxV int\n\t\tvar maxC uint32\n\t\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t\tif cnt > maxC {\n\t\t\t\tmaxV = i\n\t\t\t\tmaxC = cnt\n\t\t\t}\n\t\t}\n\t\ts.norm[maxV] += int16(toDistribute)\n\t\treturn nil\n\t}\n\n\tif total == 0 {\n\t\t// all of the symbols were low enough for the lowOne or lowThreshold\n\t\tfor i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) {\n\t\t\tif s.norm[i] > 0 {\n\t\t\t\ttoDistribute--\n\t\t\t\ts.norm[i]++\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tvar (\n\t\tvStepLog = 62 - uint64(tableLog)\n\t\tmid      = uint64((1 << (vStepLog - 1)) - 1)\n\t\trStep    = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining\n\t\ttmpTotal = mid\n\t)\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\tif s.norm[i] == notYetAssigned {\n\t\t\tvar (\n\t\t\t\tend    = tmpTotal + uint64(cnt)*rStep\n\t\t\t\tsStart = uint32(tmpTotal >> vStepLog)\n\t\t\t\tsEnd   = uint32(end >> vStepLog)\n\t\t\t\tweight = sEnd - sStart\n\t\t\t)\n\t\t\tif weight < 1 {\n\t\t\t\treturn errors.New(\"weight < 1\")\n\t\t\t}\n\t\t\ts.norm[i] = int16(weight)\n\t\t\ttmpTotal = end\n\t\t}\n\t}\n\treturn nil\n}\n\n// validateNorm validates the normalized histogram table.\nfunc (s *Scratch) validateNorm() (err error) {\n\tvar total int\n\tfor _, v := range s.norm[:s.symbolLen] {\n\t\tif v >= 0 {\n\t\t\ttotal += int(v)\n\t\t} else {\n\t\t\ttotal -= int(v)\n\t\t}\n\t}\n\tdefer func() {\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t\tfmt.Printf(\"selected TableLog: %d, Symbol length: %d\\n\", s.actualTableLog, s.symbolLen)\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tfmt.Printf(\"%3d: %5d -> %4d \\n\", i, s.count[i], v)\n\t\t}\n\t}()\n\tif total != (1 << s.actualTableLog) {\n\t\treturn fmt.Errorf(\"warning: Total == %d != %d\", total, 1<<s.actualTableLog)\n\t}\n\tfor i, v := range s.count[s.symbolLen:] {\n\t\tif v != 0 {\n\t\t\treturn fmt.Errorf(\"warning: Found symbol out of range, %d after cut\", i)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/decompress.go",
    "content": "package fse\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\nconst (\n\ttablelogAbsoluteMax = 15\n)\n\n// Decompress a block of data.\n// You can provide a scratch buffer to avoid allocations.\n// If nil is provided a temporary one will be allocated.\n// It is possible, but by no way guaranteed that corrupt data will\n// return an error.\n// It is up to the caller to verify integrity of the returned data.\n// Use a predefined Scratch to set maximum acceptable output size.\nfunc Decompress(b []byte, s *Scratch) ([]byte, error) {\n\ts, err := s.prepare(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ts.Out = s.Out[:0]\n\terr = s.readNCount()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = s.buildDtable()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = s.decompress()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn s.Out, nil\n}\n\n// readNCount will read the symbol distribution so decoding tables can be constructed.\nfunc (s *Scratch) readNCount() error {\n\tvar (\n\t\tcharnum   uint16\n\t\tprevious0 bool\n\t\tb         = &s.br\n\t)\n\tiend := b.remain()\n\tif iend < 4 {\n\t\treturn errors.New(\"input too small\")\n\t}\n\tbitStream := b.Uint32()\n\tnbBits := uint((bitStream & 0xF) + minTablelog) // extract tableLog\n\tif nbBits > tablelogAbsoluteMax {\n\t\treturn errors.New(\"tableLog too large\")\n\t}\n\tbitStream >>= 4\n\tbitCount := uint(4)\n\n\ts.actualTableLog = uint8(nbBits)\n\tremaining := int32((1 << nbBits) + 1)\n\tthreshold := int32(1 << nbBits)\n\tgotTotal := int32(0)\n\tnbBits++\n\n\tfor remaining > 1 {\n\t\tif previous0 {\n\t\t\tn0 := charnum\n\t\t\tfor (bitStream & 0xFFFF) == 0xFFFF {\n\t\t\t\tn0 += 24\n\t\t\t\tif b.off < iend-5 {\n\t\t\t\t\tb.advance(2)\n\t\t\t\t\tbitStream = b.Uint32() >> bitCount\n\t\t\t\t} else {\n\t\t\t\t\tbitStream >>= 16\n\t\t\t\t\tbitCount += 16\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (bitStream & 3) == 3 {\n\t\t\t\tn0 += 3\n\t\t\t\tbitStream >>= 2\n\t\t\t\tbitCount += 2\n\t\t\t}\n\t\t\tn0 += uint16(bitStream & 3)\n\t\t\tbitCount += 2\n\t\t\tif n0 > maxSymbolValue {\n\t\t\t\treturn errors.New(\"maxSymbolValue too small\")\n\t\t\t}\n\t\t\tfor charnum < n0 {\n\t\t\t\ts.norm[charnum&0xff] = 0\n\t\t\t\tcharnum++\n\t\t\t}\n\n\t\t\tif b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 {\n\t\t\t\tb.advance(bitCount >> 3)\n\t\t\t\tbitCount &= 7\n\t\t\t\tbitStream = b.Uint32() >> bitCount\n\t\t\t} else {\n\t\t\t\tbitStream >>= 2\n\t\t\t}\n\t\t}\n\n\t\tmax := (2*(threshold) - 1) - (remaining)\n\t\tvar count int32\n\n\t\tif (int32(bitStream) & (threshold - 1)) < max {\n\t\t\tcount = int32(bitStream) & (threshold - 1)\n\t\t\tbitCount += nbBits - 1\n\t\t} else {\n\t\t\tcount = int32(bitStream) & (2*threshold - 1)\n\t\t\tif count >= threshold {\n\t\t\t\tcount -= max\n\t\t\t}\n\t\t\tbitCount += nbBits\n\t\t}\n\n\t\tcount-- // extra accuracy\n\t\tif count < 0 {\n\t\t\t// -1 means +1\n\t\t\tremaining += count\n\t\t\tgotTotal -= count\n\t\t} else {\n\t\t\tremaining -= count\n\t\t\tgotTotal += count\n\t\t}\n\t\ts.norm[charnum&0xff] = int16(count)\n\t\tcharnum++\n\t\tprevious0 = count == 0\n\t\tfor remaining < threshold {\n\t\t\tnbBits--\n\t\t\tthreshold >>= 1\n\t\t}\n\t\tif b.off <= iend-7 || b.off+int(bitCount>>3) <= iend-4 {\n\t\t\tb.advance(bitCount >> 3)\n\t\t\tbitCount &= 7\n\t\t} else {\n\t\t\tbitCount -= (uint)(8 * (len(b.b) - 4 - b.off))\n\t\t\tb.off = len(b.b) - 4\n\t\t}\n\t\tbitStream = b.Uint32() >> (bitCount & 31)\n\t}\n\ts.symbolLen = charnum\n\n\tif s.symbolLen <= 1 {\n\t\treturn fmt.Errorf(\"symbolLen (%d) too small\", s.symbolLen)\n\t}\n\tif s.symbolLen > maxSymbolValue+1 {\n\t\treturn fmt.Errorf(\"symbolLen (%d) too big\", s.symbolLen)\n\t}\n\tif remaining != 1 {\n\t\treturn fmt.Errorf(\"corruption detected (remaining %d != 1)\", remaining)\n\t}\n\tif bitCount > 32 {\n\t\treturn fmt.Errorf(\"corruption detected (bitCount %d > 32)\", bitCount)\n\t}\n\tif gotTotal != 1<<s.actualTableLog {\n\t\treturn fmt.Errorf(\"corruption detected (total %d != %d)\", gotTotal, 1<<s.actualTableLog)\n\t}\n\tb.advance((bitCount + 7) >> 3)\n\treturn nil\n}\n\n// decSymbol contains information about a state entry,\n// Including the state offset base, the output symbol and\n// the number of bits to read for the low part of the destination state.\ntype decSymbol struct {\n\tnewState uint16\n\tsymbol   uint8\n\tnbBits   uint8\n}\n\n// allocDtable will allocate decoding tables if they are not big enough.\nfunc (s *Scratch) allocDtable() {\n\ttableSize := 1 << s.actualTableLog\n\tif cap(s.decTable) < tableSize {\n\t\ts.decTable = make([]decSymbol, tableSize)\n\t}\n\ts.decTable = s.decTable[:tableSize]\n\n\tif cap(s.ct.tableSymbol) < 256 {\n\t\ts.ct.tableSymbol = make([]byte, 256)\n\t}\n\ts.ct.tableSymbol = s.ct.tableSymbol[:256]\n\n\tif cap(s.ct.stateTable) < 256 {\n\t\ts.ct.stateTable = make([]uint16, 256)\n\t}\n\ts.ct.stateTable = s.ct.stateTable[:256]\n}\n\n// buildDtable will build the decoding table.\nfunc (s *Scratch) buildDtable() error {\n\ttableSize := uint32(1 << s.actualTableLog)\n\thighThreshold := tableSize - 1\n\ts.allocDtable()\n\tsymbolNext := s.ct.stateTable[:256]\n\n\t// Init, lay down lowprob symbols\n\ts.zeroBits = false\n\t{\n\t\tlargeLimit := int16(1 << (s.actualTableLog - 1))\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tif v == -1 {\n\t\t\t\ts.decTable[highThreshold].symbol = uint8(i)\n\t\t\t\thighThreshold--\n\t\t\t\tsymbolNext[i] = 1\n\t\t\t} else {\n\t\t\t\tif v >= largeLimit {\n\t\t\t\t\ts.zeroBits = true\n\t\t\t\t}\n\t\t\t\tsymbolNext[i] = uint16(v)\n\t\t\t}\n\t\t}\n\t}\n\t// Spread symbols\n\t{\n\t\ttableMask := tableSize - 1\n\t\tstep := tableStep(tableSize)\n\t\tposition := uint32(0)\n\t\tfor ss, v := range s.norm[:s.symbolLen] {\n\t\t\tfor i := 0; i < int(v); i++ {\n\t\t\t\ts.decTable[position].symbol = uint8(ss)\n\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\tfor position > highThreshold {\n\t\t\t\t\t// lowprob area\n\t\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif position != 0 {\n\t\t\t// position must reach all cells once, otherwise normalizedCounter is incorrect\n\t\t\treturn errors.New(\"corrupted input (position != 0)\")\n\t\t}\n\t}\n\n\t// Build Decoding table\n\t{\n\t\ttableSize := uint16(1 << s.actualTableLog)\n\t\tfor u, v := range s.decTable {\n\t\t\tsymbol := v.symbol\n\t\t\tnextState := symbolNext[symbol]\n\t\t\tsymbolNext[symbol] = nextState + 1\n\t\t\tnBits := s.actualTableLog - byte(highBits(uint32(nextState)))\n\t\t\ts.decTable[u].nbBits = nBits\n\t\t\tnewState := (nextState << nBits) - tableSize\n\t\t\tif newState >= tableSize {\n\t\t\t\treturn fmt.Errorf(\"newState (%d) outside table size (%d)\", newState, tableSize)\n\t\t\t}\n\t\t\tif newState == uint16(u) && nBits == 0 {\n\t\t\t\t// Seems weird that this is possible with nbits > 0.\n\t\t\t\treturn fmt.Errorf(\"newState (%d) == oldState (%d) and no bits\", newState, u)\n\t\t\t}\n\t\t\ts.decTable[u].newState = newState\n\t\t}\n\t}\n\treturn nil\n}\n\n// decompress will decompress the bitstream.\n// If the buffer is over-read an error is returned.\nfunc (s *Scratch) decompress() error {\n\tbr := &s.bits\n\tif err := br.init(s.br.unread()); err != nil {\n\t\treturn err\n\t}\n\n\tvar s1, s2 decoder\n\t// Initialize and decode first state and symbol.\n\ts1.init(br, s.decTable, s.actualTableLog)\n\ts2.init(br, s.decTable, s.actualTableLog)\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tvar tmp = s.ct.tableSymbol[:256]\n\tvar off uint8\n\n\t// Main part\n\tif !s.zeroBits {\n\t\tfor br.off >= 8 {\n\t\t\tbr.fillFast()\n\t\t\ttmp[off+0] = s1.nextFast()\n\t\t\ttmp[off+1] = s2.nextFast()\n\t\t\tbr.fillFast()\n\t\t\ttmp[off+2] = s1.nextFast()\n\t\t\ttmp[off+3] = s2.nextFast()\n\t\t\toff += 4\n\t\t\t// When off is 0, we have overflowed and should write.\n\t\t\tif off == 0 {\n\t\t\t\ts.Out = append(s.Out, tmp...)\n\t\t\t\tif len(s.Out) >= s.DecompressLimit {\n\t\t\t\t\treturn fmt.Errorf(\"output size (%d) > DecompressLimit (%d)\", len(s.Out), s.DecompressLimit)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor br.off >= 8 {\n\t\t\tbr.fillFast()\n\t\t\ttmp[off+0] = s1.next()\n\t\t\ttmp[off+1] = s2.next()\n\t\t\tbr.fillFast()\n\t\t\ttmp[off+2] = s1.next()\n\t\t\ttmp[off+3] = s2.next()\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\ts.Out = append(s.Out, tmp...)\n\t\t\t\t// When off is 0, we have overflowed and should write.\n\t\t\t\tif len(s.Out) >= s.DecompressLimit {\n\t\t\t\t\treturn fmt.Errorf(\"output size (%d) > DecompressLimit (%d)\", len(s.Out), s.DecompressLimit)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\ts.Out = append(s.Out, tmp[:off]...)\n\n\t// Final bits, a bit more expensive check\n\tfor {\n\t\tif s1.finished() {\n\t\t\ts.Out = append(s.Out, s1.final(), s2.final())\n\t\t\tbreak\n\t\t}\n\t\tbr.fill()\n\t\ts.Out = append(s.Out, s1.next())\n\t\tif s2.finished() {\n\t\t\ts.Out = append(s.Out, s2.final(), s1.final())\n\t\t\tbreak\n\t\t}\n\t\ts.Out = append(s.Out, s2.next())\n\t\tif len(s.Out) >= s.DecompressLimit {\n\t\t\treturn fmt.Errorf(\"output size (%d) > DecompressLimit (%d)\", len(s.Out), s.DecompressLimit)\n\t\t}\n\t}\n\treturn br.close()\n}\n\n// decoder keeps track of the current state and updates it from the bitstream.\ntype decoder struct {\n\tstate uint16\n\tbr    *bitReader\n\tdt    []decSymbol\n}\n\n// init will initialize the decoder and read the first state from the stream.\nfunc (d *decoder) init(in *bitReader, dt []decSymbol, tableLog uint8) {\n\td.dt = dt\n\td.br = in\n\td.state = in.getBits(tableLog)\n}\n\n// next returns the next symbol and sets the next state.\n// At least tablelog bits must be available in the bit reader.\nfunc (d *decoder) next() uint8 {\n\tn := &d.dt[d.state]\n\tlowBits := d.br.getBits(n.nbBits)\n\td.state = n.newState + lowBits\n\treturn n.symbol\n}\n\n// finished returns true if all bits have been read from the bitstream\n// and the next state would require reading bits from the input.\nfunc (d *decoder) finished() bool {\n\treturn d.br.finished() && d.dt[d.state].nbBits > 0\n}\n\n// final returns the current state symbol without decoding the next.\nfunc (d *decoder) final() uint8 {\n\treturn d.dt[d.state].symbol\n}\n\n// nextFast returns the next symbol and sets the next state.\n// This can only be used if no symbols are 0 bits.\n// At least tablelog bits must be available in the bit reader.\nfunc (d *decoder) nextFast() uint8 {\n\tn := d.dt[d.state]\n\tlowBits := d.br.getBitsFast(n.nbBits)\n\td.state = n.newState + lowBits\n\treturn n.symbol\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/fse/fse.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\n// Package fse provides Finite State Entropy encoding and decoding.\n//\n// Finite State Entropy encoding provides a fast near-optimal symbol encoding/decoding\n// for byte blocks as implemented in zstd.\n//\n// See https://github.com/klauspost/compress/tree/master/fse for more information.\npackage fse\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math/bits\"\n)\n\nconst (\n\t/*!MEMORY_USAGE :\n\t *  Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.)\n\t *  Increasing memory usage improves compression ratio\n\t *  Reduced memory usage can improve speed, due to cache effect\n\t *  Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */\n\tmaxMemoryUsage     = 14\n\tdefaultMemoryUsage = 13\n\n\tmaxTableLog     = maxMemoryUsage - 2\n\tmaxTablesize    = 1 << maxTableLog\n\tdefaultTablelog = defaultMemoryUsage - 2\n\tminTablelog     = 5\n\tmaxSymbolValue  = 255\n)\n\nvar (\n\t// ErrIncompressible is returned when input is judged to be too hard to compress.\n\tErrIncompressible = errors.New(\"input is not compressible\")\n\n\t// ErrUseRLE is returned from the compressor when the input is a single byte value repeated.\n\tErrUseRLE = errors.New(\"input is single value repeated\")\n)\n\n// Scratch provides temporary storage for compression and decompression.\ntype Scratch struct {\n\t// Private\n\tcount    [maxSymbolValue + 1]uint32\n\tnorm     [maxSymbolValue + 1]int16\n\tbr       byteReader\n\tbits     bitReader\n\tbw       bitWriter\n\tct       cTable      // Compression tables.\n\tdecTable []decSymbol // Decompression table.\n\tmaxCount int         // count of the most probable symbol\n\n\t// Per block parameters.\n\t// These can be used to override compression parameters of the block.\n\t// Do not touch, unless you know what you are doing.\n\n\t// Out is output buffer.\n\t// If the scratch is re-used before the caller is done processing the output,\n\t// set this field to nil.\n\t// Otherwise the output buffer will be re-used for next Compression/Decompression step\n\t// and allocation will be avoided.\n\tOut []byte\n\n\t// DecompressLimit limits the maximum decoded size acceptable.\n\t// If > 0 decompression will stop when approximately this many bytes\n\t// has been decoded.\n\t// If 0, maximum size will be 2GB.\n\tDecompressLimit int\n\n\tsymbolLen      uint16 // Length of active part of the symbol table.\n\tactualTableLog uint8  // Selected tablelog.\n\tzeroBits       bool   // no bits has prob > 50%.\n\tclearCount     bool   // clear count\n\n\t// MaxSymbolValue will override the maximum symbol value of the next block.\n\tMaxSymbolValue uint8\n\n\t// TableLog will attempt to override the tablelog for the next block.\n\tTableLog uint8\n}\n\n// Histogram allows to populate the histogram and skip that step in the compression,\n// It otherwise allows to inspect the histogram when compression is done.\n// To indicate that you have populated the histogram call HistogramFinished\n// with the value of the highest populated symbol, as well as the number of entries\n// in the most populated entry. These are accepted at face value.\n// The returned slice will always be length 256.\nfunc (s *Scratch) Histogram() []uint32 {\n\treturn s.count[:]\n}\n\n// HistogramFinished can be called to indicate that the histogram has been populated.\n// maxSymbol is the index of the highest set symbol of the next data segment.\n// maxCount is the number of entries in the most populated entry.\n// These are accepted at face value.\nfunc (s *Scratch) HistogramFinished(maxSymbol uint8, maxCount int) {\n\ts.maxCount = maxCount\n\ts.symbolLen = uint16(maxSymbol) + 1\n\ts.clearCount = maxCount != 0\n}\n\n// prepare will prepare and allocate scratch tables used for both compression and decompression.\nfunc (s *Scratch) prepare(in []byte) (*Scratch, error) {\n\tif s == nil {\n\t\ts = &Scratch{}\n\t}\n\tif s.MaxSymbolValue == 0 {\n\t\ts.MaxSymbolValue = 255\n\t}\n\tif s.TableLog == 0 {\n\t\ts.TableLog = defaultTablelog\n\t}\n\tif s.TableLog > maxTableLog {\n\t\treturn nil, fmt.Errorf(\"tableLog (%d) > maxTableLog (%d)\", s.TableLog, maxTableLog)\n\t}\n\tif cap(s.Out) == 0 {\n\t\ts.Out = make([]byte, 0, len(in))\n\t}\n\tif s.clearCount && s.maxCount == 0 {\n\t\tfor i := range s.count {\n\t\t\ts.count[i] = 0\n\t\t}\n\t\ts.clearCount = false\n\t}\n\ts.br.init(in)\n\tif s.DecompressLimit == 0 {\n\t\t// Max size 2GB.\n\t\ts.DecompressLimit = (2 << 30) - 1\n\t}\n\n\treturn s, nil\n}\n\n// tableStep returns the next table index.\nfunc tableStep(tableSize uint32) uint32 {\n\treturn (tableSize >> 1) + (tableSize >> 3) + 3\n}\n\nfunc highBits(val uint32) (n uint32) {\n\treturn uint32(bits.Len32(val) - 1)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/gen.sh",
    "content": "#!/bin/sh\n\ncd s2/cmd/_s2sx/ || exit 1\ngo generate .\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/.gitignore",
    "content": "/huff0-fuzz.zip\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/README.md",
    "content": "# Huff0 entropy compression\r\n\r\nThis package provides Huff0 encoding and decoding as used in zstd.\r\n            \r\n[Huff0](https://github.com/Cyan4973/FiniteStateEntropy#new-generation-entropy-coders), \r\na Huffman codec designed for modern CPU, featuring OoO (Out of Order) operations on multiple ALU \r\n(Arithmetic Logic Unit), achieving extremely fast compression and decompression speeds.\r\n\r\nThis can be used for compressing input with a lot of similar input values to the smallest number of bytes.\r\nThis does not perform any multi-byte [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) as LZ coders,\r\nbut it can be used as a secondary step to compressors (like Snappy) that does not do entropy encoding. \r\n\r\n* [Godoc documentation](https://godoc.org/github.com/klauspost/compress/huff0)\r\n\r\n## News\r\n\r\nThis is used as part of the [zstandard](https://github.com/klauspost/compress/tree/master/zstd#zstd) compression and decompression package.\r\n\r\nThis ensures that most functionality is well tested.\r\n\r\n# Usage\r\n\r\nThis package provides a low level interface that allows to compress single independent blocks. \r\n\r\nEach block is separate, and there is no built in integrity checks. \r\nThis means that the caller should keep track of block sizes and also do checksums if needed.  \r\n\r\nCompressing a block is done via the [`Compress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress1X) and \r\n[`Compress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Compress4X) functions.\r\nYou must provide input and will receive the output and maybe an error.\r\n\r\nThese error values can be returned:\r\n\r\n| Error               | Description                                                                 |\r\n|---------------------|-----------------------------------------------------------------------------|\r\n| `<nil>`             | Everything ok, output is returned                                           |\r\n| `ErrIncompressible` | Returned when input is judged to be too hard to compress                    |\r\n| `ErrUseRLE`         | Returned from the compressor when the input is a single byte value repeated |\r\n| `ErrTooBig`         | Returned if the input block exceeds the maximum allowed size (128 Kib)      |\r\n| `(error)`           | An internal error occurred.                                                 |\r\n\r\n\r\nAs can be seen above some of there are errors that will be returned even under normal operation so it is important to handle these.\r\n\r\nTo reduce allocations you can provide a [`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object \r\nthat can be re-used for successive calls. Both compression and decompression accepts a `Scratch` object, and the same \r\nobject can be used for both.   \r\n\r\nBe aware, that when re-using a `Scratch` object that the *output* buffer is also re-used, so if you are still using this\r\nyou must set the `Out` field in the scratch to nil. The same buffer is used for compression and decompression output.\r\n\r\nThe `Scratch` object will retain state that allows to re-use previous tables for encoding and decoding.  \r\n\r\n## Tables and re-use\r\n\r\nHuff0 allows for reusing tables from the previous block to save space if that is expected to give better/faster results. \r\n\r\nThe Scratch object allows you to set a [`ReusePolicy`](https://godoc.org/github.com/klauspost/compress/huff0#ReusePolicy) \r\nthat controls this behaviour. See the documentation for details. This can be altered between each block.\r\n\r\nDo however note that this information is *not* stored in the output block and it is up to the users of the package to\r\nrecord whether [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable) should be called,\r\nbased on the boolean reported back from the CompressXX call. \r\n\r\nIf you want to store the table separate from the data, you can access them as `OutData` and `OutTable` on the \r\n[`Scratch`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch) object.\r\n\r\n## Decompressing\r\n\r\nThe first part of decoding is to initialize the decoding table through [`ReadTable`](https://godoc.org/github.com/klauspost/compress/huff0#ReadTable).\r\nThis will initialize the decoding tables. \r\nYou can supply the complete block to `ReadTable` and it will return the data part of the block \r\nwhich can be given to the decompressor. \r\n\r\nDecompressing is done by calling the [`Decompress1X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress1X) \r\nor [`Decompress4X`](https://godoc.org/github.com/klauspost/compress/huff0#Scratch.Decompress4X) function.\r\n\r\nFor concurrently decompressing content with a fixed table a stateless [`Decoder`](https://godoc.org/github.com/klauspost/compress/huff0#Decoder) can be requested which will remain correct as long as the scratch is unchanged. The capacity of the provided slice indicates the expected output size.\r\n\r\nYou must provide the output from the compression stage, at exactly the size you got back. If you receive an error back\r\nyour input was likely corrupted. \r\n\r\nIt is important to note that a successful decoding does *not* mean your output matches your original input. \r\nThere are no integrity checks, so relying on errors from the decompressor does not assure your data is valid.\r\n\r\n# Contributing\r\n\r\nContributions are always welcome. Be aware that adding public functions will require good justification and breaking \r\nchanges will likely not be accepted. If in doubt open an issue before writing the PR.\r\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/bitreader.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage huff0\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/klauspost/compress/internal/le\"\n)\n\n// bitReader reads a bitstream in reverse.\n// The last set bit indicates the start of the stream and is used\n// for aligning the input.\ntype bitReaderBytes struct {\n\tin       []byte\n\toff      uint // next byte to read is at in[off - 1]\n\tvalue    uint64\n\tbitsRead uint8\n}\n\n// init initializes and resets the bit reader.\nfunc (b *bitReaderBytes) init(in []byte) error {\n\tif len(in) < 1 {\n\t\treturn errors.New(\"corrupt stream: too short\")\n\t}\n\tb.in = in\n\tb.off = uint(len(in))\n\t// The highest bit of the last byte indicates where to start\n\tv := in[len(in)-1]\n\tif v == 0 {\n\t\treturn errors.New(\"corrupt stream, did not find end of stream\")\n\t}\n\tb.bitsRead = 64\n\tb.value = 0\n\tif len(in) >= 8 {\n\t\tb.fillFastStart()\n\t} else {\n\t\tb.fill()\n\t\tb.fill()\n\t}\n\tb.advance(8 - uint8(highBit32(uint32(v))))\n\treturn nil\n}\n\n// peekByteFast requires that at least one byte is requested every time.\n// There are no checks if the buffer is filled.\nfunc (b *bitReaderBytes) peekByteFast() uint8 {\n\tgot := uint8(b.value >> 56)\n\treturn got\n}\n\nfunc (b *bitReaderBytes) advance(n uint8) {\n\tb.bitsRead += n\n\tb.value <<= n & 63\n}\n\n// fillFast() will make sure at least 32 bits are available.\n// There must be at least 4 bytes available.\nfunc (b *bitReaderBytes) fillFast() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\n\t// 2 bounds checks.\n\tlow := le.Load32(b.in, b.off-4)\n\tb.value |= uint64(low) << (b.bitsRead - 32)\n\tb.bitsRead -= 32\n\tb.off -= 4\n}\n\n// fillFastStart() assumes the bitReaderBytes is empty and there is at least 8 bytes to read.\nfunc (b *bitReaderBytes) fillFastStart() {\n\t// Do single re-slice to avoid bounds checks.\n\tb.value = le.Load64(b.in, b.off-8)\n\tb.bitsRead = 0\n\tb.off -= 8\n}\n\n// fill() will make sure at least 32 bits are available.\nfunc (b *bitReaderBytes) fill() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\tif b.off >= 4 {\n\t\tlow := le.Load32(b.in, b.off-4)\n\t\tb.value |= uint64(low) << (b.bitsRead - 32)\n\t\tb.bitsRead -= 32\n\t\tb.off -= 4\n\t\treturn\n\t}\n\tfor b.off > 0 {\n\t\tb.value |= uint64(b.in[b.off-1]) << (b.bitsRead - 8)\n\t\tb.bitsRead -= 8\n\t\tb.off--\n\t}\n}\n\n// finished returns true if all bits have been read from the bit stream.\nfunc (b *bitReaderBytes) finished() bool {\n\treturn b.off == 0 && b.bitsRead >= 64\n}\n\nfunc (b *bitReaderBytes) remaining() uint {\n\treturn b.off*8 + uint(64-b.bitsRead)\n}\n\n// close the bitstream and returns an error if out-of-buffer reads occurred.\nfunc (b *bitReaderBytes) close() error {\n\t// Release reference.\n\tb.in = nil\n\tif b.remaining() > 0 {\n\t\treturn fmt.Errorf(\"corrupt input: %d bits remain on stream\", b.remaining())\n\t}\n\tif b.bitsRead > 64 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n\n// bitReaderShifted reads a bitstream in reverse.\n// The last set bit indicates the start of the stream and is used\n// for aligning the input.\ntype bitReaderShifted struct {\n\tin       []byte\n\toff      uint // next byte to read is at in[off - 1]\n\tvalue    uint64\n\tbitsRead uint8\n}\n\n// init initializes and resets the bit reader.\nfunc (b *bitReaderShifted) init(in []byte) error {\n\tif len(in) < 1 {\n\t\treturn errors.New(\"corrupt stream: too short\")\n\t}\n\tb.in = in\n\tb.off = uint(len(in))\n\t// The highest bit of the last byte indicates where to start\n\tv := in[len(in)-1]\n\tif v == 0 {\n\t\treturn errors.New(\"corrupt stream, did not find end of stream\")\n\t}\n\tb.bitsRead = 64\n\tb.value = 0\n\tif len(in) >= 8 {\n\t\tb.fillFastStart()\n\t} else {\n\t\tb.fill()\n\t\tb.fill()\n\t}\n\tb.advance(8 - uint8(highBit32(uint32(v))))\n\treturn nil\n}\n\n// peekBitsFast requires that at least one bit is requested every time.\n// There are no checks if the buffer is filled.\nfunc (b *bitReaderShifted) peekBitsFast(n uint8) uint16 {\n\treturn uint16(b.value >> ((64 - n) & 63))\n}\n\nfunc (b *bitReaderShifted) advance(n uint8) {\n\tb.bitsRead += n\n\tb.value <<= n & 63\n}\n\n// fillFast() will make sure at least 32 bits are available.\n// There must be at least 4 bytes available.\nfunc (b *bitReaderShifted) fillFast() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\n\tlow := le.Load32(b.in, b.off-4)\n\tb.value |= uint64(low) << ((b.bitsRead - 32) & 63)\n\tb.bitsRead -= 32\n\tb.off -= 4\n}\n\n// fillFastStart() assumes the bitReaderShifted is empty and there is at least 8 bytes to read.\nfunc (b *bitReaderShifted) fillFastStart() {\n\tb.value = le.Load64(b.in, b.off-8)\n\tb.bitsRead = 0\n\tb.off -= 8\n}\n\n// fill() will make sure at least 32 bits are available.\nfunc (b *bitReaderShifted) fill() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\tif b.off > 4 {\n\t\tlow := le.Load32(b.in, b.off-4)\n\t\tb.value |= uint64(low) << ((b.bitsRead - 32) & 63)\n\t\tb.bitsRead -= 32\n\t\tb.off -= 4\n\t\treturn\n\t}\n\tfor b.off > 0 {\n\t\tb.value |= uint64(b.in[b.off-1]) << ((b.bitsRead - 8) & 63)\n\t\tb.bitsRead -= 8\n\t\tb.off--\n\t}\n}\n\nfunc (b *bitReaderShifted) remaining() uint {\n\treturn b.off*8 + uint(64-b.bitsRead)\n}\n\n// close the bitstream and returns an error if out-of-buffer reads occurred.\nfunc (b *bitReaderShifted) close() error {\n\t// Release reference.\n\tb.in = nil\n\tif b.remaining() > 0 {\n\t\treturn fmt.Errorf(\"corrupt input: %d bits remain on stream\", b.remaining())\n\t}\n\tif b.bitsRead > 64 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/bitwriter.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage huff0\n\n// bitWriter will write bits.\n// First bit will be LSB of the first byte of output.\ntype bitWriter struct {\n\tbitContainer uint64\n\tnBits        uint8\n\tout          []byte\n}\n\n// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated.\n// It will not check if there is space for them, so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits16Clean(value uint16, bits uint8) {\n\tb.bitContainer |= uint64(value) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// encSymbol will add up to 16 bits. value may not contain more set bits than indicated.\n// It will not check if there is space for them, so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) encSymbol(ct cTable, symbol byte) {\n\tenc := ct[symbol]\n\tb.bitContainer |= uint64(enc.val) << (b.nBits & 63)\n\tif false {\n\t\tif enc.nBits == 0 {\n\t\t\tpanic(\"nbits 0\")\n\t\t}\n\t}\n\tb.nBits += enc.nBits\n}\n\n// encTwoSymbols will add up to 32 bits. value may not contain more set bits than indicated.\n// It will not check if there is space for them, so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) encTwoSymbols(ct cTable, av, bv byte) {\n\tencA := ct[av]\n\tencB := ct[bv]\n\tsh := b.nBits & 63\n\tcombined := uint64(encA.val) | (uint64(encB.val) << (encA.nBits & 63))\n\tb.bitContainer |= combined << sh\n\tif false {\n\t\tif encA.nBits == 0 {\n\t\t\tpanic(\"nbitsA 0\")\n\t\t}\n\t\tif encB.nBits == 0 {\n\t\t\tpanic(\"nbitsB 0\")\n\t\t}\n\t}\n\tb.nBits += encA.nBits + encB.nBits\n}\n\n// encFourSymbols adds up to 32 bits from four symbols.\n// It will not check if there is space for them,\n// so the caller must ensure that b has been flushed recently.\nfunc (b *bitWriter) encFourSymbols(encA, encB, encC, encD cTableEntry) {\n\tbitsA := encA.nBits\n\tbitsB := bitsA + encB.nBits\n\tbitsC := bitsB + encC.nBits\n\tbitsD := bitsC + encD.nBits\n\tcombined := uint64(encA.val) |\n\t\t(uint64(encB.val) << (bitsA & 63)) |\n\t\t(uint64(encC.val) << (bitsB & 63)) |\n\t\t(uint64(encD.val) << (bitsC & 63))\n\tb.bitContainer |= combined << (b.nBits & 63)\n\tb.nBits += bitsD\n}\n\n// flush32 will flush out, so there are at least 32 bits available for writing.\nfunc (b *bitWriter) flush32() {\n\tif b.nBits < 32 {\n\t\treturn\n\t}\n\tb.out = append(b.out,\n\t\tbyte(b.bitContainer),\n\t\tbyte(b.bitContainer>>8),\n\t\tbyte(b.bitContainer>>16),\n\t\tbyte(b.bitContainer>>24))\n\tb.nBits -= 32\n\tb.bitContainer >>= 32\n}\n\n// flushAlign will flush remaining full bytes and align to next byte boundary.\nfunc (b *bitWriter) flushAlign() {\n\tnbBytes := (b.nBits + 7) >> 3\n\tfor i := range nbBytes {\n\t\tb.out = append(b.out, byte(b.bitContainer>>(i*8)))\n\t}\n\tb.nBits = 0\n\tb.bitContainer = 0\n}\n\n// close will write the alignment bit and write the final byte(s)\n// to the output.\nfunc (b *bitWriter) close() {\n\t// End mark\n\tb.addBits16Clean(1, 1)\n\t// flush until next byte.\n\tb.flushAlign()\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/compress.go",
    "content": "package huff0\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"runtime\"\n\t\"sync\"\n)\n\n// Compress1X will compress the input.\n// The output can be decoded using Decompress1X.\n// Supply a Scratch object. The scratch object contains state about re-use,\n// So when sharing across independent encodes, be sure to set the re-use policy.\nfunc Compress1X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) {\n\ts, err = s.prepare(in)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\treturn compress(in, s, s.compress1X)\n}\n\n// Compress4X will compress the input. The input is split into 4 independent blocks\n// and compressed similar to Compress1X.\n// The output can be decoded using Decompress4X.\n// Supply a Scratch object. The scratch object contains state about re-use,\n// So when sharing across independent encodes, be sure to set the re-use policy.\nfunc Compress4X(in []byte, s *Scratch) (out []byte, reUsed bool, err error) {\n\ts, err = s.prepare(in)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\tif false {\n\t\t// TODO: compress4Xp only slightly faster.\n\t\tconst parallelThreshold = 8 << 10\n\t\tif len(in) < parallelThreshold || runtime.GOMAXPROCS(0) == 1 {\n\t\t\treturn compress(in, s, s.compress4X)\n\t\t}\n\t\treturn compress(in, s, s.compress4Xp)\n\t}\n\treturn compress(in, s, s.compress4X)\n}\n\nfunc compress(in []byte, s *Scratch, compressor func(src []byte) ([]byte, error)) (out []byte, reUsed bool, err error) {\n\t// Nuke previous table if we cannot reuse anyway.\n\tif s.Reuse == ReusePolicyNone {\n\t\ts.prevTable = s.prevTable[:0]\n\t}\n\n\t// Create histogram, if none was provided.\n\tmaxCount := s.maxCount\n\tvar canReuse = false\n\tif maxCount == 0 {\n\t\tmaxCount, canReuse = s.countSimple(in)\n\t} else {\n\t\tcanReuse = s.canUseTable(s.prevTable)\n\t}\n\n\t// We want the output size to be less than this:\n\twantSize := len(in)\n\tif s.WantLogLess > 0 {\n\t\twantSize -= wantSize >> s.WantLogLess\n\t}\n\n\t// Reset for next run.\n\ts.clearCount = true\n\ts.maxCount = 0\n\tif maxCount >= len(in) {\n\t\tif maxCount > len(in) {\n\t\t\treturn nil, false, fmt.Errorf(\"maxCount (%d) > length (%d)\", maxCount, len(in))\n\t\t}\n\t\tif len(in) == 1 {\n\t\t\treturn nil, false, ErrIncompressible\n\t\t}\n\t\t// One symbol, use RLE\n\t\treturn nil, false, ErrUseRLE\n\t}\n\tif maxCount == 1 || maxCount < (len(in)>>7) {\n\t\t// Each symbol present maximum once or too well distributed.\n\t\treturn nil, false, ErrIncompressible\n\t}\n\tif s.Reuse == ReusePolicyMust && !canReuse {\n\t\t// We must reuse, but we can't.\n\t\treturn nil, false, ErrIncompressible\n\t}\n\tif (s.Reuse == ReusePolicyPrefer || s.Reuse == ReusePolicyMust) && canReuse {\n\t\tkeepTable := s.cTable\n\t\tkeepTL := s.actualTableLog\n\t\ts.cTable = s.prevTable\n\t\ts.actualTableLog = s.prevTableLog\n\t\ts.Out, err = compressor(in)\n\t\ts.cTable = keepTable\n\t\ts.actualTableLog = keepTL\n\t\tif err == nil && len(s.Out) < wantSize {\n\t\t\ts.OutData = s.Out\n\t\t\treturn s.Out, true, nil\n\t\t}\n\t\tif s.Reuse == ReusePolicyMust {\n\t\t\treturn nil, false, ErrIncompressible\n\t\t}\n\t\t// Do not attempt to re-use later.\n\t\ts.prevTable = s.prevTable[:0]\n\t}\n\n\t// Calculate new table.\n\terr = s.buildCTable()\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\n\tif false && !s.canUseTable(s.cTable) {\n\t\tpanic(\"invalid table generated\")\n\t}\n\n\tif s.Reuse == ReusePolicyAllow && canReuse {\n\t\thSize := len(s.Out)\n\t\toldSize := s.prevTable.estimateSize(s.count[:s.symbolLen])\n\t\tnewSize := s.cTable.estimateSize(s.count[:s.symbolLen])\n\t\tif oldSize <= hSize+newSize || hSize+12 >= wantSize {\n\t\t\t// Retain cTable even if we re-use.\n\t\t\tkeepTable := s.cTable\n\t\t\tkeepTL := s.actualTableLog\n\n\t\t\ts.cTable = s.prevTable\n\t\t\ts.actualTableLog = s.prevTableLog\n\t\t\ts.Out, err = compressor(in)\n\n\t\t\t// Restore ctable.\n\t\t\ts.cTable = keepTable\n\t\t\ts.actualTableLog = keepTL\n\t\t\tif err != nil {\n\t\t\t\treturn nil, false, err\n\t\t\t}\n\t\t\tif len(s.Out) >= wantSize {\n\t\t\t\treturn nil, false, ErrIncompressible\n\t\t\t}\n\t\t\ts.OutData = s.Out\n\t\t\treturn s.Out, true, nil\n\t\t}\n\t}\n\n\t// Use new table\n\terr = s.cTable.write(s)\n\tif err != nil {\n\t\ts.OutTable = nil\n\t\treturn nil, false, err\n\t}\n\ts.OutTable = s.Out\n\n\t// Compress using new table\n\ts.Out, err = compressor(in)\n\tif err != nil {\n\t\ts.OutTable = nil\n\t\treturn nil, false, err\n\t}\n\tif len(s.Out) >= wantSize {\n\t\ts.OutTable = nil\n\t\treturn nil, false, ErrIncompressible\n\t}\n\t// Move current table into previous.\n\ts.prevTable, s.prevTableLog, s.cTable = s.cTable, s.actualTableLog, s.prevTable[:0]\n\ts.OutData = s.Out[len(s.OutTable):]\n\treturn s.Out, false, nil\n}\n\n// EstimateSizes will estimate the data sizes\nfunc EstimateSizes(in []byte, s *Scratch) (tableSz, dataSz, reuseSz int, err error) {\n\ts, err = s.prepare(in)\n\tif err != nil {\n\t\treturn 0, 0, 0, err\n\t}\n\n\t// Create histogram, if none was provided.\n\ttableSz, dataSz, reuseSz = -1, -1, -1\n\tmaxCount := s.maxCount\n\tvar canReuse = false\n\tif maxCount == 0 {\n\t\tmaxCount, canReuse = s.countSimple(in)\n\t} else {\n\t\tcanReuse = s.canUseTable(s.prevTable)\n\t}\n\n\t// We want the output size to be less than this:\n\twantSize := len(in)\n\tif s.WantLogLess > 0 {\n\t\twantSize -= wantSize >> s.WantLogLess\n\t}\n\n\t// Reset for next run.\n\ts.clearCount = true\n\ts.maxCount = 0\n\tif maxCount >= len(in) {\n\t\tif maxCount > len(in) {\n\t\t\treturn 0, 0, 0, fmt.Errorf(\"maxCount (%d) > length (%d)\", maxCount, len(in))\n\t\t}\n\t\tif len(in) == 1 {\n\t\t\treturn 0, 0, 0, ErrIncompressible\n\t\t}\n\t\t// One symbol, use RLE\n\t\treturn 0, 0, 0, ErrUseRLE\n\t}\n\tif maxCount == 1 || maxCount < (len(in)>>7) {\n\t\t// Each symbol present maximum once or too well distributed.\n\t\treturn 0, 0, 0, ErrIncompressible\n\t}\n\n\t// Calculate new table.\n\terr = s.buildCTable()\n\tif err != nil {\n\t\treturn 0, 0, 0, err\n\t}\n\n\tif false && !s.canUseTable(s.cTable) {\n\t\tpanic(\"invalid table generated\")\n\t}\n\n\ttableSz, err = s.cTable.estTableSize(s)\n\tif err != nil {\n\t\treturn 0, 0, 0, err\n\t}\n\tif canReuse {\n\t\treuseSz = s.prevTable.estimateSize(s.count[:s.symbolLen])\n\t}\n\tdataSz = s.cTable.estimateSize(s.count[:s.symbolLen])\n\n\t// Restore\n\treturn tableSz, dataSz, reuseSz, nil\n}\n\nfunc (s *Scratch) compress1X(src []byte) ([]byte, error) {\n\treturn s.compress1xDo(s.Out, src), nil\n}\n\nfunc (s *Scratch) compress1xDo(dst, src []byte) []byte {\n\tvar bw = bitWriter{out: dst}\n\n\t// N is length divisible by 4.\n\tn := len(src)\n\tn -= n & 3\n\tcTable := s.cTable[:256]\n\n\t// Encode last bytes.\n\tfor i := len(src) & 3; i > 0; i-- {\n\t\tbw.encSymbol(cTable, src[n+i-1])\n\t}\n\tn -= 4\n\tif s.actualTableLog <= 8 {\n\t\tfor ; n >= 0; n -= 4 {\n\t\t\ttmp := src[n : n+4]\n\t\t\t// tmp should be len 4\n\t\t\tbw.flush32()\n\t\t\tbw.encFourSymbols(cTable[tmp[3]], cTable[tmp[2]], cTable[tmp[1]], cTable[tmp[0]])\n\t\t}\n\t} else {\n\t\tfor ; n >= 0; n -= 4 {\n\t\t\ttmp := src[n : n+4]\n\t\t\t// tmp should be len 4\n\t\t\tbw.flush32()\n\t\t\tbw.encTwoSymbols(cTable, tmp[3], tmp[2])\n\t\t\tbw.flush32()\n\t\t\tbw.encTwoSymbols(cTable, tmp[1], tmp[0])\n\t\t}\n\t}\n\tbw.close()\n\treturn bw.out\n}\n\nvar sixZeros [6]byte\n\nfunc (s *Scratch) compress4X(src []byte) ([]byte, error) {\n\tif len(src) < 12 {\n\t\treturn nil, ErrIncompressible\n\t}\n\tsegmentSize := (len(src) + 3) / 4\n\n\t// Add placeholder for output length\n\toffsetIdx := len(s.Out)\n\ts.Out = append(s.Out, sixZeros[:]...)\n\n\tfor i := range 4 {\n\t\ttoDo := src\n\t\tif len(toDo) > segmentSize {\n\t\t\ttoDo = toDo[:segmentSize]\n\t\t}\n\t\tsrc = src[len(toDo):]\n\n\t\tidx := len(s.Out)\n\t\ts.Out = s.compress1xDo(s.Out, toDo)\n\t\tif len(s.Out)-idx > math.MaxUint16 {\n\t\t\t// We cannot store the size in the jump table\n\t\t\treturn nil, ErrIncompressible\n\t\t}\n\t\t// Write compressed length as little endian before block.\n\t\tif i < 3 {\n\t\t\t// Last length is not written.\n\t\t\tlength := len(s.Out) - idx\n\t\t\ts.Out[i*2+offsetIdx] = byte(length)\n\t\t\ts.Out[i*2+offsetIdx+1] = byte(length >> 8)\n\t\t}\n\t}\n\n\treturn s.Out, nil\n}\n\n// compress4Xp will compress 4 streams using separate goroutines.\nfunc (s *Scratch) compress4Xp(src []byte) ([]byte, error) {\n\tif len(src) < 12 {\n\t\treturn nil, ErrIncompressible\n\t}\n\t// Add placeholder for output length\n\ts.Out = s.Out[:6]\n\n\tsegmentSize := (len(src) + 3) / 4\n\tvar wg sync.WaitGroup\n\twg.Add(4)\n\tfor i := range 4 {\n\t\ttoDo := src\n\t\tif len(toDo) > segmentSize {\n\t\t\ttoDo = toDo[:segmentSize]\n\t\t}\n\t\tsrc = src[len(toDo):]\n\n\t\t// Separate goroutine for each block.\n\t\tgo func(i int) {\n\t\t\ts.tmpOut[i] = s.compress1xDo(s.tmpOut[i][:0], toDo)\n\t\t\twg.Done()\n\t\t}(i)\n\t}\n\twg.Wait()\n\tfor i := range 4 {\n\t\to := s.tmpOut[i]\n\t\tif len(o) > math.MaxUint16 {\n\t\t\t// We cannot store the size in the jump table\n\t\t\treturn nil, ErrIncompressible\n\t\t}\n\t\t// Write compressed length as little endian before block.\n\t\tif i < 3 {\n\t\t\t// Last length is not written.\n\t\t\ts.Out[i*2] = byte(len(o))\n\t\t\ts.Out[i*2+1] = byte(len(o) >> 8)\n\t\t}\n\n\t\t// Write output.\n\t\ts.Out = append(s.Out, o...)\n\t}\n\treturn s.Out, nil\n}\n\n// countSimple will create a simple histogram in s.count.\n// Returns the biggest count.\n// Does not update s.clearCount.\nfunc (s *Scratch) countSimple(in []byte) (max int, reuse bool) {\n\treuse = true\n\t_ = s.count // Assert that s != nil to speed up the following loop.\n\tfor _, v := range in {\n\t\ts.count[v]++\n\t}\n\tm := uint32(0)\n\tif len(s.prevTable) > 0 {\n\t\tfor i, v := range s.count[:] {\n\t\t\tif v == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif v > m {\n\t\t\t\tm = v\n\t\t\t}\n\t\t\ts.symbolLen = uint16(i) + 1\n\t\t\tif i >= len(s.prevTable) {\n\t\t\t\treuse = false\n\t\t\t} else if s.prevTable[i].nBits == 0 {\n\t\t\t\treuse = false\n\t\t\t}\n\t\t}\n\t\treturn int(m), reuse\n\t}\n\tfor i, v := range s.count[:] {\n\t\tif v == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif v > m {\n\t\t\tm = v\n\t\t}\n\t\ts.symbolLen = uint16(i) + 1\n\t}\n\treturn int(m), false\n}\n\nfunc (s *Scratch) canUseTable(c cTable) bool {\n\tif len(c) < int(s.symbolLen) {\n\t\treturn false\n\t}\n\tfor i, v := range s.count[:s.symbolLen] {\n\t\tif v != 0 && c[i].nBits == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n//lint:ignore U1000 used for debugging\nfunc (s *Scratch) validateTable(c cTable) bool {\n\tif len(c) < int(s.symbolLen) {\n\t\treturn false\n\t}\n\tfor i, v := range s.count[:s.symbolLen] {\n\t\tif v != 0 {\n\t\t\tif c[i].nBits == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif c[i].nBits > s.actualTableLog {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// minTableLog provides the minimum logSize to safely represent a distribution.\nfunc (s *Scratch) minTableLog() uint8 {\n\tminBitsSrc := highBit32(uint32(s.srcLen)) + 1\n\tminBitsSymbols := highBit32(uint32(s.symbolLen-1)) + 2\n\tif minBitsSrc < minBitsSymbols {\n\t\treturn uint8(minBitsSrc)\n\t}\n\treturn uint8(minBitsSymbols)\n}\n\n// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog\nfunc (s *Scratch) optimalTableLog() {\n\ttableLog := s.TableLog\n\tminBits := s.minTableLog()\n\tmaxBitsSrc := uint8(highBit32(uint32(s.srcLen-1))) - 1\n\tif maxBitsSrc < tableLog {\n\t\t// Accuracy can be reduced\n\t\ttableLog = maxBitsSrc\n\t}\n\tif minBits > tableLog {\n\t\ttableLog = minBits\n\t}\n\t// Need a minimum to safely represent all symbol values\n\tif tableLog < minTablelog {\n\t\ttableLog = minTablelog\n\t}\n\tif tableLog > tableLogMax {\n\t\ttableLog = tableLogMax\n\t}\n\ts.actualTableLog = tableLog\n}\n\ntype cTableEntry struct {\n\tval   uint16\n\tnBits uint8\n\t// We have 8 bits extra\n}\n\nconst huffNodesMask = huffNodesLen - 1\n\nfunc (s *Scratch) buildCTable() error {\n\ts.optimalTableLog()\n\ts.huffSort()\n\tif cap(s.cTable) < maxSymbolValue+1 {\n\t\ts.cTable = make([]cTableEntry, s.symbolLen, maxSymbolValue+1)\n\t} else {\n\t\ts.cTable = s.cTable[:s.symbolLen]\n\t\tfor i := range s.cTable {\n\t\t\ts.cTable[i] = cTableEntry{}\n\t\t}\n\t}\n\n\tvar startNode = int16(s.symbolLen)\n\tnonNullRank := s.symbolLen - 1\n\n\tnodeNb := startNode\n\thuffNode := s.nodes[1 : huffNodesLen+1]\n\n\t// This overlays the slice above, but allows \"-1\" index lookups.\n\t// Different from reference implementation.\n\thuffNode0 := s.nodes[0 : huffNodesLen+1]\n\n\tfor huffNode[nonNullRank].count() == 0 {\n\t\tnonNullRank--\n\t}\n\n\tlowS := int16(nonNullRank)\n\tnodeRoot := nodeNb + lowS - 1\n\tlowN := nodeNb\n\thuffNode[nodeNb].setCount(huffNode[lowS].count() + huffNode[lowS-1].count())\n\thuffNode[lowS].setParent(nodeNb)\n\thuffNode[lowS-1].setParent(nodeNb)\n\tnodeNb++\n\tlowS -= 2\n\tfor n := nodeNb; n <= nodeRoot; n++ {\n\t\thuffNode[n].setCount(1 << 30)\n\t}\n\t// fake entry, strong barrier\n\thuffNode0[0].setCount(1 << 31)\n\n\t// create parents\n\tfor nodeNb <= nodeRoot {\n\t\tvar n1, n2 int16\n\t\tif huffNode0[lowS+1].count() < huffNode0[lowN+1].count() {\n\t\t\tn1 = lowS\n\t\t\tlowS--\n\t\t} else {\n\t\t\tn1 = lowN\n\t\t\tlowN++\n\t\t}\n\t\tif huffNode0[lowS+1].count() < huffNode0[lowN+1].count() {\n\t\t\tn2 = lowS\n\t\t\tlowS--\n\t\t} else {\n\t\t\tn2 = lowN\n\t\t\tlowN++\n\t\t}\n\n\t\thuffNode[nodeNb].setCount(huffNode0[n1+1].count() + huffNode0[n2+1].count())\n\t\thuffNode0[n1+1].setParent(nodeNb)\n\t\thuffNode0[n2+1].setParent(nodeNb)\n\t\tnodeNb++\n\t}\n\n\t// distribute weights (unlimited tree height)\n\thuffNode[nodeRoot].setNbBits(0)\n\tfor n := nodeRoot - 1; n >= startNode; n-- {\n\t\thuffNode[n].setNbBits(huffNode[huffNode[n].parent()].nbBits() + 1)\n\t}\n\tfor n := uint16(0); n <= nonNullRank; n++ {\n\t\thuffNode[n].setNbBits(huffNode[huffNode[n].parent()].nbBits() + 1)\n\t}\n\ts.actualTableLog = s.setMaxHeight(int(nonNullRank))\n\tmaxNbBits := s.actualTableLog\n\n\t// fill result into tree (val, nbBits)\n\tif maxNbBits > tableLogMax {\n\t\treturn fmt.Errorf(\"internal error: maxNbBits (%d) > tableLogMax (%d)\", maxNbBits, tableLogMax)\n\t}\n\tvar nbPerRank [tableLogMax + 1]uint16\n\tvar valPerRank [16]uint16\n\tfor _, v := range huffNode[:nonNullRank+1] {\n\t\tnbPerRank[v.nbBits()]++\n\t}\n\t// determine stating value per rank\n\t{\n\t\tmin := uint16(0)\n\t\tfor n := maxNbBits; n > 0; n-- {\n\t\t\t// get starting value within each rank\n\t\t\tvalPerRank[n] = min\n\t\t\tmin += nbPerRank[n]\n\t\t\tmin >>= 1\n\t\t}\n\t}\n\n\t// push nbBits per symbol, symbol order\n\tfor _, v := range huffNode[:nonNullRank+1] {\n\t\ts.cTable[v.symbol()].nBits = v.nbBits()\n\t}\n\n\t// assign value within rank, symbol order\n\tt := s.cTable[:s.symbolLen]\n\tfor n, val := range t {\n\t\tnbits := val.nBits & 15\n\t\tv := valPerRank[nbits]\n\t\tt[n].val = v\n\t\tvalPerRank[nbits] = v + 1\n\t}\n\n\treturn nil\n}\n\n// huffSort will sort symbols, decreasing order.\nfunc (s *Scratch) huffSort() {\n\ttype rankPos struct {\n\t\tbase    uint32\n\t\tcurrent uint32\n\t}\n\n\t// Clear nodes\n\tnodes := s.nodes[:huffNodesLen+1]\n\ts.nodes = nodes\n\tnodes = nodes[1 : huffNodesLen+1]\n\n\t// Sort into buckets based on length of symbol count.\n\tvar rank [32]rankPos\n\tfor _, v := range s.count[:s.symbolLen] {\n\t\tr := highBit32(v+1) & 31\n\t\trank[r].base++\n\t}\n\t// maxBitLength is log2(BlockSizeMax) + 1\n\tconst maxBitLength = 18 + 1\n\tfor n := maxBitLength; n > 0; n-- {\n\t\trank[n-1].base += rank[n].base\n\t}\n\tfor n := range rank[:maxBitLength] {\n\t\trank[n].current = rank[n].base\n\t}\n\tfor n, c := range s.count[:s.symbolLen] {\n\t\tr := (highBit32(c+1) + 1) & 31\n\t\tpos := rank[r].current\n\t\trank[r].current++\n\t\tprev := nodes[(pos-1)&huffNodesMask]\n\t\tfor pos > rank[r].base && c > prev.count() {\n\t\t\tnodes[pos&huffNodesMask] = prev\n\t\t\tpos--\n\t\t\tprev = nodes[(pos-1)&huffNodesMask]\n\t\t}\n\t\tnodes[pos&huffNodesMask] = makeNodeElt(c, byte(n))\n\t}\n}\n\nfunc (s *Scratch) setMaxHeight(lastNonNull int) uint8 {\n\tmaxNbBits := s.actualTableLog\n\thuffNode := s.nodes[1 : huffNodesLen+1]\n\t//huffNode = huffNode[: huffNodesLen]\n\n\tlargestBits := huffNode[lastNonNull].nbBits()\n\n\t// early exit : no elt > maxNbBits\n\tif largestBits <= maxNbBits {\n\t\treturn largestBits\n\t}\n\ttotalCost := int(0)\n\tbaseCost := int(1) << (largestBits - maxNbBits)\n\tn := uint32(lastNonNull)\n\n\tfor huffNode[n].nbBits() > maxNbBits {\n\t\ttotalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits()))\n\t\thuffNode[n].setNbBits(maxNbBits)\n\t\tn--\n\t}\n\t// n stops at huffNode[n].nbBits <= maxNbBits\n\n\tfor huffNode[n].nbBits() == maxNbBits {\n\t\tn--\n\t}\n\t// n end at index of smallest symbol using < maxNbBits\n\n\t// renorm totalCost\n\ttotalCost >>= largestBits - maxNbBits /* note : totalCost is necessarily a multiple of baseCost */\n\n\t// repay normalized cost\n\t{\n\t\tconst noSymbol = 0xF0F0F0F0\n\t\tvar rankLast [tableLogMax + 2]uint32\n\n\t\tfor i := range rankLast[:] {\n\t\t\trankLast[i] = noSymbol\n\t\t}\n\n\t\t// Get pos of last (smallest) symbol per rank\n\t\t{\n\t\t\tcurrentNbBits := maxNbBits\n\t\t\tfor pos := int(n); pos >= 0; pos-- {\n\t\t\t\tif huffNode[pos].nbBits() >= currentNbBits {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tcurrentNbBits = huffNode[pos].nbBits() // < maxNbBits\n\t\t\t\trankLast[maxNbBits-currentNbBits] = uint32(pos)\n\t\t\t}\n\t\t}\n\n\t\tfor totalCost > 0 {\n\t\t\tnBitsToDecrease := uint8(highBit32(uint32(totalCost))) + 1\n\n\t\t\tfor ; nBitsToDecrease > 1; nBitsToDecrease-- {\n\t\t\t\thighPos := rankLast[nBitsToDecrease]\n\t\t\t\tlowPos := rankLast[nBitsToDecrease-1]\n\t\t\t\tif highPos == noSymbol {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif lowPos == noSymbol {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\thighTotal := huffNode[highPos].count()\n\t\t\t\tlowTotal := 2 * huffNode[lowPos].count()\n\t\t\t\tif highTotal <= lowTotal {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !)\n\t\t\t// HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary\n\t\t\t// FIXME: try to remove\n\t\t\tfor (nBitsToDecrease <= tableLogMax) && (rankLast[nBitsToDecrease] == noSymbol) {\n\t\t\t\tnBitsToDecrease++\n\t\t\t}\n\t\t\ttotalCost -= 1 << (nBitsToDecrease - 1)\n\t\t\tif rankLast[nBitsToDecrease-1] == noSymbol {\n\t\t\t\t// this rank is no longer empty\n\t\t\t\trankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease]\n\t\t\t}\n\t\t\thuffNode[rankLast[nBitsToDecrease]].setNbBits(1 +\n\t\t\t\thuffNode[rankLast[nBitsToDecrease]].nbBits())\n\t\t\tif rankLast[nBitsToDecrease] == 0 {\n\t\t\t\t/* special case, reached largest symbol */\n\t\t\t\trankLast[nBitsToDecrease] = noSymbol\n\t\t\t} else {\n\t\t\t\trankLast[nBitsToDecrease]--\n\t\t\t\tif huffNode[rankLast[nBitsToDecrease]].nbBits() != maxNbBits-nBitsToDecrease {\n\t\t\t\t\trankLast[nBitsToDecrease] = noSymbol /* this rank is now empty */\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor totalCost < 0 { /* Sometimes, cost correction overshoot */\n\t\t\tif rankLast[1] == noSymbol { /* special case : no rank 1 symbol (using maxNbBits-1); let's create one from largest rank 0 (using maxNbBits) */\n\t\t\t\tfor huffNode[n].nbBits() == maxNbBits {\n\t\t\t\t\tn--\n\t\t\t\t}\n\t\t\t\thuffNode[n+1].setNbBits(huffNode[n+1].nbBits() - 1)\n\t\t\t\trankLast[1] = n + 1\n\t\t\t\ttotalCost++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thuffNode[rankLast[1]+1].setNbBits(huffNode[rankLast[1]+1].nbBits() - 1)\n\t\t\trankLast[1]++\n\t\t\ttotalCost++\n\t\t}\n\t}\n\treturn maxNbBits\n}\n\n// A nodeElt is the fields\n//\n//\tcount  uint32\n//\tparent uint16\n//\tsymbol byte\n//\tnbBits uint8\n//\n// in some order, all squashed into an integer so that the compiler\n// always loads and stores entire nodeElts instead of separate fields.\ntype nodeElt uint64\n\nfunc makeNodeElt(count uint32, symbol byte) nodeElt {\n\treturn nodeElt(count) | nodeElt(symbol)<<48\n}\n\nfunc (e *nodeElt) count() uint32  { return uint32(*e) }\nfunc (e *nodeElt) parent() uint16 { return uint16(*e >> 32) }\nfunc (e *nodeElt) symbol() byte   { return byte(*e >> 48) }\nfunc (e *nodeElt) nbBits() uint8  { return uint8(*e >> 56) }\n\nfunc (e *nodeElt) setCount(c uint32) { *e = (*e)&0xffffffff00000000 | nodeElt(c) }\nfunc (e *nodeElt) setParent(p int16) { *e = (*e)&0xffff0000ffffffff | nodeElt(uint16(p))<<32 }\nfunc (e *nodeElt) setNbBits(n uint8) { *e = (*e)&0x00ffffffffffffff | nodeElt(n)<<56 }\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/decompress.go",
    "content": "package huff0\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/klauspost/compress/fse\"\n)\n\ntype dTable struct {\n\tsingle []dEntrySingle\n}\n\n// single-symbols decoding\ntype dEntrySingle struct {\n\tentry uint16\n}\n\n// Uses special code for all tables that are < 8 bits.\nconst use8BitTables = true\n\n// ReadTable will read a table from the input.\n// The size of the input may be larger than the table definition.\n// Any content remaining after the table definition will be returned.\n// If no Scratch is provided a new one is allocated.\n// The returned Scratch can be used for encoding or decoding input using this table.\nfunc ReadTable(in []byte, s *Scratch) (s2 *Scratch, remain []byte, err error) {\n\ts, err = s.prepare(nil)\n\tif err != nil {\n\t\treturn s, nil, err\n\t}\n\tif len(in) <= 1 {\n\t\treturn s, nil, errors.New(\"input too small for table\")\n\t}\n\tiSize := in[0]\n\tin = in[1:]\n\tif iSize >= 128 {\n\t\t// Uncompressed\n\t\toSize := iSize - 127\n\t\tiSize = (oSize + 1) / 2\n\t\tif int(iSize) > len(in) {\n\t\t\treturn s, nil, errors.New(\"input too small for table\")\n\t\t}\n\t\tfor n := uint8(0); n < oSize; n += 2 {\n\t\t\tv := in[n/2]\n\t\t\ts.huffWeight[n] = v >> 4\n\t\t\ts.huffWeight[n+1] = v & 15\n\t\t}\n\t\ts.symbolLen = uint16(oSize)\n\t\tin = in[iSize:]\n\t} else {\n\t\tif len(in) < int(iSize) {\n\t\t\treturn s, nil, fmt.Errorf(\"input too small for table, want %d bytes, have %d\", iSize, len(in))\n\t\t}\n\t\t// FSE compressed weights\n\t\ts.fse.DecompressLimit = 255\n\t\thw := s.huffWeight[:]\n\t\ts.fse.Out = hw\n\t\tb, err := fse.Decompress(in[:iSize], s.fse)\n\t\ts.fse.Out = nil\n\t\tif err != nil {\n\t\t\treturn s, nil, fmt.Errorf(\"fse decompress returned: %w\", err)\n\t\t}\n\t\tif len(b) > 255 {\n\t\t\treturn s, nil, errors.New(\"corrupt input: output table too large\")\n\t\t}\n\t\ts.symbolLen = uint16(len(b))\n\t\tin = in[iSize:]\n\t}\n\n\t// collect weight stats\n\tvar rankStats [16]uint32\n\tweightTotal := uint32(0)\n\tfor _, v := range s.huffWeight[:s.symbolLen] {\n\t\tif v > tableLogMax {\n\t\t\treturn s, nil, errors.New(\"corrupt input: weight too large\")\n\t\t}\n\t\tv2 := v & 15\n\t\trankStats[v2]++\n\t\t// (1 << (v2-1)) is slower since the compiler cannot prove that v2 isn't 0.\n\t\tweightTotal += (1 << v2) >> 1\n\t}\n\tif weightTotal == 0 {\n\t\treturn s, nil, errors.New(\"corrupt input: weights zero\")\n\t}\n\n\t// get last non-null symbol weight (implied, total must be 2^n)\n\t{\n\t\ttableLog := highBit32(weightTotal) + 1\n\t\tif tableLog > tableLogMax {\n\t\t\treturn s, nil, errors.New(\"corrupt input: tableLog too big\")\n\t\t}\n\t\ts.actualTableLog = uint8(tableLog)\n\t\t// determine last weight\n\t\t{\n\t\t\ttotal := uint32(1) << tableLog\n\t\t\trest := total - weightTotal\n\t\t\tverif := uint32(1) << highBit32(rest)\n\t\t\tlastWeight := highBit32(rest) + 1\n\t\t\tif verif != rest {\n\t\t\t\t// last value must be a clean power of 2\n\t\t\t\treturn s, nil, errors.New(\"corrupt input: last value not power of two\")\n\t\t\t}\n\t\t\ts.huffWeight[s.symbolLen] = uint8(lastWeight)\n\t\t\ts.symbolLen++\n\t\t\trankStats[lastWeight]++\n\t\t}\n\t}\n\n\tif (rankStats[1] < 2) || (rankStats[1]&1 != 0) {\n\t\t// by construction : at least 2 elts of rank 1, must be even\n\t\treturn s, nil, errors.New(\"corrupt input: min elt size, even check failed \")\n\t}\n\n\t// TODO: Choose between single/double symbol decoding\n\n\t// Calculate starting value for each rank\n\t{\n\t\tvar nextRankStart uint32\n\t\tfor n := uint8(1); n < s.actualTableLog+1; n++ {\n\t\t\tcurrent := nextRankStart\n\t\t\tnextRankStart += rankStats[n] << (n - 1)\n\t\t\trankStats[n] = current\n\t\t}\n\t}\n\n\t// fill DTable (always full size)\n\ttSize := 1 << tableLogMax\n\tif len(s.dt.single) != tSize {\n\t\ts.dt.single = make([]dEntrySingle, tSize)\n\t}\n\tcTable := s.prevTable\n\tif cap(cTable) < maxSymbolValue+1 {\n\t\tcTable = make([]cTableEntry, 0, maxSymbolValue+1)\n\t}\n\tcTable = cTable[:maxSymbolValue+1]\n\ts.prevTable = cTable[:s.symbolLen]\n\ts.prevTableLog = s.actualTableLog\n\n\tfor n, w := range s.huffWeight[:s.symbolLen] {\n\t\tif w == 0 {\n\t\t\tcTable[n] = cTableEntry{\n\t\t\t\tval:   0,\n\t\t\t\tnBits: 0,\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tlength := (uint32(1) << w) >> 1\n\t\td := dEntrySingle{\n\t\t\tentry: uint16(s.actualTableLog+1-w) | (uint16(n) << 8),\n\t\t}\n\n\t\trank := &rankStats[w]\n\t\tcTable[n] = cTableEntry{\n\t\t\tval:   uint16(*rank >> (w - 1)),\n\t\t\tnBits: uint8(d.entry),\n\t\t}\n\n\t\tsingle := s.dt.single[*rank : *rank+length]\n\t\tfor i := range single {\n\t\t\tsingle[i] = d\n\t\t}\n\t\t*rank += length\n\t}\n\n\treturn s, in, nil\n}\n\n// Decompress1X will decompress a 1X encoded stream.\n// The length of the supplied input must match the end of a block exactly.\n// Before this is called, the table must be initialized with ReadTable unless\n// the encoder re-used the table.\n// deprecated: Use the stateless Decoder() to get a concurrent version.\nfunc (s *Scratch) Decompress1X(in []byte) (out []byte, err error) {\n\tif cap(s.Out) < s.MaxDecodedSize {\n\t\ts.Out = make([]byte, s.MaxDecodedSize)\n\t}\n\ts.Out = s.Out[:0:s.MaxDecodedSize]\n\ts.Out, err = s.Decoder().Decompress1X(s.Out, in)\n\treturn s.Out, err\n}\n\n// Decompress4X will decompress a 4X encoded stream.\n// Before this is called, the table must be initialized with ReadTable unless\n// the encoder re-used the table.\n// The length of the supplied input must match the end of a block exactly.\n// The destination size of the uncompressed data must be known and provided.\n// deprecated: Use the stateless Decoder() to get a concurrent version.\nfunc (s *Scratch) Decompress4X(in []byte, dstSize int) (out []byte, err error) {\n\tif dstSize > s.MaxDecodedSize {\n\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t}\n\tif cap(s.Out) < dstSize {\n\t\ts.Out = make([]byte, s.MaxDecodedSize)\n\t}\n\ts.Out = s.Out[:0:dstSize]\n\ts.Out, err = s.Decoder().Decompress4X(s.Out, in)\n\treturn s.Out, err\n}\n\n// Decoder will return a stateless decoder that can be used by multiple\n// decompressors concurrently.\n// Before this is called, the table must be initialized with ReadTable.\n// The Decoder is still linked to the scratch buffer so that cannot be reused.\n// However, it is safe to discard the scratch.\nfunc (s *Scratch) Decoder() *Decoder {\n\treturn &Decoder{\n\t\tdt:             s.dt,\n\t\tactualTableLog: s.actualTableLog,\n\t\tbufs:           &s.decPool,\n\t}\n}\n\n// Decoder provides stateless decoding.\ntype Decoder struct {\n\tdt             dTable\n\tactualTableLog uint8\n\tbufs           *sync.Pool\n}\n\nfunc (d *Decoder) buffer() *[4][256]byte {\n\tbuf, ok := d.bufs.Get().(*[4][256]byte)\n\tif ok {\n\t\treturn buf\n\t}\n\treturn &[4][256]byte{}\n}\n\n// decompress1X8Bit will decompress a 1X encoded stream with tablelog <= 8.\n// The cap of the output buffer will be the maximum decompressed size.\n// The length of the supplied input must match the end of a block exactly.\nfunc (d *Decoder) decompress1X8Bit(dst, src []byte) ([]byte, error) {\n\tif d.actualTableLog == 8 {\n\t\treturn d.decompress1X8BitExactly(dst, src)\n\t}\n\tvar br bitReaderBytes\n\terr := br.init(src)\n\tif err != nil {\n\t\treturn dst, err\n\t}\n\tmaxDecodedSize := cap(dst)\n\tdst = dst[:0]\n\n\t// Avoid bounds check by always having full sized table.\n\tdt := d.dt.single[:256]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbufs := d.buffer()\n\tbuf := &bufs[0]\n\tvar off uint8\n\n\tswitch d.actualTableLog {\n\tcase 8:\n\t\tconst shift = 0\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\tbr.close()\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 7:\n\t\tconst shift = 8 - 7\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\tbr.close()\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 6:\n\t\tconst shift = 8 - 6\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 5:\n\t\tconst shift = 8 - 5\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 4:\n\t\tconst shift = 8 - 4\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 3:\n\t\tconst shift = 8 - 3\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 2:\n\t\tconst shift = 8 - 2\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tcase 1:\n\t\tconst shift = 8 - 1\n\t\tfor br.off >= 4 {\n\t\t\tbr.fillFast()\n\t\t\tv := dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\t\tv = dt[uint8(br.value>>(56+shift))]\n\t\t\tbr.advance(uint8(v.entry))\n\t\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\t\toff += 4\n\t\t\tif off == 0 {\n\t\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\t\td.bufs.Put(bufs)\n\t\t\t\t\tbr.close()\n\t\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t\t}\n\t\t\t\tdst = append(dst, buf[:]...)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\td.bufs.Put(bufs)\n\t\treturn nil, fmt.Errorf(\"invalid tablelog: %d\", d.actualTableLog)\n\t}\n\n\tif len(dst)+int(off) > maxDecodedSize {\n\t\td.bufs.Put(bufs)\n\t\tbr.close()\n\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t}\n\tdst = append(dst, buf[:off]...)\n\n\t// br < 4, so uint8 is fine\n\tbitsLeft := int8(uint8(br.off)*8 + (64 - br.bitsRead))\n\tshift := (8 - d.actualTableLog) & 7\n\n\tfor bitsLeft > 0 {\n\t\tif br.bitsRead >= 64-8 {\n\t\t\tfor br.off > 0 {\n\t\t\t\tbr.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8)\n\t\t\t\tbr.bitsRead -= 8\n\t\t\t\tbr.off--\n\t\t\t}\n\t\t}\n\t\tif len(dst) >= maxDecodedSize {\n\t\t\tbr.close()\n\t\t\td.bufs.Put(bufs)\n\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t}\n\t\tv := dt[br.peekByteFast()>>shift]\n\t\tnBits := uint8(v.entry)\n\t\tbr.advance(nBits)\n\t\tbitsLeft -= int8(nBits)\n\t\tdst = append(dst, uint8(v.entry>>8))\n\t}\n\td.bufs.Put(bufs)\n\treturn dst, br.close()\n}\n\n// decompress1X8Bit will decompress a 1X encoded stream with tablelog <= 8.\n// The cap of the output buffer will be the maximum decompressed size.\n// The length of the supplied input must match the end of a block exactly.\nfunc (d *Decoder) decompress1X8BitExactly(dst, src []byte) ([]byte, error) {\n\tvar br bitReaderBytes\n\terr := br.init(src)\n\tif err != nil {\n\t\treturn dst, err\n\t}\n\tmaxDecodedSize := cap(dst)\n\tdst = dst[:0]\n\n\t// Avoid bounds check by always having full sized table.\n\tdt := d.dt.single[:256]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbufs := d.buffer()\n\tbuf := &bufs[0]\n\tvar off uint8\n\n\tconst shift = 56\n\n\t//fmt.Printf(\"mask: %b, tl:%d\\n\", mask, d.actualTableLog)\n\tfor br.off >= 4 {\n\t\tbr.fillFast()\n\t\tv := dt[uint8(br.value>>shift)]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\tv = dt[uint8(br.value>>shift)]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\tv = dt[uint8(br.value>>shift)]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\tv = dt[uint8(br.value>>shift)]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\toff += 4\n\t\tif off == 0 {\n\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\td.bufs.Put(bufs)\n\t\t\t\tbr.close()\n\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t}\n\t\t\tdst = append(dst, buf[:]...)\n\t\t}\n\t}\n\n\tif len(dst)+int(off) > maxDecodedSize {\n\t\td.bufs.Put(bufs)\n\t\tbr.close()\n\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t}\n\tdst = append(dst, buf[:off]...)\n\n\t// br < 4, so uint8 is fine\n\tbitsLeft := int8(uint8(br.off)*8 + (64 - br.bitsRead))\n\tfor bitsLeft > 0 {\n\t\tif br.bitsRead >= 64-8 {\n\t\t\tfor br.off > 0 {\n\t\t\t\tbr.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8)\n\t\t\t\tbr.bitsRead -= 8\n\t\t\t\tbr.off--\n\t\t\t}\n\t\t}\n\t\tif len(dst) >= maxDecodedSize {\n\t\t\td.bufs.Put(bufs)\n\t\t\tbr.close()\n\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t}\n\t\tv := dt[br.peekByteFast()]\n\t\tnBits := uint8(v.entry)\n\t\tbr.advance(nBits)\n\t\tbitsLeft -= int8(nBits)\n\t\tdst = append(dst, uint8(v.entry>>8))\n\t}\n\td.bufs.Put(bufs)\n\treturn dst, br.close()\n}\n\n// Decompress4X will decompress a 4X encoded stream.\n// The length of the supplied input must match the end of a block exactly.\n// The *capacity* of the dst slice must match the destination size of\n// the uncompressed data exactly.\nfunc (d *Decoder) decompress4X8bit(dst, src []byte) ([]byte, error) {\n\tif d.actualTableLog == 8 {\n\t\treturn d.decompress4X8bitExactly(dst, src)\n\t}\n\n\tvar br [4]bitReaderBytes\n\tstart := 6\n\tfor i := range 3 {\n\t\tlength := int(src[i*2]) | (int(src[i*2+1]) << 8)\n\t\tif start+length >= len(src) {\n\t\t\treturn nil, errors.New(\"truncated input (or invalid offset)\")\n\t\t}\n\t\terr := br[i].init(src[start : start+length])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstart += length\n\t}\n\terr := br[3].init(src[start:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// destination, offset to match first output\n\tdstSize := cap(dst)\n\tdst = dst[:dstSize]\n\tout := dst\n\tdstEvery := (dstSize + 3) / 4\n\n\tshift := (56 + (8 - d.actualTableLog)) & 63\n\n\tconst tlSize = 1 << 8\n\tsingle := d.dt.single[:tlSize]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbuf := d.buffer()\n\tvar off uint8\n\tvar decoded int\n\n\t// Decode 4 values from each decoder/loop.\n\tconst bufoff = 256\n\tfor {\n\t\tif br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 {\n\t\t\tbreak\n\t\t}\n\n\t\t{\n\t\t\t// Interleave 2 decodes.\n\t\t\tconst stream = 0\n\t\t\tconst stream2 = 1\n\t\t\tbr1 := &br[stream]\n\t\t\tbr2 := &br[stream2]\n\t\t\tbr1.fillFast()\n\t\t\tbr2.fillFast()\n\n\t\t\tv := single[uint8(br1.value>>shift)].entry\n\t\t\tv2 := single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off] = uint8(v >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+1] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+2] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+2] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+3] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+3] = uint8(v2 >> 8)\n\t\t}\n\n\t\t{\n\t\t\tconst stream = 2\n\t\t\tconst stream2 = 3\n\t\t\tbr1 := &br[stream]\n\t\t\tbr2 := &br[stream2]\n\t\t\tbr1.fillFast()\n\t\t\tbr2.fillFast()\n\n\t\t\tv := single[uint8(br1.value>>shift)].entry\n\t\t\tv2 := single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off] = uint8(v >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+1] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+2] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+2] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+3] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+3] = uint8(v2 >> 8)\n\t\t}\n\n\t\toff += 4\n\n\t\tif off == 0 {\n\t\t\tif bufoff > dstEvery {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 1\")\n\t\t\t}\n\t\t\t// There must at least be 3 buffers left.\n\t\t\tif len(out)-bufoff < dstEvery*3 {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 2\")\n\t\t\t}\n\t\t\t//copy(out, buf[0][:])\n\t\t\t//copy(out[dstEvery:], buf[1][:])\n\t\t\t//copy(out[dstEvery*2:], buf[2][:])\n\t\t\t*(*[bufoff]byte)(out) = buf[0]\n\t\t\t*(*[bufoff]byte)(out[dstEvery:]) = buf[1]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*2:]) = buf[2]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*3:]) = buf[3]\n\t\t\tout = out[bufoff:]\n\t\t\tdecoded += bufoff * 4\n\t\t}\n\t}\n\tif off > 0 {\n\t\tioff := int(off)\n\t\tif len(out) < dstEvery*3+ioff {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 3\")\n\t\t}\n\t\tcopy(out, buf[0][:off])\n\t\tcopy(out[dstEvery:], buf[1][:off])\n\t\tcopy(out[dstEvery*2:], buf[2][:off])\n\t\tcopy(out[dstEvery*3:], buf[3][:off])\n\t\tdecoded += int(off) * 4\n\t\tout = out[off:]\n\t}\n\n\t// Decode remaining.\n\t// Decode remaining.\n\tremainBytes := dstEvery - (decoded / 4)\n\tfor i := range br {\n\t\toffset := dstEvery * i\n\t\tendsAt := min(offset+remainBytes, len(out))\n\t\tbr := &br[i]\n\t\tbitsLeft := br.remaining()\n\t\tfor bitsLeft > 0 {\n\t\t\tif br.finished() {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif br.bitsRead >= 56 {\n\t\t\t\tif br.off >= 4 {\n\t\t\t\t\tv := br.in[br.off-4:]\n\t\t\t\t\tv = v[:4]\n\t\t\t\t\tlow := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24)\n\t\t\t\t\tbr.value |= uint64(low) << (br.bitsRead - 32)\n\t\t\t\t\tbr.bitsRead -= 32\n\t\t\t\t\tbr.off -= 4\n\t\t\t\t} else {\n\t\t\t\t\tfor br.off > 0 {\n\t\t\t\t\t\tbr.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8)\n\t\t\t\t\t\tbr.bitsRead -= 8\n\t\t\t\t\t\tbr.off--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// end inline...\n\t\t\tif offset >= endsAt {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 4\")\n\t\t\t}\n\n\t\t\t// Read value and increment offset.\n\t\t\tv := single[uint8(br.value>>shift)].entry\n\t\t\tnBits := uint8(v)\n\t\t\tbr.advance(nBits)\n\t\t\tbitsLeft -= uint(nBits)\n\t\t\tout[offset] = uint8(v >> 8)\n\t\t\toffset++\n\t\t}\n\t\tif offset != endsAt {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, fmt.Errorf(\"corruption detected: short output block %d, end %d != %d\", i, offset, endsAt)\n\t\t}\n\t\tdecoded += offset - dstEvery*i\n\t\terr = br.close()\n\t\tif err != nil {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, err\n\t\t}\n\t}\n\td.bufs.Put(buf)\n\tif dstSize != decoded {\n\t\treturn nil, errors.New(\"corruption detected: short output block\")\n\t}\n\treturn dst, nil\n}\n\n// Decompress4X will decompress a 4X encoded stream.\n// The length of the supplied input must match the end of a block exactly.\n// The *capacity* of the dst slice must match the destination size of\n// the uncompressed data exactly.\nfunc (d *Decoder) decompress4X8bitExactly(dst, src []byte) ([]byte, error) {\n\tvar br [4]bitReaderBytes\n\tstart := 6\n\tfor i := range 3 {\n\t\tlength := int(src[i*2]) | (int(src[i*2+1]) << 8)\n\t\tif start+length >= len(src) {\n\t\t\treturn nil, errors.New(\"truncated input (or invalid offset)\")\n\t\t}\n\t\terr := br[i].init(src[start : start+length])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstart += length\n\t}\n\terr := br[3].init(src[start:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// destination, offset to match first output\n\tdstSize := cap(dst)\n\tdst = dst[:dstSize]\n\tout := dst\n\tdstEvery := (dstSize + 3) / 4\n\n\tconst shift = 56\n\tconst tlSize = 1 << 8\n\tsingle := d.dt.single[:tlSize]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbuf := d.buffer()\n\tvar off uint8\n\tvar decoded int\n\n\t// Decode 4 values from each decoder/loop.\n\tconst bufoff = 256\n\tfor {\n\t\tif br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 {\n\t\t\tbreak\n\t\t}\n\n\t\t{\n\t\t\t// Interleave 2 decodes.\n\t\t\tconst stream = 0\n\t\t\tconst stream2 = 1\n\t\t\tbr1 := &br[stream]\n\t\t\tbr2 := &br[stream2]\n\t\t\tbr1.fillFast()\n\t\t\tbr2.fillFast()\n\n\t\t\tv := single[uint8(br1.value>>shift)].entry\n\t\t\tv2 := single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off] = uint8(v >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+1] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+2] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+2] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+3] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+3] = uint8(v2 >> 8)\n\t\t}\n\n\t\t{\n\t\t\tconst stream = 2\n\t\t\tconst stream2 = 3\n\t\t\tbr1 := &br[stream]\n\t\t\tbr2 := &br[stream2]\n\t\t\tbr1.fillFast()\n\t\t\tbr2.fillFast()\n\n\t\t\tv := single[uint8(br1.value>>shift)].entry\n\t\t\tv2 := single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off] = uint8(v >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+1] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+2] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+2] = uint8(v2 >> 8)\n\n\t\t\tv = single[uint8(br1.value>>shift)].entry\n\t\t\tv2 = single[uint8(br2.value>>shift)].entry\n\t\t\tbr1.bitsRead += uint8(v)\n\t\t\tbr1.value <<= v & 63\n\t\t\tbr2.bitsRead += uint8(v2)\n\t\t\tbr2.value <<= v2 & 63\n\t\t\tbuf[stream][off+3] = uint8(v >> 8)\n\t\t\tbuf[stream2][off+3] = uint8(v2 >> 8)\n\t\t}\n\n\t\toff += 4\n\n\t\tif off == 0 {\n\t\t\tif bufoff > dstEvery {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 1\")\n\t\t\t}\n\t\t\t// There must at least be 3 buffers left.\n\t\t\tif len(out)-bufoff < dstEvery*3 {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 2\")\n\t\t\t}\n\n\t\t\t//copy(out, buf[0][:])\n\t\t\t//copy(out[dstEvery:], buf[1][:])\n\t\t\t//copy(out[dstEvery*2:], buf[2][:])\n\t\t\t// copy(out[dstEvery*3:], buf[3][:])\n\t\t\t*(*[bufoff]byte)(out) = buf[0]\n\t\t\t*(*[bufoff]byte)(out[dstEvery:]) = buf[1]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*2:]) = buf[2]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*3:]) = buf[3]\n\t\t\tout = out[bufoff:]\n\t\t\tdecoded += bufoff * 4\n\t\t}\n\t}\n\tif off > 0 {\n\t\tioff := int(off)\n\t\tif len(out) < dstEvery*3+ioff {\n\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 3\")\n\t\t}\n\t\tcopy(out, buf[0][:off])\n\t\tcopy(out[dstEvery:], buf[1][:off])\n\t\tcopy(out[dstEvery*2:], buf[2][:off])\n\t\tcopy(out[dstEvery*3:], buf[3][:off])\n\t\tdecoded += int(off) * 4\n\t\tout = out[off:]\n\t}\n\n\t// Decode remaining.\n\tremainBytes := dstEvery - (decoded / 4)\n\tfor i := range br {\n\t\toffset := dstEvery * i\n\t\tendsAt := min(offset+remainBytes, len(out))\n\t\tbr := &br[i]\n\t\tbitsLeft := br.remaining()\n\t\tfor bitsLeft > 0 {\n\t\t\tif br.finished() {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif br.bitsRead >= 56 {\n\t\t\t\tif br.off >= 4 {\n\t\t\t\t\tv := br.in[br.off-4:]\n\t\t\t\t\tv = v[:4]\n\t\t\t\t\tlow := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24)\n\t\t\t\t\tbr.value |= uint64(low) << (br.bitsRead - 32)\n\t\t\t\t\tbr.bitsRead -= 32\n\t\t\t\t\tbr.off -= 4\n\t\t\t\t} else {\n\t\t\t\t\tfor br.off > 0 {\n\t\t\t\t\t\tbr.value |= uint64(br.in[br.off-1]) << (br.bitsRead - 8)\n\t\t\t\t\t\tbr.bitsRead -= 8\n\t\t\t\t\t\tbr.off--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// end inline...\n\t\t\tif offset >= endsAt {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 4\")\n\t\t\t}\n\n\t\t\t// Read value and increment offset.\n\t\t\tv := single[br.peekByteFast()].entry\n\t\t\tnBits := uint8(v)\n\t\t\tbr.advance(nBits)\n\t\t\tbitsLeft -= uint(nBits)\n\t\t\tout[offset] = uint8(v >> 8)\n\t\t\toffset++\n\t\t}\n\t\tif offset != endsAt {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, fmt.Errorf(\"corruption detected: short output block %d, end %d != %d\", i, offset, endsAt)\n\t\t}\n\n\t\tdecoded += offset - dstEvery*i\n\t\terr = br.close()\n\t\tif err != nil {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, err\n\t\t}\n\t}\n\td.bufs.Put(buf)\n\tif dstSize != decoded {\n\t\treturn nil, errors.New(\"corruption detected: short output block\")\n\t}\n\treturn dst, nil\n}\n\n// matches will compare a decoding table to a coding table.\n// Errors are written to the writer.\n// Nothing will be written if table is ok.\nfunc (s *Scratch) matches(ct cTable, w io.Writer) {\n\tif s == nil || len(s.dt.single) == 0 {\n\t\treturn\n\t}\n\tdt := s.dt.single[:1<<s.actualTableLog]\n\ttablelog := s.actualTableLog\n\tok := 0\n\tbroken := 0\n\tfor sym, enc := range ct {\n\t\terrs := 0\n\t\tbroken++\n\t\tif enc.nBits == 0 {\n\t\t\tfor _, dec := range dt {\n\t\t\t\tif uint8(dec.entry>>8) == byte(sym) {\n\t\t\t\t\tfmt.Fprintf(w, \"symbol %x has decoder, but no encoder\\n\", sym)\n\t\t\t\t\terrs++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif errs == 0 {\n\t\t\t\tbroken--\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// Unused bits in input\n\t\tub := tablelog - enc.nBits\n\t\ttop := enc.val << ub\n\t\t// decoder looks at top bits.\n\t\tdec := dt[top]\n\t\tif uint8(dec.entry) != enc.nBits {\n\t\t\tfmt.Fprintf(w, \"symbol 0x%x bit size mismatch (enc: %d, dec:%d).\\n\", sym, enc.nBits, uint8(dec.entry))\n\t\t\terrs++\n\t\t}\n\t\tif uint8(dec.entry>>8) != uint8(sym) {\n\t\t\tfmt.Fprintf(w, \"symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\\n\", sym, sym, uint8(dec.entry>>8))\n\t\t\terrs++\n\t\t}\n\t\tif errs > 0 {\n\t\t\tfmt.Fprintf(w, \"%d errors in base, stopping\\n\", errs)\n\t\t\tcontinue\n\t\t}\n\t\t// Ensure that all combinations are covered.\n\t\tfor i := uint16(0); i < (1 << ub); i++ {\n\t\t\tvval := top | i\n\t\t\tdec := dt[vval]\n\t\t\tif uint8(dec.entry) != enc.nBits {\n\t\t\t\tfmt.Fprintf(w, \"symbol 0x%x bit size mismatch (enc: %d, dec:%d).\\n\", vval, enc.nBits, uint8(dec.entry))\n\t\t\t\terrs++\n\t\t\t}\n\t\t\tif uint8(dec.entry>>8) != uint8(sym) {\n\t\t\t\tfmt.Fprintf(w, \"symbol 0x%x decoder output mismatch (enc: %d, dec:%d).\\n\", vval, sym, uint8(dec.entry>>8))\n\t\t\t\terrs++\n\t\t\t}\n\t\t\tif errs > 20 {\n\t\t\t\tfmt.Fprintf(w, \"%d errors, stopping\\n\", errs)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif errs == 0 {\n\t\t\tok++\n\t\t\tbroken--\n\t\t}\n\t}\n\tif broken > 0 {\n\t\tfmt.Fprintf(w, \"%d broken, %d ok\\n\", broken, ok)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/decompress_amd64.go",
    "content": "//go:build amd64 && !appengine && !noasm && gc\n// +build amd64,!appengine,!noasm,gc\n\n// This file contains the specialisation of Decoder.Decompress4X\n// and Decoder.Decompress1X that use an asm implementation of thir main loops.\npackage huff0\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/klauspost/compress/internal/cpuinfo\"\n)\n\n// decompress4x_main_loop_x86 is an x86 assembler implementation\n// of Decompress4X when tablelog > 8.\n//\n//go:noescape\nfunc decompress4x_main_loop_amd64(ctx *decompress4xContext)\n\n// decompress4x_8b_loop_x86 is an x86 assembler implementation\n// of Decompress4X when tablelog <= 8 which decodes 4 entries\n// per loop.\n//\n//go:noescape\nfunc decompress4x_8b_main_loop_amd64(ctx *decompress4xContext)\n\n// fallback8BitSize is the size where using Go version is faster.\nconst fallback8BitSize = 800\n\ntype decompress4xContext struct {\n\tpbr      *[4]bitReaderShifted\n\tpeekBits uint8\n\tout      *byte\n\tdstEvery int\n\ttbl      *dEntrySingle\n\tdecoded  int\n\tlimit    *byte\n}\n\n// Decompress4X will decompress a 4X encoded stream.\n// The length of the supplied input must match the end of a block exactly.\n// The *capacity* of the dst slice must match the destination size of\n// the uncompressed data exactly.\nfunc (d *Decoder) Decompress4X(dst, src []byte) ([]byte, error) {\n\tif len(d.dt.single) == 0 {\n\t\treturn nil, errors.New(\"no table loaded\")\n\t}\n\tif len(src) < 6+(4*1) {\n\t\treturn nil, errors.New(\"input too small\")\n\t}\n\n\tuse8BitTables := d.actualTableLog <= 8\n\tif cap(dst) < fallback8BitSize && use8BitTables {\n\t\treturn d.decompress4X8bit(dst, src)\n\t}\n\n\tvar br [4]bitReaderShifted\n\t// Decode \"jump table\"\n\tstart := 6\n\tfor i := range 3 {\n\t\tlength := int(src[i*2]) | (int(src[i*2+1]) << 8)\n\t\tif start+length >= len(src) {\n\t\t\treturn nil, errors.New(\"truncated input (or invalid offset)\")\n\t\t}\n\t\terr := br[i].init(src[start : start+length])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstart += length\n\t}\n\terr := br[3].init(src[start:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// destination, offset to match first output\n\tdstSize := cap(dst)\n\tdst = dst[:dstSize]\n\tout := dst\n\tdstEvery := (dstSize + 3) / 4\n\n\tconst tlSize = 1 << tableLogMax\n\tconst tlMask = tlSize - 1\n\tsingle := d.dt.single[:tlSize]\n\n\tvar decoded int\n\n\tif len(out) > 4*4 && !(br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4) {\n\t\tctx := decompress4xContext{\n\t\t\tpbr:      &br,\n\t\t\tpeekBits: uint8((64 - d.actualTableLog) & 63), // see: bitReaderShifted.peekBitsFast()\n\t\t\tout:      &out[0],\n\t\t\tdstEvery: dstEvery,\n\t\t\ttbl:      &single[0],\n\t\t\tlimit:    &out[dstEvery-4], // Always stop decoding when first buffer gets here to avoid writing OOB on last.\n\t\t}\n\t\tif use8BitTables {\n\t\t\tdecompress4x_8b_main_loop_amd64(&ctx)\n\t\t} else {\n\t\t\tdecompress4x_main_loop_amd64(&ctx)\n\t\t}\n\n\t\tdecoded = ctx.decoded\n\t\tout = out[decoded/4:]\n\t}\n\n\t// Decode remaining.\n\tremainBytes := dstEvery - (decoded / 4)\n\tfor i := range br {\n\t\toffset := dstEvery * i\n\t\tendsAt := min(offset+remainBytes, len(out))\n\t\tbr := &br[i]\n\t\tbitsLeft := br.remaining()\n\t\tfor bitsLeft > 0 {\n\t\t\tbr.fill()\n\t\t\tif offset >= endsAt {\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 4\")\n\t\t\t}\n\n\t\t\t// Read value and increment offset.\n\t\t\tval := br.peekBitsFast(d.actualTableLog)\n\t\t\tv := single[val&tlMask].entry\n\t\t\tnBits := uint8(v)\n\t\t\tbr.advance(nBits)\n\t\t\tbitsLeft -= uint(nBits)\n\t\t\tout[offset] = uint8(v >> 8)\n\t\t\toffset++\n\t\t}\n\t\tif offset != endsAt {\n\t\t\treturn nil, fmt.Errorf(\"corruption detected: short output block %d, end %d != %d\", i, offset, endsAt)\n\t\t}\n\t\tdecoded += offset - dstEvery*i\n\t\terr = br.close()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif dstSize != decoded {\n\t\treturn nil, errors.New(\"corruption detected: short output block\")\n\t}\n\treturn dst, nil\n}\n\n// decompress4x_main_loop_x86 is an x86 assembler implementation\n// of Decompress1X when tablelog > 8.\n//\n//go:noescape\nfunc decompress1x_main_loop_amd64(ctx *decompress1xContext)\n\n// decompress4x_main_loop_x86 is an x86 with BMI2 assembler implementation\n// of Decompress1X when tablelog > 8.\n//\n//go:noescape\nfunc decompress1x_main_loop_bmi2(ctx *decompress1xContext)\n\ntype decompress1xContext struct {\n\tpbr      *bitReaderShifted\n\tpeekBits uint8\n\tout      *byte\n\toutCap   int\n\ttbl      *dEntrySingle\n\tdecoded  int\n}\n\n// Error reported by asm implementations\nconst error_max_decoded_size_exeeded = -1\n\n// Decompress1X will decompress a 1X encoded stream.\n// The cap of the output buffer will be the maximum decompressed size.\n// The length of the supplied input must match the end of a block exactly.\nfunc (d *Decoder) Decompress1X(dst, src []byte) ([]byte, error) {\n\tif len(d.dt.single) == 0 {\n\t\treturn nil, errors.New(\"no table loaded\")\n\t}\n\tvar br bitReaderShifted\n\terr := br.init(src)\n\tif err != nil {\n\t\treturn dst, err\n\t}\n\tmaxDecodedSize := cap(dst)\n\tdst = dst[:maxDecodedSize]\n\n\tconst tlSize = 1 << tableLogMax\n\tconst tlMask = tlSize - 1\n\n\tif maxDecodedSize >= 4 {\n\t\tctx := decompress1xContext{\n\t\t\tpbr:      &br,\n\t\t\tout:      &dst[0],\n\t\t\toutCap:   maxDecodedSize,\n\t\t\tpeekBits: uint8((64 - d.actualTableLog) & 63), // see: bitReaderShifted.peekBitsFast()\n\t\t\ttbl:      &d.dt.single[0],\n\t\t}\n\n\t\tif cpuinfo.HasBMI2() {\n\t\t\tdecompress1x_main_loop_bmi2(&ctx)\n\t\t} else {\n\t\t\tdecompress1x_main_loop_amd64(&ctx)\n\t\t}\n\t\tif ctx.decoded == error_max_decoded_size_exeeded {\n\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t}\n\n\t\tdst = dst[:ctx.decoded]\n\t}\n\n\t// br < 8, so uint8 is fine\n\tbitsLeft := uint8(br.off)*8 + 64 - br.bitsRead\n\tfor bitsLeft > 0 {\n\t\tbr.fill()\n\t\tif len(dst) >= maxDecodedSize {\n\t\t\tbr.close()\n\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t}\n\t\tv := d.dt.single[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tnBits := uint8(v.entry)\n\t\tbr.advance(nBits)\n\t\tbitsLeft -= nBits\n\t\tdst = append(dst, uint8(v.entry>>8))\n\t}\n\treturn dst, br.close()\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/decompress_amd64.s",
    "content": "// Code generated by command: go run gen.go -out ../decompress_amd64.s -pkg=huff0. DO NOT EDIT.\n\n//go:build amd64 && !appengine && !noasm && gc\n\n// func decompress4x_main_loop_amd64(ctx *decompress4xContext)\nTEXT ·decompress4x_main_loop_amd64(SB), $0-8\n\t// Preload values\n\tMOVQ    ctx+0(FP), AX\n\tMOVBQZX 8(AX), DI\n\tMOVQ    16(AX), BX\n\tMOVQ    48(AX), SI\n\tMOVQ    24(AX), R8\n\tMOVQ    32(AX), R9\n\tMOVQ    (AX), R10\n\n\t// Main loop\nmain_loop:\n\tXORL  DX, DX\n\tCMPQ  BX, SI\n\tSETGE DL\n\n\t// br0.fillFast32()\n\tMOVQ    32(R10), R11\n\tMOVBQZX 40(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill0\n\tMOVQ    24(R10), AX\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, AX\n\tMOVQ    (R10), R13\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (AX)(R13*1), R13\n\tMOVQ R12, CX\n\tSHLQ CL, R13\n\tMOVQ AX, 24(R10)\n\tORQ  R13, R11\n\n\t// exhausted += (br0.off < 4)\n\tCMPQ AX, $0x04\n\tADCB $+0, DL\n\nskip_fill0:\n\t// val0 := br0.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br0.peekTopBits(peekBits)\n\tMOVQ DI, CX\n\tMOVQ R11, R13\n\tSHRQ CL, R13\n\n\t// v1 := table[val1&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v1.entry))\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// these two writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\tMOVW AX, (BX)\n\n\t// update the bitreader structure\n\tMOVQ R11, 32(R10)\n\tMOVB R12, 40(R10)\n\n\t// br1.fillFast32()\n\tMOVQ    80(R10), R11\n\tMOVBQZX 88(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill1\n\tMOVQ    72(R10), AX\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, AX\n\tMOVQ    48(R10), R13\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (AX)(R13*1), R13\n\tMOVQ R12, CX\n\tSHLQ CL, R13\n\tMOVQ AX, 72(R10)\n\tORQ  R13, R11\n\n\t// exhausted += (br1.off < 4)\n\tCMPQ AX, $0x04\n\tADCB $+0, DL\n\nskip_fill1:\n\t// val0 := br1.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br1.peekTopBits(peekBits)\n\tMOVQ DI, CX\n\tMOVQ R11, R13\n\tSHRQ CL, R13\n\n\t// v1 := table[val1&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v1.entry))\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// these two writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\tMOVW AX, (BX)(R8*1)\n\n\t// update the bitreader structure\n\tMOVQ R11, 80(R10)\n\tMOVB R12, 88(R10)\n\n\t// br2.fillFast32()\n\tMOVQ    128(R10), R11\n\tMOVBQZX 136(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill2\n\tMOVQ    120(R10), AX\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, AX\n\tMOVQ    96(R10), R13\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (AX)(R13*1), R13\n\tMOVQ R12, CX\n\tSHLQ CL, R13\n\tMOVQ AX, 120(R10)\n\tORQ  R13, R11\n\n\t// exhausted += (br2.off < 4)\n\tCMPQ AX, $0x04\n\tADCB $+0, DL\n\nskip_fill2:\n\t// val0 := br2.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br2.peekTopBits(peekBits)\n\tMOVQ DI, CX\n\tMOVQ R11, R13\n\tSHRQ CL, R13\n\n\t// v1 := table[val1&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v1.entry))\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// these two writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\tMOVW AX, (BX)(R8*2)\n\n\t// update the bitreader structure\n\tMOVQ R11, 128(R10)\n\tMOVB R12, 136(R10)\n\n\t// br3.fillFast32()\n\tMOVQ    176(R10), R11\n\tMOVBQZX 184(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill3\n\tMOVQ    168(R10), AX\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, AX\n\tMOVQ    144(R10), R13\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (AX)(R13*1), R13\n\tMOVQ R12, CX\n\tSHLQ CL, R13\n\tMOVQ AX, 168(R10)\n\tORQ  R13, R11\n\n\t// exhausted += (br3.off < 4)\n\tCMPQ AX, $0x04\n\tADCB $+0, DL\n\nskip_fill3:\n\t// val0 := br3.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br3.peekTopBits(peekBits)\n\tMOVQ DI, CX\n\tMOVQ R11, R13\n\tSHRQ CL, R13\n\n\t// v1 := table[val1&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v1.entry))\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// these two writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\tLEAQ (R8)(R8*2), CX\n\tMOVW AX, (BX)(CX*1)\n\n\t// update the bitreader structure\n\tMOVQ  R11, 176(R10)\n\tMOVB  R12, 184(R10)\n\tADDQ  $0x02, BX\n\tTESTB DL, DL\n\tJZ    main_loop\n\tMOVQ  ctx+0(FP), AX\n\tSUBQ  16(AX), BX\n\tSHLQ  $0x02, BX\n\tMOVQ  BX, 40(AX)\n\tRET\n\n// func decompress4x_8b_main_loop_amd64(ctx *decompress4xContext)\nTEXT ·decompress4x_8b_main_loop_amd64(SB), $0-8\n\t// Preload values\n\tMOVQ    ctx+0(FP), CX\n\tMOVBQZX 8(CX), DI\n\tMOVQ    16(CX), BX\n\tMOVQ    48(CX), SI\n\tMOVQ    24(CX), R8\n\tMOVQ    32(CX), R9\n\tMOVQ    (CX), R10\n\n\t// Main loop\nmain_loop:\n\tXORL  DX, DX\n\tCMPQ  BX, SI\n\tSETGE DL\n\n\t// br0.fillFast32()\n\tMOVQ    32(R10), R11\n\tMOVBQZX 40(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill0\n\tMOVQ    24(R10), R13\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, R13\n\tMOVQ    (R10), R14\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (R13)(R14*1), R14\n\tMOVQ R12, CX\n\tSHLQ CL, R14\n\tMOVQ R13, 24(R10)\n\tORQ  R14, R11\n\n\t// exhausted += (br0.off < 4)\n\tCMPQ R13, $0x04\n\tADCB $+0, DL\n\nskip_fill0:\n\t// val0 := br0.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br0.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v1 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v1.entry)\n\tMOVB   CH, AH\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// val2 := br0.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v2 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v2.entry)\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val3 := br0.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v3 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br0.advance(uint8(v3.entry)\n\tMOVB   CH, AL\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// these four writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\t// out[id * dstEvery + 3] = uint8(v2.entry >> 8)\n\t// out[id * dstEvery + 4] = uint8(v3.entry >> 8)\n\tMOVL AX, (BX)\n\n\t// update the bitreader structure\n\tMOVQ R11, 32(R10)\n\tMOVB R12, 40(R10)\n\n\t// br1.fillFast32()\n\tMOVQ    80(R10), R11\n\tMOVBQZX 88(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill1\n\tMOVQ    72(R10), R13\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, R13\n\tMOVQ    48(R10), R14\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (R13)(R14*1), R14\n\tMOVQ R12, CX\n\tSHLQ CL, R14\n\tMOVQ R13, 72(R10)\n\tORQ  R14, R11\n\n\t// exhausted += (br1.off < 4)\n\tCMPQ R13, $0x04\n\tADCB $+0, DL\n\nskip_fill1:\n\t// val0 := br1.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br1.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v1 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v1.entry)\n\tMOVB   CH, AH\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// val2 := br1.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v2 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v2.entry)\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val3 := br1.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v3 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br1.advance(uint8(v3.entry)\n\tMOVB   CH, AL\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// these four writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\t// out[id * dstEvery + 3] = uint8(v2.entry >> 8)\n\t// out[id * dstEvery + 4] = uint8(v3.entry >> 8)\n\tMOVL AX, (BX)(R8*1)\n\n\t// update the bitreader structure\n\tMOVQ R11, 80(R10)\n\tMOVB R12, 88(R10)\n\n\t// br2.fillFast32()\n\tMOVQ    128(R10), R11\n\tMOVBQZX 136(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill2\n\tMOVQ    120(R10), R13\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, R13\n\tMOVQ    96(R10), R14\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (R13)(R14*1), R14\n\tMOVQ R12, CX\n\tSHLQ CL, R14\n\tMOVQ R13, 120(R10)\n\tORQ  R14, R11\n\n\t// exhausted += (br2.off < 4)\n\tCMPQ R13, $0x04\n\tADCB $+0, DL\n\nskip_fill2:\n\t// val0 := br2.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br2.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v1 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v1.entry)\n\tMOVB   CH, AH\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// val2 := br2.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v2 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v2.entry)\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val3 := br2.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v3 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br2.advance(uint8(v3.entry)\n\tMOVB   CH, AL\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// these four writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\t// out[id * dstEvery + 3] = uint8(v2.entry >> 8)\n\t// out[id * dstEvery + 4] = uint8(v3.entry >> 8)\n\tMOVL AX, (BX)(R8*2)\n\n\t// update the bitreader structure\n\tMOVQ R11, 128(R10)\n\tMOVB R12, 136(R10)\n\n\t// br3.fillFast32()\n\tMOVQ    176(R10), R11\n\tMOVBQZX 184(R10), R12\n\tCMPQ    R12, $0x20\n\tJBE     skip_fill3\n\tMOVQ    168(R10), R13\n\tSUBQ    $0x20, R12\n\tSUBQ    $0x04, R13\n\tMOVQ    144(R10), R14\n\n\t// b.value |= uint64(low) << (b.bitsRead & 63)\n\tMOVL (R13)(R14*1), R14\n\tMOVQ R12, CX\n\tSHLQ CL, R14\n\tMOVQ R13, 168(R10)\n\tORQ  R14, R11\n\n\t// exhausted += (br3.off < 4)\n\tCMPQ R13, $0x04\n\tADCB $+0, DL\n\nskip_fill3:\n\t// val0 := br3.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v0 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v0.entry)\n\tMOVB CH, AL\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val1 := br3.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v1 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v1.entry)\n\tMOVB   CH, AH\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// val2 := br3.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v2 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v2.entry)\n\tMOVB CH, AH\n\tSHLQ CL, R11\n\tADDB CL, R12\n\n\t// val3 := br3.peekTopBits(peekBits)\n\tMOVQ R11, R13\n\tMOVQ DI, CX\n\tSHRQ CL, R13\n\n\t// v3 := table[val0&mask]\n\tMOVW (R9)(R13*2), CX\n\n\t// br3.advance(uint8(v3.entry)\n\tMOVB   CH, AL\n\tSHLQ   CL, R11\n\tADDB   CL, R12\n\tBSWAPL AX\n\n\t// these four writes get coalesced\n\t// out[id * dstEvery + 0] = uint8(v0.entry >> 8)\n\t// out[id * dstEvery + 1] = uint8(v1.entry >> 8)\n\t// out[id * dstEvery + 3] = uint8(v2.entry >> 8)\n\t// out[id * dstEvery + 4] = uint8(v3.entry >> 8)\n\tLEAQ (R8)(R8*2), CX\n\tMOVL AX, (BX)(CX*1)\n\n\t// update the bitreader structure\n\tMOVQ  R11, 176(R10)\n\tMOVB  R12, 184(R10)\n\tADDQ  $0x04, BX\n\tTESTB DL, DL\n\tJZ    main_loop\n\tMOVQ  ctx+0(FP), AX\n\tSUBQ  16(AX), BX\n\tSHLQ  $0x02, BX\n\tMOVQ  BX, 40(AX)\n\tRET\n\n// func decompress1x_main_loop_amd64(ctx *decompress1xContext)\nTEXT ·decompress1x_main_loop_amd64(SB), $0-8\n\tMOVQ    ctx+0(FP), CX\n\tMOVQ    16(CX), DX\n\tMOVQ    24(CX), BX\n\tCMPQ    BX, $0x04\n\tJB      error_max_decoded_size_exceeded\n\tLEAQ    (DX)(BX*1), BX\n\tMOVQ    (CX), SI\n\tMOVQ    (SI), R8\n\tMOVQ    24(SI), R9\n\tMOVQ    32(SI), R10\n\tMOVBQZX 40(SI), R11\n\tMOVQ    32(CX), SI\n\tMOVBQZX 8(CX), DI\n\tJMP     loop_condition\n\nmain_loop:\n\t// Check if we have room for 4 bytes in the output buffer\n\tLEAQ 4(DX), CX\n\tCMPQ CX, BX\n\tJGE  error_max_decoded_size_exceeded\n\n\t// Decode 4 values\n\tCMPQ R11, $0x20\n\tJL   bitReader_fillFast_1_end\n\tSUBQ $0x20, R11\n\tSUBQ $0x04, R9\n\tMOVL (R8)(R9*1), R12\n\tMOVQ R11, CX\n\tSHLQ CL, R12\n\tORQ  R12, R10\n\nbitReader_fillFast_1_end:\n\tMOVQ    DI, CX\n\tMOVQ    R10, R12\n\tSHRQ    CL, R12\n\tMOVW    (SI)(R12*2), CX\n\tMOVB    CH, AL\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLQ    CL, R10\n\tMOVQ    DI, CX\n\tMOVQ    R10, R12\n\tSHRQ    CL, R12\n\tMOVW    (SI)(R12*2), CX\n\tMOVB    CH, AH\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLQ    CL, R10\n\tBSWAPL  AX\n\tCMPQ    R11, $0x20\n\tJL      bitReader_fillFast_2_end\n\tSUBQ    $0x20, R11\n\tSUBQ    $0x04, R9\n\tMOVL    (R8)(R9*1), R12\n\tMOVQ    R11, CX\n\tSHLQ    CL, R12\n\tORQ     R12, R10\n\nbitReader_fillFast_2_end:\n\tMOVQ    DI, CX\n\tMOVQ    R10, R12\n\tSHRQ    CL, R12\n\tMOVW    (SI)(R12*2), CX\n\tMOVB    CH, AH\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLQ    CL, R10\n\tMOVQ    DI, CX\n\tMOVQ    R10, R12\n\tSHRQ    CL, R12\n\tMOVW    (SI)(R12*2), CX\n\tMOVB    CH, AL\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLQ    CL, R10\n\tBSWAPL  AX\n\n\t// Store the decoded values\n\tMOVL AX, (DX)\n\tADDQ $0x04, DX\n\nloop_condition:\n\tCMPQ R9, $0x08\n\tJGE  main_loop\n\n\t// Update ctx structure\n\tMOVQ ctx+0(FP), AX\n\tSUBQ 16(AX), DX\n\tMOVQ DX, 40(AX)\n\tMOVQ (AX), AX\n\tMOVQ R9, 24(AX)\n\tMOVQ R10, 32(AX)\n\tMOVB R11, 40(AX)\n\tRET\n\n\t// Report error\nerror_max_decoded_size_exceeded:\n\tMOVQ ctx+0(FP), AX\n\tMOVQ $-1, CX\n\tMOVQ CX, 40(AX)\n\tRET\n\n// func decompress1x_main_loop_bmi2(ctx *decompress1xContext)\n// Requires: BMI2\nTEXT ·decompress1x_main_loop_bmi2(SB), $0-8\n\tMOVQ    ctx+0(FP), CX\n\tMOVQ    16(CX), DX\n\tMOVQ    24(CX), BX\n\tCMPQ    BX, $0x04\n\tJB      error_max_decoded_size_exceeded\n\tLEAQ    (DX)(BX*1), BX\n\tMOVQ    (CX), SI\n\tMOVQ    (SI), R8\n\tMOVQ    24(SI), R9\n\tMOVQ    32(SI), R10\n\tMOVBQZX 40(SI), R11\n\tMOVQ    32(CX), SI\n\tMOVBQZX 8(CX), DI\n\tJMP     loop_condition\n\nmain_loop:\n\t// Check if we have room for 4 bytes in the output buffer\n\tLEAQ 4(DX), CX\n\tCMPQ CX, BX\n\tJGE  error_max_decoded_size_exceeded\n\n\t// Decode 4 values\n\tCMPQ  R11, $0x20\n\tJL    bitReader_fillFast_1_end\n\tSUBQ  $0x20, R11\n\tSUBQ  $0x04, R9\n\tMOVL  (R8)(R9*1), CX\n\tSHLXQ R11, CX, CX\n\tORQ   CX, R10\n\nbitReader_fillFast_1_end:\n\tSHRXQ   DI, R10, CX\n\tMOVW    (SI)(CX*2), CX\n\tMOVB    CH, AL\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLXQ   CX, R10, R10\n\tSHRXQ   DI, R10, CX\n\tMOVW    (SI)(CX*2), CX\n\tMOVB    CH, AH\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLXQ   CX, R10, R10\n\tBSWAPL  AX\n\tCMPQ    R11, $0x20\n\tJL      bitReader_fillFast_2_end\n\tSUBQ    $0x20, R11\n\tSUBQ    $0x04, R9\n\tMOVL    (R8)(R9*1), CX\n\tSHLXQ   R11, CX, CX\n\tORQ     CX, R10\n\nbitReader_fillFast_2_end:\n\tSHRXQ   DI, R10, CX\n\tMOVW    (SI)(CX*2), CX\n\tMOVB    CH, AH\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLXQ   CX, R10, R10\n\tSHRXQ   DI, R10, CX\n\tMOVW    (SI)(CX*2), CX\n\tMOVB    CH, AL\n\tMOVBQZX CL, CX\n\tADDQ    CX, R11\n\tSHLXQ   CX, R10, R10\n\tBSWAPL  AX\n\n\t// Store the decoded values\n\tMOVL AX, (DX)\n\tADDQ $0x04, DX\n\nloop_condition:\n\tCMPQ R9, $0x08\n\tJGE  main_loop\n\n\t// Update ctx structure\n\tMOVQ ctx+0(FP), AX\n\tSUBQ 16(AX), DX\n\tMOVQ DX, 40(AX)\n\tMOVQ (AX), AX\n\tMOVQ R9, 24(AX)\n\tMOVQ R10, 32(AX)\n\tMOVB R11, 40(AX)\n\tRET\n\n\t// Report error\nerror_max_decoded_size_exceeded:\n\tMOVQ ctx+0(FP), AX\n\tMOVQ $-1, CX\n\tMOVQ CX, 40(AX)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/decompress_generic.go",
    "content": "//go:build !amd64 || appengine || !gc || noasm\n// +build !amd64 appengine !gc noasm\n\n// This file contains a generic implementation of Decoder.Decompress4X.\npackage huff0\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Decompress4X will decompress a 4X encoded stream.\n// The length of the supplied input must match the end of a block exactly.\n// The *capacity* of the dst slice must match the destination size of\n// the uncompressed data exactly.\nfunc (d *Decoder) Decompress4X(dst, src []byte) ([]byte, error) {\n\tif len(d.dt.single) == 0 {\n\t\treturn nil, errors.New(\"no table loaded\")\n\t}\n\tif len(src) < 6+(4*1) {\n\t\treturn nil, errors.New(\"input too small\")\n\t}\n\tif use8BitTables && d.actualTableLog <= 8 {\n\t\treturn d.decompress4X8bit(dst, src)\n\t}\n\n\tvar br [4]bitReaderShifted\n\t// Decode \"jump table\"\n\tstart := 6\n\tfor i := 0; i < 3; i++ {\n\t\tlength := int(src[i*2]) | (int(src[i*2+1]) << 8)\n\t\tif start+length >= len(src) {\n\t\t\treturn nil, errors.New(\"truncated input (or invalid offset)\")\n\t\t}\n\t\terr := br[i].init(src[start : start+length])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstart += length\n\t}\n\terr := br[3].init(src[start:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// destination, offset to match first output\n\tdstSize := cap(dst)\n\tdst = dst[:dstSize]\n\tout := dst\n\tdstEvery := (dstSize + 3) / 4\n\n\tconst tlSize = 1 << tableLogMax\n\tconst tlMask = tlSize - 1\n\tsingle := d.dt.single[:tlSize]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbuf := d.buffer()\n\tvar off uint8\n\tvar decoded int\n\n\t// Decode 2 values from each decoder/loop.\n\tconst bufoff = 256\n\tfor {\n\t\tif br[0].off < 4 || br[1].off < 4 || br[2].off < 4 || br[3].off < 4 {\n\t\t\tbreak\n\t\t}\n\n\t\t{\n\t\t\tconst stream = 0\n\t\t\tconst stream2 = 1\n\t\t\tbr[stream].fillFast()\n\t\t\tbr[stream2].fillFast()\n\n\t\t\tval := br[stream].peekBitsFast(d.actualTableLog)\n\t\t\tval2 := br[stream2].peekBitsFast(d.actualTableLog)\n\t\t\tv := single[val&tlMask]\n\t\t\tv2 := single[val2&tlMask]\n\t\t\tbr[stream].advance(uint8(v.entry))\n\t\t\tbr[stream2].advance(uint8(v2.entry))\n\t\t\tbuf[stream][off] = uint8(v.entry >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2.entry >> 8)\n\n\t\t\tval = br[stream].peekBitsFast(d.actualTableLog)\n\t\t\tval2 = br[stream2].peekBitsFast(d.actualTableLog)\n\t\t\tv = single[val&tlMask]\n\t\t\tv2 = single[val2&tlMask]\n\t\t\tbr[stream].advance(uint8(v.entry))\n\t\t\tbr[stream2].advance(uint8(v2.entry))\n\t\t\tbuf[stream][off+1] = uint8(v.entry >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2.entry >> 8)\n\t\t}\n\n\t\t{\n\t\t\tconst stream = 2\n\t\t\tconst stream2 = 3\n\t\t\tbr[stream].fillFast()\n\t\t\tbr[stream2].fillFast()\n\n\t\t\tval := br[stream].peekBitsFast(d.actualTableLog)\n\t\t\tval2 := br[stream2].peekBitsFast(d.actualTableLog)\n\t\t\tv := single[val&tlMask]\n\t\t\tv2 := single[val2&tlMask]\n\t\t\tbr[stream].advance(uint8(v.entry))\n\t\t\tbr[stream2].advance(uint8(v2.entry))\n\t\t\tbuf[stream][off] = uint8(v.entry >> 8)\n\t\t\tbuf[stream2][off] = uint8(v2.entry >> 8)\n\n\t\t\tval = br[stream].peekBitsFast(d.actualTableLog)\n\t\t\tval2 = br[stream2].peekBitsFast(d.actualTableLog)\n\t\t\tv = single[val&tlMask]\n\t\t\tv2 = single[val2&tlMask]\n\t\t\tbr[stream].advance(uint8(v.entry))\n\t\t\tbr[stream2].advance(uint8(v2.entry))\n\t\t\tbuf[stream][off+1] = uint8(v.entry >> 8)\n\t\t\tbuf[stream2][off+1] = uint8(v2.entry >> 8)\n\t\t}\n\n\t\toff += 2\n\n\t\tif off == 0 {\n\t\t\tif bufoff > dstEvery {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 1\")\n\t\t\t}\n\t\t\t// There must at least be 3 buffers left.\n\t\t\tif len(out)-bufoff < dstEvery*3 {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 2\")\n\t\t\t}\n\t\t\t//copy(out, buf[0][:])\n\t\t\t//copy(out[dstEvery:], buf[1][:])\n\t\t\t//copy(out[dstEvery*2:], buf[2][:])\n\t\t\t//copy(out[dstEvery*3:], buf[3][:])\n\t\t\t*(*[bufoff]byte)(out) = buf[0]\n\t\t\t*(*[bufoff]byte)(out[dstEvery:]) = buf[1]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*2:]) = buf[2]\n\t\t\t*(*[bufoff]byte)(out[dstEvery*3:]) = buf[3]\n\t\t\tout = out[bufoff:]\n\t\t\tdecoded += bufoff * 4\n\t\t}\n\t}\n\tif off > 0 {\n\t\tioff := int(off)\n\t\tif len(out) < dstEvery*3+ioff {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 3\")\n\t\t}\n\t\tcopy(out, buf[0][:off])\n\t\tcopy(out[dstEvery:], buf[1][:off])\n\t\tcopy(out[dstEvery*2:], buf[2][:off])\n\t\tcopy(out[dstEvery*3:], buf[3][:off])\n\t\tdecoded += int(off) * 4\n\t\tout = out[off:]\n\t}\n\n\t// Decode remaining.\n\tremainBytes := dstEvery - (decoded / 4)\n\tfor i := range br {\n\t\toffset := dstEvery * i\n\t\tendsAt := offset + remainBytes\n\t\tif endsAt > len(out) {\n\t\t\tendsAt = len(out)\n\t\t}\n\t\tbr := &br[i]\n\t\tbitsLeft := br.remaining()\n\t\tfor bitsLeft > 0 {\n\t\t\tbr.fill()\n\t\t\tif offset >= endsAt {\n\t\t\t\td.bufs.Put(buf)\n\t\t\t\treturn nil, errors.New(\"corruption detected: stream overrun 4\")\n\t\t\t}\n\n\t\t\t// Read value and increment offset.\n\t\t\tval := br.peekBitsFast(d.actualTableLog)\n\t\t\tv := single[val&tlMask].entry\n\t\t\tnBits := uint8(v)\n\t\t\tbr.advance(nBits)\n\t\t\tbitsLeft -= uint(nBits)\n\t\t\tout[offset] = uint8(v >> 8)\n\t\t\toffset++\n\t\t}\n\t\tif offset != endsAt {\n\t\t\td.bufs.Put(buf)\n\t\t\treturn nil, fmt.Errorf(\"corruption detected: short output block %d, end %d != %d\", i, offset, endsAt)\n\t\t}\n\t\tdecoded += offset - dstEvery*i\n\t\terr = br.close()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\td.bufs.Put(buf)\n\tif dstSize != decoded {\n\t\treturn nil, errors.New(\"corruption detected: short output block\")\n\t}\n\treturn dst, nil\n}\n\n// Decompress1X will decompress a 1X encoded stream.\n// The cap of the output buffer will be the maximum decompressed size.\n// The length of the supplied input must match the end of a block exactly.\nfunc (d *Decoder) Decompress1X(dst, src []byte) ([]byte, error) {\n\tif len(d.dt.single) == 0 {\n\t\treturn nil, errors.New(\"no table loaded\")\n\t}\n\tif use8BitTables && d.actualTableLog <= 8 {\n\t\treturn d.decompress1X8Bit(dst, src)\n\t}\n\tvar br bitReaderShifted\n\terr := br.init(src)\n\tif err != nil {\n\t\treturn dst, err\n\t}\n\tmaxDecodedSize := cap(dst)\n\tdst = dst[:0]\n\n\t// Avoid bounds check by always having full sized table.\n\tconst tlSize = 1 << tableLogMax\n\tconst tlMask = tlSize - 1\n\tdt := d.dt.single[:tlSize]\n\n\t// Use temp table to avoid bound checks/append penalty.\n\tbufs := d.buffer()\n\tbuf := &bufs[0]\n\tvar off uint8\n\n\tfor br.off >= 8 {\n\t\tbr.fillFast()\n\t\tv := dt[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+0] = uint8(v.entry >> 8)\n\n\t\tv = dt[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+1] = uint8(v.entry >> 8)\n\n\t\t// Refill\n\t\tbr.fillFast()\n\n\t\tv = dt[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+2] = uint8(v.entry >> 8)\n\n\t\tv = dt[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tbr.advance(uint8(v.entry))\n\t\tbuf[off+3] = uint8(v.entry >> 8)\n\n\t\toff += 4\n\t\tif off == 0 {\n\t\t\tif len(dst)+256 > maxDecodedSize {\n\t\t\t\tbr.close()\n\t\t\t\td.bufs.Put(bufs)\n\t\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t\t}\n\t\t\tdst = append(dst, buf[:]...)\n\t\t}\n\t}\n\n\tif len(dst)+int(off) > maxDecodedSize {\n\t\td.bufs.Put(bufs)\n\t\tbr.close()\n\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t}\n\tdst = append(dst, buf[:off]...)\n\n\t// br < 8, so uint8 is fine\n\tbitsLeft := uint8(br.off)*8 + 64 - br.bitsRead\n\tfor bitsLeft > 0 {\n\t\tbr.fill()\n\t\tif false && br.bitsRead >= 32 {\n\t\t\tif br.off >= 4 {\n\t\t\t\tv := br.in[br.off-4:]\n\t\t\t\tv = v[:4]\n\t\t\t\tlow := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24)\n\t\t\t\tbr.value = (br.value << 32) | uint64(low)\n\t\t\t\tbr.bitsRead -= 32\n\t\t\t\tbr.off -= 4\n\t\t\t} else {\n\t\t\t\tfor br.off > 0 {\n\t\t\t\t\tbr.value = (br.value << 8) | uint64(br.in[br.off-1])\n\t\t\t\t\tbr.bitsRead -= 8\n\t\t\t\t\tbr.off--\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(dst) >= maxDecodedSize {\n\t\t\td.bufs.Put(bufs)\n\t\t\tbr.close()\n\t\t\treturn nil, ErrMaxDecodedSizeExceeded\n\t\t}\n\t\tv := d.dt.single[br.peekBitsFast(d.actualTableLog)&tlMask]\n\t\tnBits := uint8(v.entry)\n\t\tbr.advance(nBits)\n\t\tbitsLeft -= nBits\n\t\tdst = append(dst, uint8(v.entry>>8))\n\t}\n\td.bufs.Put(bufs)\n\treturn dst, br.close()\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/huff0/huff0.go",
    "content": "// Package huff0 provides fast huffman encoding as used in zstd.\n//\n// See README.md at https://github.com/klauspost/compress/tree/master/huff0 for details.\npackage huff0\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/bits\"\n\t\"sync\"\n\n\t\"github.com/klauspost/compress/fse\"\n)\n\nconst (\n\tmaxSymbolValue = 255\n\n\t// zstandard limits tablelog to 11, see:\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#huffman-tree-description\n\ttableLogMax     = 11\n\ttableLogDefault = 11\n\tminTablelog     = 5\n\thuffNodesLen    = 512\n\n\t// BlockSizeMax is maximum input size for a single block uncompressed.\n\tBlockSizeMax = 1<<18 - 1\n)\n\nvar (\n\t// ErrIncompressible is returned when input is judged to be too hard to compress.\n\tErrIncompressible = errors.New(\"input is not compressible\")\n\n\t// ErrUseRLE is returned from the compressor when the input is a single byte value repeated.\n\tErrUseRLE = errors.New(\"input is single value repeated\")\n\n\t// ErrTooBig is return if input is too large for a single block.\n\tErrTooBig = errors.New(\"input too big\")\n\n\t// ErrMaxDecodedSizeExceeded is return if input is too large for a single block.\n\tErrMaxDecodedSizeExceeded = errors.New(\"maximum output size exceeded\")\n)\n\ntype ReusePolicy uint8\n\nconst (\n\t// ReusePolicyAllow will allow reuse if it produces smaller output.\n\tReusePolicyAllow ReusePolicy = iota\n\n\t// ReusePolicyPrefer will re-use aggressively if possible.\n\t// This will not check if a new table will produce smaller output,\n\t// except if the current table is impossible to use or\n\t// compressed output is bigger than input.\n\tReusePolicyPrefer\n\n\t// ReusePolicyNone will disable re-use of tables.\n\t// This is slightly faster than ReusePolicyAllow but may produce larger output.\n\tReusePolicyNone\n\n\t// ReusePolicyMust must allow reuse and produce smaller output.\n\tReusePolicyMust\n)\n\ntype Scratch struct {\n\tcount [maxSymbolValue + 1]uint32\n\n\t// Per block parameters.\n\t// These can be used to override compression parameters of the block.\n\t// Do not touch, unless you know what you are doing.\n\n\t// Out is output buffer.\n\t// If the scratch is re-used before the caller is done processing the output,\n\t// set this field to nil.\n\t// Otherwise the output buffer will be re-used for next Compression/Decompression step\n\t// and allocation will be avoided.\n\tOut []byte\n\n\t// OutTable will contain the table data only, if a new table has been generated.\n\t// Slice of the returned data.\n\tOutTable []byte\n\n\t// OutData will contain the compressed data.\n\t// Slice of the returned data.\n\tOutData []byte\n\n\t// MaxDecodedSize will set the maximum allowed output size.\n\t// This value will automatically be set to BlockSizeMax if not set.\n\t// Decoders will return ErrMaxDecodedSizeExceeded is this limit is exceeded.\n\tMaxDecodedSize int\n\n\tsrcLen int\n\n\t// MaxSymbolValue will override the maximum symbol value of the next block.\n\tMaxSymbolValue uint8\n\n\t// TableLog will attempt to override the tablelog for the next block.\n\t// Must be <= 11 and >= 5.\n\tTableLog uint8\n\n\t// Reuse will specify the reuse policy\n\tReuse ReusePolicy\n\n\t// WantLogLess allows to specify a log 2 reduction that should at least be achieved,\n\t// otherwise the block will be returned as incompressible.\n\t// The reduction should then at least be (input size >> WantLogLess)\n\t// If WantLogLess == 0 any improvement will do.\n\tWantLogLess uint8\n\n\tsymbolLen      uint16 // Length of active part of the symbol table.\n\tmaxCount       int    // count of the most probable symbol\n\tclearCount     bool   // clear count\n\tactualTableLog uint8  // Selected tablelog.\n\tprevTableLog   uint8  // Tablelog for previous table\n\tprevTable      cTable // Table used for previous compression.\n\tcTable         cTable // compression table\n\tdt             dTable // decompression table\n\tnodes          []nodeElt\n\ttmpOut         [4][]byte\n\tfse            *fse.Scratch\n\tdecPool        sync.Pool // *[4][256]byte buffers.\n\thuffWeight     [maxSymbolValue + 1]byte\n}\n\n// TransferCTable will transfer the previously used compression table.\nfunc (s *Scratch) TransferCTable(src *Scratch) {\n\tif cap(s.prevTable) < len(src.prevTable) {\n\t\ts.prevTable = make(cTable, 0, maxSymbolValue+1)\n\t}\n\ts.prevTable = s.prevTable[:len(src.prevTable)]\n\tcopy(s.prevTable, src.prevTable)\n\ts.prevTableLog = src.prevTableLog\n}\n\nfunc (s *Scratch) prepare(in []byte) (*Scratch, error) {\n\tif len(in) > BlockSizeMax {\n\t\treturn nil, ErrTooBig\n\t}\n\tif s == nil {\n\t\ts = &Scratch{}\n\t}\n\tif s.MaxSymbolValue == 0 {\n\t\ts.MaxSymbolValue = maxSymbolValue\n\t}\n\tif s.TableLog == 0 {\n\t\ts.TableLog = tableLogDefault\n\t}\n\tif s.TableLog > tableLogMax || s.TableLog < minTablelog {\n\t\treturn nil, fmt.Errorf(\" invalid tableLog %d (%d -> %d)\", s.TableLog, minTablelog, tableLogMax)\n\t}\n\tif s.MaxDecodedSize <= 0 || s.MaxDecodedSize > BlockSizeMax {\n\t\ts.MaxDecodedSize = BlockSizeMax\n\t}\n\tif s.clearCount && s.maxCount == 0 {\n\t\tfor i := range s.count {\n\t\t\ts.count[i] = 0\n\t\t}\n\t\ts.clearCount = false\n\t}\n\tif cap(s.Out) == 0 {\n\t\ts.Out = make([]byte, 0, len(in))\n\t}\n\ts.Out = s.Out[:0]\n\n\ts.OutTable = nil\n\ts.OutData = nil\n\tif cap(s.nodes) < huffNodesLen+1 {\n\t\ts.nodes = make([]nodeElt, 0, huffNodesLen+1)\n\t}\n\ts.nodes = s.nodes[:0]\n\tif s.fse == nil {\n\t\ts.fse = &fse.Scratch{}\n\t}\n\ts.srcLen = len(in)\n\n\treturn s, nil\n}\n\ntype cTable []cTableEntry\n\nfunc (c cTable) write(s *Scratch) error {\n\tvar (\n\t\t// precomputed conversion table\n\t\tbitsToWeight [tableLogMax + 1]byte\n\t\thuffLog      = s.actualTableLog\n\t\t// last weight is not saved.\n\t\tmaxSymbolValue = uint8(s.symbolLen - 1)\n\t\thuffWeight     = s.huffWeight[:256]\n\t)\n\tconst (\n\t\tmaxFSETableLog = 6\n\t)\n\t// convert to weight\n\tbitsToWeight[0] = 0\n\tfor n := uint8(1); n < huffLog+1; n++ {\n\t\tbitsToWeight[n] = huffLog + 1 - n\n\t}\n\n\t// Acquire histogram for FSE.\n\thist := s.fse.Histogram()\n\thist = hist[:256]\n\tfor i := range hist[:16] {\n\t\thist[i] = 0\n\t}\n\tfor n := range maxSymbolValue {\n\t\tv := bitsToWeight[c[n].nBits] & 15\n\t\thuffWeight[n] = v\n\t\thist[v]++\n\t}\n\n\t// FSE compress if feasible.\n\tif maxSymbolValue >= 2 {\n\t\thuffMaxCnt := uint32(0)\n\t\thuffMax := uint8(0)\n\t\tfor i, v := range hist[:16] {\n\t\t\tif v == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thuffMax = byte(i)\n\t\t\tif v > huffMaxCnt {\n\t\t\t\thuffMaxCnt = v\n\t\t\t}\n\t\t}\n\t\ts.fse.HistogramFinished(huffMax, int(huffMaxCnt))\n\t\ts.fse.TableLog = maxFSETableLog\n\t\tb, err := fse.Compress(huffWeight[:maxSymbolValue], s.fse)\n\t\tif err == nil && len(b) < int(s.symbolLen>>1) {\n\t\t\ts.Out = append(s.Out, uint8(len(b)))\n\t\t\ts.Out = append(s.Out, b...)\n\t\t\treturn nil\n\t\t}\n\t\t// Unable to compress (RLE/uncompressible)\n\t}\n\t// write raw values as 4-bits (max : 15)\n\tif maxSymbolValue > (256 - 128) {\n\t\t// should not happen : likely means source cannot be compressed\n\t\treturn ErrIncompressible\n\t}\n\top := s.Out\n\t// special case, pack weights 4 bits/weight.\n\top = append(op, 128|(maxSymbolValue-1))\n\t// be sure it doesn't cause msan issue in final combination\n\thuffWeight[maxSymbolValue] = 0\n\tfor n := uint16(0); n < uint16(maxSymbolValue); n += 2 {\n\t\top = append(op, (huffWeight[n]<<4)|huffWeight[n+1])\n\t}\n\ts.Out = op\n\treturn nil\n}\n\nfunc (c cTable) estTableSize(s *Scratch) (sz int, err error) {\n\tvar (\n\t\t// precomputed conversion table\n\t\tbitsToWeight [tableLogMax + 1]byte\n\t\thuffLog      = s.actualTableLog\n\t\t// last weight is not saved.\n\t\tmaxSymbolValue = uint8(s.symbolLen - 1)\n\t\thuffWeight     = s.huffWeight[:256]\n\t)\n\tconst (\n\t\tmaxFSETableLog = 6\n\t)\n\t// convert to weight\n\tbitsToWeight[0] = 0\n\tfor n := uint8(1); n < huffLog+1; n++ {\n\t\tbitsToWeight[n] = huffLog + 1 - n\n\t}\n\n\t// Acquire histogram for FSE.\n\thist := s.fse.Histogram()\n\thist = hist[:256]\n\tfor i := range hist[:16] {\n\t\thist[i] = 0\n\t}\n\tfor n := range maxSymbolValue {\n\t\tv := bitsToWeight[c[n].nBits] & 15\n\t\thuffWeight[n] = v\n\t\thist[v]++\n\t}\n\n\t// FSE compress if feasible.\n\tif maxSymbolValue >= 2 {\n\t\thuffMaxCnt := uint32(0)\n\t\thuffMax := uint8(0)\n\t\tfor i, v := range hist[:16] {\n\t\t\tif v == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thuffMax = byte(i)\n\t\t\tif v > huffMaxCnt {\n\t\t\t\thuffMaxCnt = v\n\t\t\t}\n\t\t}\n\t\ts.fse.HistogramFinished(huffMax, int(huffMaxCnt))\n\t\ts.fse.TableLog = maxFSETableLog\n\t\tb, err := fse.Compress(huffWeight[:maxSymbolValue], s.fse)\n\t\tif err == nil && len(b) < int(s.symbolLen>>1) {\n\t\t\tsz += 1 + len(b)\n\t\t\treturn sz, nil\n\t\t}\n\t\t// Unable to compress (RLE/uncompressible)\n\t}\n\t// write raw values as 4-bits (max : 15)\n\tif maxSymbolValue > (256 - 128) {\n\t\t// should not happen : likely means source cannot be compressed\n\t\treturn 0, ErrIncompressible\n\t}\n\t// special case, pack weights 4 bits/weight.\n\tsz += 1 + int(maxSymbolValue/2)\n\treturn sz, nil\n}\n\n// estimateSize returns the estimated size in bytes of the input represented in the\n// histogram supplied.\nfunc (c cTable) estimateSize(hist []uint32) int {\n\tnbBits := uint32(7)\n\tfor i, v := range c[:len(hist)] {\n\t\tnbBits += uint32(v.nBits) * hist[i]\n\t}\n\treturn int(nbBits >> 3)\n}\n\n// minSize returns the minimum possible size considering the shannon limit.\nfunc (s *Scratch) minSize(total int) int {\n\tnbBits := float64(7)\n\tfTotal := float64(total)\n\tfor _, v := range s.count[:s.symbolLen] {\n\t\tn := float64(v)\n\t\tif n > 0 {\n\t\t\tnbBits += math.Log2(fTotal/n) * n\n\t\t}\n\t}\n\treturn int(nbBits) >> 3\n}\n\nfunc highBit32(val uint32) (n uint32) {\n\treturn uint32(bits.Len32(val) - 1)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo.go",
    "content": "// Package cpuinfo gives runtime info about the current CPU.\n//\n// This is a very limited module meant for use internally\n// in this project. For more versatile solution check\n// https://github.com/klauspost/cpuid.\npackage cpuinfo\n\n// HasBMI1 checks whether an x86 CPU supports the BMI1 extension.\nfunc HasBMI1() bool {\n\treturn hasBMI1\n}\n\n// HasBMI2 checks whether an x86 CPU supports the BMI2 extension.\nfunc HasBMI2() bool {\n\treturn hasBMI2\n}\n\n// DisableBMI2 will disable BMI2, for testing purposes.\n// Call returned function to restore previous state.\nfunc DisableBMI2() func() {\n\told := hasBMI2\n\thasBMI2 = false\n\treturn func() {\n\t\thasBMI2 = old\n\t}\n}\n\n// HasBMI checks whether an x86 CPU supports both BMI1 and BMI2 extensions.\nfunc HasBMI() bool {\n\treturn HasBMI1() && HasBMI2()\n}\n\nvar hasBMI1 bool\nvar hasBMI2 bool\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go",
    "content": "//go:build amd64 && !appengine && !noasm && gc\n// +build amd64,!appengine,!noasm,gc\n\npackage cpuinfo\n\n// go:noescape\nfunc x86extensions() (bmi1, bmi2 bool)\n\nfunc init() {\n\thasBMI1, hasBMI2 = x86extensions()\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.s",
    "content": "// +build !appengine\n// +build gc\n// +build !noasm\n\n#include \"textflag.h\"\n#include \"funcdata.h\"\n#include \"go_asm.h\"\n\nTEXT ·x86extensions(SB), NOSPLIT, $0\n\t// 1. determine max EAX value\n\tXORQ AX, AX\n\tCPUID\n\n\tCMPQ AX, $7\n\tJB   unsupported\n\n\t// 2. EAX = 7, ECX = 0 --- see Table 3-8 \"Information Returned by CPUID Instruction\"\n\tMOVQ $7, AX\n\tMOVQ $0, CX\n\tCPUID\n\n\tBTQ   $3, BX // bit 3 = BMI1\n\tSETCS AL\n\n\tBTQ   $8, BX // bit 8 = BMI2\n\tSETCS AH\n\n\tMOVB AL, bmi1+0(FP)\n\tMOVB AH, bmi2+1(FP)\n\tRET\n\nunsupported:\n\tXORQ AX, AX\n\tMOVB AL, bmi1+0(FP)\n\tMOVB AL, bmi2+1(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/le/le.go",
    "content": "package le\n\ntype Indexer interface {\n\tint | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go",
    "content": "//go:build !(amd64 || arm64 || ppc64le || riscv64) || nounsafe || purego || appengine\n\npackage le\n\nimport (\n\t\"encoding/binary\"\n)\n\n// Load8 will load from b at index i.\nfunc Load8[I Indexer](b []byte, i I) byte {\n\treturn b[i]\n}\n\n// Load16 will load from b at index i.\nfunc Load16[I Indexer](b []byte, i I) uint16 {\n\treturn binary.LittleEndian.Uint16(b[i:])\n}\n\n// Load32 will load from b at index i.\nfunc Load32[I Indexer](b []byte, i I) uint32 {\n\treturn binary.LittleEndian.Uint32(b[i:])\n}\n\n// Load64 will load from b at index i.\nfunc Load64[I Indexer](b []byte, i I) uint64 {\n\treturn binary.LittleEndian.Uint64(b[i:])\n}\n\n// Store16 will store v at b.\nfunc Store16(b []byte, v uint16) {\n\tbinary.LittleEndian.PutUint16(b, v)\n}\n\n// Store32 will store v at b.\nfunc Store32(b []byte, v uint32) {\n\tbinary.LittleEndian.PutUint32(b, v)\n}\n\n// Store64 will store v at b.\nfunc Store64[I Indexer](b []byte, i I, v uint64) {\n\tbinary.LittleEndian.PutUint64(b[i:], v)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go",
    "content": "// We enable 64 bit LE platforms:\n\n//go:build (amd64 || arm64 || ppc64le || riscv64) && !nounsafe && !purego && !appengine\n\npackage le\n\nimport (\n\t\"unsafe\"\n)\n\n// Load8 will load from b at index i.\nfunc Load8[I Indexer](b []byte, i I) byte {\n\t//return binary.LittleEndian.Uint16(b[i:])\n\t//return *(*uint16)(unsafe.Pointer(&b[i]))\n\treturn *(*byte)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i))\n}\n\n// Load16 will load from b at index i.\nfunc Load16[I Indexer](b []byte, i I) uint16 {\n\t//return binary.LittleEndian.Uint16(b[i:])\n\t//return *(*uint16)(unsafe.Pointer(&b[i]))\n\treturn *(*uint16)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i))\n}\n\n// Load32 will load from b at index i.\nfunc Load32[I Indexer](b []byte, i I) uint32 {\n\t//return binary.LittleEndian.Uint32(b[i:])\n\t//return *(*uint32)(unsafe.Pointer(&b[i]))\n\treturn *(*uint32)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i))\n}\n\n// Load64 will load from b at index i.\nfunc Load64[I Indexer](b []byte, i I) uint64 {\n\t//return binary.LittleEndian.Uint64(b[i:])\n\t//return *(*uint64)(unsafe.Pointer(&b[i]))\n\treturn *(*uint64)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i))\n}\n\n// Store16 will store v at b.\nfunc Store16(b []byte, v uint16) {\n\t*(*uint16)(unsafe.Pointer(unsafe.SliceData(b))) = v\n}\n\n// Store32 will store v at b.\nfunc Store32(b []byte, v uint32) {\n\t*(*uint32)(unsafe.Pointer(unsafe.SliceData(b))) = v\n}\n\n// Store64 will store v at b[i:].\nfunc Store64[I Indexer](b []byte, i I, v uint64) {\n\t*(*uint64)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i)) = v\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/snapref/LICENSE",
    "content": "Copyright (c) 2011 The Snappy-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/klauspost/compress/internal/snapref/decode.go",
    "content": "// Copyright 2011 The Snappy-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 snapref\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\nvar (\n\t// ErrCorrupt reports that the input is invalid.\n\tErrCorrupt = errors.New(\"snappy: corrupt input\")\n\t// ErrTooLarge reports that the uncompressed length is too large.\n\tErrTooLarge = errors.New(\"snappy: decoded block is too large\")\n\t// ErrUnsupported reports that the input isn't supported.\n\tErrUnsupported = errors.New(\"snappy: unsupported input\")\n\n\terrUnsupportedLiteralLength = errors.New(\"snappy: unsupported literal length\")\n)\n\n// DecodedLen returns the length of the decoded block.\nfunc DecodedLen(src []byte) (int, error) {\n\tv, _, err := decodedLen(src)\n\treturn v, err\n}\n\n// decodedLen returns the length of the decoded block and the number of bytes\n// that the length header occupied.\nfunc decodedLen(src []byte) (blockLen, headerLen int, err error) {\n\tv, n := binary.Uvarint(src)\n\tif n <= 0 || v > 0xffffffff {\n\t\treturn 0, 0, ErrCorrupt\n\t}\n\n\tconst wordSize = 32 << (^uint(0) >> 32 & 1)\n\tif wordSize == 32 && v > 0x7fffffff {\n\t\treturn 0, 0, ErrTooLarge\n\t}\n\treturn int(v), n, nil\n}\n\nconst (\n\tdecodeErrCodeCorrupt                  = 1\n\tdecodeErrCodeUnsupportedLiteralLength = 2\n)\n\n// Decode returns the decoded form of src. The returned slice may be a sub-\n// slice of dst if dst was large enough to hold the entire decoded block.\n// Otherwise, a newly allocated slice will be returned.\n//\n// The dst and src must not overlap. It is valid to pass a nil dst.\n//\n// Decode handles the Snappy block format, not the Snappy stream format.\nfunc Decode(dst, src []byte) ([]byte, error) {\n\tdLen, s, err := decodedLen(src)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif dLen <= len(dst) {\n\t\tdst = dst[:dLen]\n\t} else {\n\t\tdst = make([]byte, dLen)\n\t}\n\tswitch decode(dst, src[s:]) {\n\tcase 0:\n\t\treturn dst, nil\n\tcase decodeErrCodeUnsupportedLiteralLength:\n\t\treturn nil, errUnsupportedLiteralLength\n\t}\n\treturn nil, ErrCorrupt\n}\n\n// NewReader returns a new Reader that decompresses from r, using the framing\n// format described at\n// https://github.com/google/snappy/blob/master/framing_format.txt\nfunc NewReader(r io.Reader) *Reader {\n\treturn &Reader{\n\t\tr:       r,\n\t\tdecoded: make([]byte, maxBlockSize),\n\t\tbuf:     make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize),\n\t}\n}\n\n// Reader is an io.Reader that can read Snappy-compressed bytes.\n//\n// Reader handles the Snappy stream format, not the Snappy block format.\ntype Reader struct {\n\tr       io.Reader\n\terr     error\n\tdecoded []byte\n\tbuf     []byte\n\t// decoded[i:j] contains decoded bytes that have not yet been passed on.\n\ti, j       int\n\treadHeader bool\n}\n\n// Reset discards any buffered data, resets all state, and switches the Snappy\n// reader to read from r. This permits reusing a Reader rather than allocating\n// a new one.\nfunc (r *Reader) Reset(reader io.Reader) {\n\tr.r = reader\n\tr.err = nil\n\tr.i = 0\n\tr.j = 0\n\tr.readHeader = false\n}\n\nfunc (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) {\n\tif _, r.err = io.ReadFull(r.r, p); r.err != nil {\n\t\tif r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) {\n\t\t\tr.err = ErrCorrupt\n\t\t}\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (r *Reader) fill() error {\n\tfor r.i >= r.j {\n\t\tif !r.readFull(r.buf[:4], true) {\n\t\t\treturn r.err\n\t\t}\n\t\tchunkType := r.buf[0]\n\t\tif !r.readHeader {\n\t\t\tif chunkType != chunkTypeStreamIdentifier {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tr.readHeader = true\n\t\t}\n\t\tchunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16\n\t\tif chunkLen > len(r.buf) {\n\t\t\tr.err = ErrUnsupported\n\t\t\treturn r.err\n\t\t}\n\n\t\t// The chunk types are specified at\n\t\t// https://github.com/google/snappy/blob/master/framing_format.txt\n\t\tswitch chunkType {\n\t\tcase chunkTypeCompressedData:\n\t\t\t// Section 4.2. Compressed data (chunk type 0x00).\n\t\t\tif chunkLen < checksumSize {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tbuf := r.buf[:chunkLen]\n\t\t\tif !r.readFull(buf, false) {\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tchecksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24\n\t\t\tbuf = buf[checksumSize:]\n\n\t\t\tn, err := DecodedLen(buf)\n\t\t\tif err != nil {\n\t\t\t\tr.err = err\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif n > len(r.decoded) {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif _, err := Decode(r.decoded, buf); err != nil {\n\t\t\t\tr.err = err\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif crc(r.decoded[:n]) != checksum {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tr.i, r.j = 0, n\n\t\t\tcontinue\n\n\t\tcase chunkTypeUncompressedData:\n\t\t\t// Section 4.3. Uncompressed data (chunk type 0x01).\n\t\t\tif chunkLen < checksumSize {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tbuf := r.buf[:checksumSize]\n\t\t\tif !r.readFull(buf, false) {\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tchecksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24\n\t\t\t// Read directly into r.decoded instead of via r.buf.\n\t\t\tn := chunkLen - checksumSize\n\t\t\tif n > len(r.decoded) {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif !r.readFull(r.decoded[:n], false) {\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif crc(r.decoded[:n]) != checksum {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tr.i, r.j = 0, n\n\t\t\tcontinue\n\n\t\tcase chunkTypeStreamIdentifier:\n\t\t\t// Section 4.1. Stream identifier (chunk type 0xff).\n\t\t\tif chunkLen != len(magicBody) {\n\t\t\t\tr.err = ErrCorrupt\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tif !r.readFull(r.buf[:len(magicBody)], false) {\n\t\t\t\treturn r.err\n\t\t\t}\n\t\t\tfor i := range len(magicBody) {\n\t\t\t\tif r.buf[i] != magicBody[i] {\n\t\t\t\t\tr.err = ErrCorrupt\n\t\t\t\t\treturn r.err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif chunkType <= 0x7f {\n\t\t\t// Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f).\n\t\t\tr.err = ErrUnsupported\n\t\t\treturn r.err\n\t\t}\n\t\t// Section 4.4 Padding (chunk type 0xfe).\n\t\t// Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd).\n\t\tif !r.readFull(r.buf[:chunkLen], false) {\n\t\t\treturn r.err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Read satisfies the io.Reader interface.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tif r.err != nil {\n\t\treturn 0, r.err\n\t}\n\n\tif err := r.fill(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := copy(p, r.decoded[r.i:r.j])\n\tr.i += n\n\treturn n, nil\n}\n\n// ReadByte satisfies the io.ByteReader interface.\nfunc (r *Reader) ReadByte() (byte, error) {\n\tif r.err != nil {\n\t\treturn 0, r.err\n\t}\n\n\tif err := r.fill(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tc := r.decoded[r.i]\n\tr.i++\n\treturn c, nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/snapref/decode_other.go",
    "content": "// Copyright 2016 The Snappy-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 snapref\n\n// decode writes the decoding of src to dst. It assumes that the varint-encoded\n// length of the decompressed bytes has already been read, and that len(dst)\n// equals that length.\n//\n// It returns 0 on success or a decodeErrCodeXxx error code on failure.\nfunc decode(dst, src []byte) int {\n\tvar d, s, offset, length int\n\tfor s < len(src) {\n\t\tswitch src[s] & 0x03 {\n\t\tcase tagLiteral:\n\t\t\tx := uint32(src[s] >> 2)\n\t\t\tswitch {\n\t\t\tcase x < 60:\n\t\t\t\ts++\n\t\t\tcase x == 60:\n\t\t\t\ts += 2\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-1])\n\t\t\tcase x == 61:\n\t\t\t\ts += 3\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-2]) | uint32(src[s-1])<<8\n\t\t\tcase x == 62:\n\t\t\t\ts += 4\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16\n\t\t\tcase x == 63:\n\t\t\t\ts += 5\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24\n\t\t\t}\n\t\t\tlength = int(x) + 1\n\t\t\tif length <= 0 {\n\t\t\t\treturn decodeErrCodeUnsupportedLiteralLength\n\t\t\t}\n\t\t\tif length > len(dst)-d || length > len(src)-s {\n\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t}\n\t\t\tcopy(dst[d:], src[s:s+length])\n\t\t\td += length\n\t\t\ts += length\n\t\t\tcontinue\n\n\t\tcase tagCopy1:\n\t\t\ts += 2\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t}\n\t\t\tlength = 4 + int(src[s-2])>>2&0x7\n\t\t\toffset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]))\n\n\t\tcase tagCopy2:\n\t\t\ts += 3\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t}\n\t\t\tlength = 1 + int(src[s-3])>>2\n\t\t\toffset = int(uint32(src[s-2]) | uint32(src[s-1])<<8)\n\n\t\tcase tagCopy4:\n\t\t\ts += 5\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\treturn decodeErrCodeCorrupt\n\t\t\t}\n\t\t\tlength = 1 + int(src[s-5])>>2\n\t\t\toffset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24)\n\t\t}\n\n\t\tif offset <= 0 || d < offset || length > len(dst)-d {\n\t\t\treturn decodeErrCodeCorrupt\n\t\t}\n\t\t// Copy from an earlier sub-slice of dst to a later sub-slice.\n\t\t// If no overlap, use the built-in copy:\n\t\tif offset >= length {\n\t\t\tcopy(dst[d:d+length], dst[d-offset:])\n\t\t\td += length\n\t\t\tcontinue\n\t\t}\n\n\t\t// Unlike the built-in copy function, this byte-by-byte copy always runs\n\t\t// forwards, even if the slices overlap. Conceptually, this is:\n\t\t//\n\t\t// d += forwardCopy(dst[d:d+length], dst[d-offset:])\n\t\t//\n\t\t// We align the slices into a and b and show the compiler they are the same size.\n\t\t// This allows the loop to run without bounds checks.\n\t\ta := dst[d : d+length]\n\t\tb := dst[d-offset:]\n\t\tb = b[:len(a)]\n\t\tfor i := range a {\n\t\t\ta[i] = b[i]\n\t\t}\n\t\td += length\n\t}\n\tif d != len(dst) {\n\t\treturn decodeErrCodeCorrupt\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/snapref/encode.go",
    "content": "// Copyright 2011 The Snappy-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 snapref\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\n// Encode returns the encoded form of src. The returned slice may be a sub-\n// slice of dst if dst was large enough to hold the entire encoded block.\n// Otherwise, a newly allocated slice will be returned.\n//\n// The dst and src must not overlap. It is valid to pass a nil dst.\n//\n// Encode handles the Snappy block format, not the Snappy stream format.\nfunc Encode(dst, src []byte) []byte {\n\tif n := MaxEncodedLen(len(src)); n < 0 {\n\t\tpanic(ErrTooLarge)\n\t} else if cap(dst) < n {\n\t\tdst = make([]byte, n)\n\t} else {\n\t\tdst = dst[:n]\n\t}\n\n\t// The block starts with the varint-encoded length of the decompressed bytes.\n\td := binary.PutUvarint(dst, uint64(len(src)))\n\n\tfor len(src) > 0 {\n\t\tp := src\n\t\tsrc = nil\n\t\tif len(p) > maxBlockSize {\n\t\t\tp, src = p[:maxBlockSize], p[maxBlockSize:]\n\t\t}\n\t\tif len(p) < minNonLiteralBlockSize {\n\t\t\td += emitLiteral(dst[d:], p)\n\t\t} else {\n\t\t\td += encodeBlock(dst[d:], p)\n\t\t}\n\t}\n\treturn dst[:d]\n}\n\n// inputMargin is the minimum number of extra input bytes to keep, inside\n// encodeBlock's inner loop. On some architectures, this margin lets us\n// implement a fast path for emitLiteral, where the copy of short (<= 16 byte)\n// literals can be implemented as a single load to and store from a 16-byte\n// register. That literal's actual length can be as short as 1 byte, so this\n// can copy up to 15 bytes too much, but that's OK as subsequent iterations of\n// the encoding loop will fix up the copy overrun, and this inputMargin ensures\n// that we don't overrun the dst and src buffers.\nconst inputMargin = 16 - 1\n\n// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that\n// could be encoded with a copy tag. This is the minimum with respect to the\n// algorithm used by encodeBlock, not a minimum enforced by the file format.\n//\n// The encoded output must start with at least a 1 byte literal, as there are\n// no previous bytes to copy. A minimal (1 byte) copy after that, generated\n// from an emitCopy call in encodeBlock's main loop, would require at least\n// another inputMargin bytes, for the reason above: we want any emitLiteral\n// calls inside encodeBlock's main loop to use the fast path if possible, which\n// requires being able to overrun by inputMargin bytes. Thus,\n// minNonLiteralBlockSize equals 1 + 1 + inputMargin.\n//\n// The C++ code doesn't use this exact threshold, but it could, as discussed at\n// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion\n// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an\n// optimization. It should not affect the encoded form. This is tested by\n// TestSameEncodingAsCppShortCopies.\nconst minNonLiteralBlockSize = 1 + 1 + inputMargin\n\n// MaxEncodedLen returns the maximum length of a snappy block, given its\n// uncompressed length.\n//\n// It will return a negative value if srcLen is too large to encode.\nfunc MaxEncodedLen(srcLen int) int {\n\tn := uint64(srcLen)\n\tif n > 0xffffffff {\n\t\treturn -1\n\t}\n\t// Compressed data can be defined as:\n\t//    compressed := item* literal*\n\t//    item       := literal* copy\n\t//\n\t// The trailing literal sequence has a space blowup of at most 62/60\n\t// since a literal of length 60 needs one tag byte + one extra byte\n\t// for length information.\n\t//\n\t// Item blowup is trickier to measure. Suppose the \"copy\" op copies\n\t// 4 bytes of data. Because of a special check in the encoding code,\n\t// we produce a 4-byte copy only if the offset is < 65536. Therefore\n\t// the copy op takes 3 bytes to encode, and this type of item leads\n\t// to at most the 62/60 blowup for representing literals.\n\t//\n\t// Suppose the \"copy\" op copies 5 bytes of data. If the offset is big\n\t// enough, it will take 5 bytes to encode the copy op. Therefore the\n\t// worst case here is a one-byte literal followed by a five-byte copy.\n\t// That is, 6 bytes of input turn into 7 bytes of \"compressed\" data.\n\t//\n\t// This last factor dominates the blowup, so the final estimate is:\n\tn = 32 + n + n/6\n\tif n > 0xffffffff {\n\t\treturn -1\n\t}\n\treturn int(n)\n}\n\nvar errClosed = errors.New(\"snappy: Writer is closed\")\n\n// NewWriter returns a new Writer that compresses to w.\n//\n// The Writer returned does not buffer writes. There is no need to Flush or\n// Close such a Writer.\n//\n// Deprecated: the Writer returned is not suitable for many small writes, only\n// for few large writes. Use NewBufferedWriter instead, which is efficient\n// regardless of the frequency and shape of the writes, and remember to Close\n// that Writer when done.\nfunc NewWriter(w io.Writer) *Writer {\n\treturn &Writer{\n\t\tw:    w,\n\t\tobuf: make([]byte, obufLen),\n\t}\n}\n\n// NewBufferedWriter returns a new Writer that compresses to w, using the\n// framing format described at\n// https://github.com/google/snappy/blob/master/framing_format.txt\n//\n// The Writer returned buffers writes. Users must call Close to guarantee all\n// data has been forwarded to the underlying io.Writer. They may also call\n// Flush zero or more times before calling Close.\nfunc NewBufferedWriter(w io.Writer) *Writer {\n\treturn &Writer{\n\t\tw:    w,\n\t\tibuf: make([]byte, 0, maxBlockSize),\n\t\tobuf: make([]byte, obufLen),\n\t}\n}\n\n// Writer is an io.Writer that can write Snappy-compressed bytes.\n//\n// Writer handles the Snappy stream format, not the Snappy block format.\ntype Writer struct {\n\tw   io.Writer\n\terr error\n\n\t// ibuf is a buffer for the incoming (uncompressed) bytes.\n\t//\n\t// Its use is optional. For backwards compatibility, Writers created by the\n\t// NewWriter function have ibuf == nil, do not buffer incoming bytes, and\n\t// therefore do not need to be Flush'ed or Close'd.\n\tibuf []byte\n\n\t// obuf is a buffer for the outgoing (compressed) bytes.\n\tobuf []byte\n\n\t// wroteStreamHeader is whether we have written the stream header.\n\twroteStreamHeader bool\n}\n\n// Reset discards the writer's state and switches the Snappy writer to write to\n// w. This permits reusing a Writer rather than allocating a new one.\nfunc (w *Writer) Reset(writer io.Writer) {\n\tw.w = writer\n\tw.err = nil\n\tif w.ibuf != nil {\n\t\tw.ibuf = w.ibuf[:0]\n\t}\n\tw.wroteStreamHeader = false\n}\n\n// Write satisfies the io.Writer interface.\nfunc (w *Writer) Write(p []byte) (nRet int, errRet error) {\n\tif w.ibuf == nil {\n\t\t// Do not buffer incoming bytes. This does not perform or compress well\n\t\t// if the caller of Writer.Write writes many small slices. This\n\t\t// behavior is therefore deprecated, but still supported for backwards\n\t\t// compatibility with code that doesn't explicitly Flush or Close.\n\t\treturn w.write(p)\n\t}\n\n\t// The remainder of this method is based on bufio.Writer.Write from the\n\t// standard library.\n\n\tfor len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil {\n\t\tvar n int\n\t\tif len(w.ibuf) == 0 {\n\t\t\t// Large write, empty buffer.\n\t\t\t// Write directly from p to avoid copy.\n\t\t\tn, _ = w.write(p)\n\t\t} else {\n\t\t\tn = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p)\n\t\t\tw.ibuf = w.ibuf[:len(w.ibuf)+n]\n\t\t\tw.Flush()\n\t\t}\n\t\tnRet += n\n\t\tp = p[n:]\n\t}\n\tif w.err != nil {\n\t\treturn nRet, w.err\n\t}\n\tn := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p)\n\tw.ibuf = w.ibuf[:len(w.ibuf)+n]\n\tnRet += n\n\treturn nRet, nil\n}\n\nfunc (w *Writer) write(p []byte) (nRet int, errRet error) {\n\tif w.err != nil {\n\t\treturn 0, w.err\n\t}\n\tfor len(p) > 0 {\n\t\tobufStart := len(magicChunk)\n\t\tif !w.wroteStreamHeader {\n\t\t\tw.wroteStreamHeader = true\n\t\t\tcopy(w.obuf, magicChunk)\n\t\t\tobufStart = 0\n\t\t}\n\n\t\tvar uncompressed []byte\n\t\tif len(p) > maxBlockSize {\n\t\t\tuncompressed, p = p[:maxBlockSize], p[maxBlockSize:]\n\t\t} else {\n\t\t\tuncompressed, p = p, nil\n\t\t}\n\t\tchecksum := crc(uncompressed)\n\n\t\t// Compress the buffer, discarding the result if the improvement\n\t\t// isn't at least 12.5%.\n\t\tcompressed := Encode(w.obuf[obufHeaderLen:], uncompressed)\n\t\tchunkType := uint8(chunkTypeCompressedData)\n\t\tchunkLen := 4 + len(compressed)\n\t\tobufEnd := obufHeaderLen + len(compressed)\n\t\tif len(compressed) >= len(uncompressed)-len(uncompressed)/8 {\n\t\t\tchunkType = chunkTypeUncompressedData\n\t\t\tchunkLen = 4 + len(uncompressed)\n\t\t\tobufEnd = obufHeaderLen\n\t\t}\n\n\t\t// Fill in the per-chunk header that comes before the body.\n\t\tw.obuf[len(magicChunk)+0] = chunkType\n\t\tw.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0)\n\t\tw.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8)\n\t\tw.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16)\n\t\tw.obuf[len(magicChunk)+4] = uint8(checksum >> 0)\n\t\tw.obuf[len(magicChunk)+5] = uint8(checksum >> 8)\n\t\tw.obuf[len(magicChunk)+6] = uint8(checksum >> 16)\n\t\tw.obuf[len(magicChunk)+7] = uint8(checksum >> 24)\n\n\t\tif _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil {\n\t\t\tw.err = err\n\t\t\treturn nRet, err\n\t\t}\n\t\tif chunkType == chunkTypeUncompressedData {\n\t\t\tif _, err := w.w.Write(uncompressed); err != nil {\n\t\t\t\tw.err = err\n\t\t\t\treturn nRet, err\n\t\t\t}\n\t\t}\n\t\tnRet += len(uncompressed)\n\t}\n\treturn nRet, nil\n}\n\n// Flush flushes the Writer to its underlying io.Writer.\nfunc (w *Writer) Flush() error {\n\tif w.err != nil {\n\t\treturn w.err\n\t}\n\tif len(w.ibuf) == 0 {\n\t\treturn nil\n\t}\n\tw.write(w.ibuf)\n\tw.ibuf = w.ibuf[:0]\n\treturn w.err\n}\n\n// Close calls Flush and then closes the Writer.\nfunc (w *Writer) Close() error {\n\tw.Flush()\n\tret := w.err\n\tif w.err == nil {\n\t\tw.err = errClosed\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/snapref/encode_other.go",
    "content": "// Copyright 2016 The Snappy-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 snapref\n\nfunc load32(b []byte, i int) uint32 {\n\tb = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line.\n\treturn uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n}\n\nfunc load64(b []byte, i int) uint64 {\n\tb = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line.\n\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n}\n\n// emitLiteral writes a literal chunk and returns the number of bytes written.\n//\n// It assumes that:\n//\n//\tdst is long enough to hold the encoded bytes\n//\t1 <= len(lit) && len(lit) <= 65536\nfunc emitLiteral(dst, lit []byte) int {\n\ti, n := 0, uint(len(lit)-1)\n\tswitch {\n\tcase n < 60:\n\t\tdst[0] = uint8(n)<<2 | tagLiteral\n\t\ti = 1\n\tcase n < 1<<8:\n\t\tdst[0] = 60<<2 | tagLiteral\n\t\tdst[1] = uint8(n)\n\t\ti = 2\n\tdefault:\n\t\tdst[0] = 61<<2 | tagLiteral\n\t\tdst[1] = uint8(n)\n\t\tdst[2] = uint8(n >> 8)\n\t\ti = 3\n\t}\n\treturn i + copy(dst[i:], lit)\n}\n\n// emitCopy writes a copy chunk and returns the number of bytes written.\n//\n// It assumes that:\n//\n//\tdst is long enough to hold the encoded bytes\n//\t1 <= offset && offset <= 65535\n//\t4 <= length && length <= 65535\nfunc emitCopy(dst []byte, offset, length int) int {\n\ti := 0\n\t// The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The\n\t// threshold for this loop is a little higher (at 68 = 64 + 4), and the\n\t// length emitted down below is a little lower (at 60 = 64 - 4), because\n\t// it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed\n\t// by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as\n\t// a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as\n\t// 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a\n\t// tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an\n\t// encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1.\n\tfor length >= 68 {\n\t\t// Emit a length 64 copy, encoded as 3 bytes.\n\t\tdst[i+0] = 63<<2 | tagCopy2\n\t\tdst[i+1] = uint8(offset)\n\t\tdst[i+2] = uint8(offset >> 8)\n\t\ti += 3\n\t\tlength -= 64\n\t}\n\tif length > 64 {\n\t\t// Emit a length 60 copy, encoded as 3 bytes.\n\t\tdst[i+0] = 59<<2 | tagCopy2\n\t\tdst[i+1] = uint8(offset)\n\t\tdst[i+2] = uint8(offset >> 8)\n\t\ti += 3\n\t\tlength -= 60\n\t}\n\tif length >= 12 || offset >= 2048 {\n\t\t// Emit the remaining copy, encoded as 3 bytes.\n\t\tdst[i+0] = uint8(length-1)<<2 | tagCopy2\n\t\tdst[i+1] = uint8(offset)\n\t\tdst[i+2] = uint8(offset >> 8)\n\t\treturn i + 3\n\t}\n\t// Emit the remaining copy, encoded as 2 bytes.\n\tdst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1\n\tdst[i+1] = uint8(offset)\n\treturn i + 2\n}\n\nfunc hash(u, shift uint32) uint32 {\n\treturn (u * 0x1e35a7bd) >> shift\n}\n\n// EncodeBlockInto exposes encodeBlock but checks dst size.\nfunc EncodeBlockInto(dst, src []byte) (d int) {\n\tif MaxEncodedLen(len(src)) > len(dst) {\n\t\treturn 0\n\t}\n\n\t// encodeBlock breaks on too big blocks, so split.\n\tfor len(src) > 0 {\n\t\tp := src\n\t\tsrc = nil\n\t\tif len(p) > maxBlockSize {\n\t\t\tp, src = p[:maxBlockSize], p[maxBlockSize:]\n\t\t}\n\t\tif len(p) < minNonLiteralBlockSize {\n\t\t\td += emitLiteral(dst[d:], p)\n\t\t} else {\n\t\t\td += encodeBlock(dst[d:], p)\n\t\t}\n\t}\n\treturn d\n}\n\n// encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It\n// assumes that the varint-encoded length of the decompressed bytes has already\n// been written.\n//\n// It also assumes that:\n//\n//\tlen(dst) >= MaxEncodedLen(len(src)) &&\n//\tminNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize\nfunc encodeBlock(dst, src []byte) (d int) {\n\t// Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive.\n\t// The table element type is uint16, as s < sLimit and sLimit < len(src)\n\t// and len(src) <= maxBlockSize and maxBlockSize == 65536.\n\tconst (\n\t\tmaxTableSize = 1 << 14\n\t\t// tableMask is redundant, but helps the compiler eliminate bounds\n\t\t// checks.\n\t\ttableMask = maxTableSize - 1\n\t)\n\tshift := uint32(32 - 8)\n\tfor tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 {\n\t\tshift--\n\t}\n\t// In Go, all array elements are zero-initialized, so there is no advantage\n\t// to a smaller tableSize per se. However, it matches the C++ algorithm,\n\t// and in the asm versions of this code, we can get away with zeroing only\n\t// the first tableSize elements.\n\tvar table [maxTableSize]uint16\n\n\t// sLimit is when to stop looking for offset/length copies. The inputMargin\n\t// lets us use a fast path for emitLiteral in the main loop, while we are\n\t// looking for copies.\n\tsLimit := len(src) - inputMargin\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := 0\n\n\t// The encoded form must start with a literal, as there are no previous\n\t// bytes to copy, so we start looking for hash matches at s == 1.\n\ts := 1\n\tnextHash := hash(load32(src, s), shift)\n\n\tfor {\n\t\t// Copied from the C++ snappy implementation:\n\t\t//\n\t\t// Heuristic match skipping: If 32 bytes are scanned with no matches\n\t\t// found, start looking only at every other byte. If 32 more bytes are\n\t\t// scanned (or skipped), look at every third byte, etc.. When a match\n\t\t// is found, immediately go back to looking at every byte. This is a\n\t\t// small loss (~5% performance, ~0.1% density) for compressible data\n\t\t// due to more bookkeeping, but for non-compressible data (such as\n\t\t// JPEG) it's a huge win since the compressor quickly \"realizes\" the\n\t\t// data is incompressible and doesn't bother looking for matches\n\t\t// everywhere.\n\t\t//\n\t\t// The \"skip\" variable keeps track of how many bytes there are since\n\t\t// the last match; dividing it by 32 (ie. right-shifting by five) gives\n\t\t// the number of bytes to move ahead for each iteration.\n\t\tskip := 32\n\n\t\tnextS := s\n\t\tcandidate := 0\n\t\tfor {\n\t\t\ts = nextS\n\t\t\tbytesBetweenHashLookups := skip >> 5\n\t\t\tnextS = s + bytesBetweenHashLookups\n\t\t\tskip += bytesBetweenHashLookups\n\t\t\tif nextS > sLimit {\n\t\t\t\tgoto emitRemainder\n\t\t\t}\n\t\t\tcandidate = int(table[nextHash&tableMask])\n\t\t\ttable[nextHash&tableMask] = uint16(s)\n\t\t\tnextHash = hash(load32(src, nextS), shift)\n\t\t\tif load32(src, s) == load32(src, candidate) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// A 4-byte match has been found. We'll later see if more than 4 bytes\n\t\t// match. But, prior to the match, src[nextEmit:s] are unmatched. Emit\n\t\t// them as literal bytes.\n\t\td += emitLiteral(dst[d:], src[nextEmit:s])\n\n\t\t// Call emitCopy, and then see if another emitCopy could be our next\n\t\t// move. Repeat until we find no match for the input immediately after\n\t\t// what was consumed by the last emitCopy call.\n\t\t//\n\t\t// If we exit this loop normally then we need to call emitLiteral next,\n\t\t// though we don't yet know how big the literal will be. We handle that\n\t\t// by proceeding to the next iteration of the main loop. We also can\n\t\t// exit this loop via goto if we get close to exhausting the input.\n\t\tfor {\n\t\t\t// Invariant: we have a 4-byte match at s, and no need to emit any\n\t\t\t// literal bytes prior to s.\n\t\t\tbase := s\n\n\t\t\t// Extend the 4-byte match as long as possible.\n\t\t\t//\n\t\t\t// This is an inlined version of:\n\t\t\t//\ts = extendMatch(src, candidate+4, s+4)\n\t\t\ts += 4\n\t\t\tfor i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 {\n\t\t\t}\n\n\t\t\td += emitCopy(dst[d:], base-candidate, s-base)\n\t\t\tnextEmit = s\n\t\t\tif s >= sLimit {\n\t\t\t\tgoto emitRemainder\n\t\t\t}\n\n\t\t\t// We could immediately start working at s now, but to improve\n\t\t\t// compression we first update the hash table at s-1 and at s. If\n\t\t\t// another emitCopy is not our next move, also calculate nextHash\n\t\t\t// at s+1. At least on GOARCH=amd64, these three hash calculations\n\t\t\t// are faster as one load64 call (with some shifts) instead of\n\t\t\t// three load32 calls.\n\t\t\tx := load64(src, s-1)\n\t\t\tprevHash := hash(uint32(x>>0), shift)\n\t\t\ttable[prevHash&tableMask] = uint16(s - 1)\n\t\t\tcurrHash := hash(uint32(x>>8), shift)\n\t\t\tcandidate = int(table[currHash&tableMask])\n\t\t\ttable[currHash&tableMask] = uint16(s)\n\t\t\tif uint32(x>>8) != load32(src, candidate) {\n\t\t\t\tnextHash = hash(uint32(x>>16), shift)\n\t\t\t\ts++\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\nemitRemainder:\n\tif nextEmit < len(src) {\n\t\td += emitLiteral(dst[d:], src[nextEmit:])\n\t}\n\treturn d\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/internal/snapref/snappy.go",
    "content": "// Copyright 2011 The Snappy-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 snapref implements the Snappy compression format. It aims for very\n// high speeds and reasonable compression.\n//\n// There are actually two Snappy formats: block and stream. They are related,\n// but different: trying to decompress block-compressed data as a Snappy stream\n// will fail, and vice versa. The block format is the Decode and Encode\n// functions and the stream format is the Reader and Writer types.\n//\n// The block format, the more common case, is used when the complete size (the\n// number of bytes) of the original data is known upfront, at the time\n// compression starts. The stream format, also known as the framing format, is\n// for when that isn't always true.\n//\n// The canonical, C++ implementation is at https://github.com/google/snappy and\n// it only implements the block format.\npackage snapref\n\nimport (\n\t\"hash/crc32\"\n)\n\n/*\nEach encoded block begins with the varint-encoded length of the decoded data,\nfollowed by a sequence of chunks. Chunks begin and end on byte boundaries. The\nfirst byte of each chunk is broken into its 2 least and 6 most significant bits\ncalled l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag.\nZero means a literal tag. All other values mean a copy tag.\n\nFor literal tags:\n  - If m < 60, the next 1 + m bytes are literal bytes.\n  - Otherwise, let n be the little-endian unsigned integer denoted by the next\n    m - 59 bytes. The next 1 + n bytes after that are literal bytes.\n\nFor copy tags, length bytes are copied from offset bytes ago, in the style of\nLempel-Ziv compression algorithms. In particular:\n  - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12).\n    The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10\n    of the offset. The next byte is bits 0-7 of the offset.\n  - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65).\n    The length is 1 + m. The offset is the little-endian unsigned integer\n    denoted by the next 2 bytes.\n  - For l == 3, this tag is a legacy format that is no longer issued by most\n    encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in\n    [1, 65). The length is 1 + m. The offset is the little-endian unsigned\n    integer denoted by the next 4 bytes.\n*/\nconst (\n\ttagLiteral = 0x00\n\ttagCopy1   = 0x01\n\ttagCopy2   = 0x02\n\ttagCopy4   = 0x03\n)\n\nconst (\n\tchecksumSize    = 4\n\tchunkHeaderSize = 4\n\tmagicChunk      = \"\\xff\\x06\\x00\\x00\" + magicBody\n\tmagicBody       = \"sNaPpY\"\n\n\t// maxBlockSize is the maximum size of the input to encodeBlock. It is not\n\t// part of the wire format per se, but some parts of the encoder assume\n\t// that an offset fits into a uint16.\n\t//\n\t// Also, for the framing format (Writer type instead of Encode function),\n\t// https://github.com/google/snappy/blob/master/framing_format.txt says\n\t// that \"the uncompressed data in a chunk must be no longer than 65536\n\t// bytes\".\n\tmaxBlockSize = 65536\n\n\t// maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is\n\t// hard coded to be a const instead of a variable, so that obufLen can also\n\t// be a const. Their equivalence is confirmed by\n\t// TestMaxEncodedLenOfMaxBlockSize.\n\tmaxEncodedLenOfMaxBlockSize = 76490\n\n\tobufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize\n\tobufLen       = obufHeaderLen + maxEncodedLenOfMaxBlockSize\n)\n\nconst (\n\tchunkTypeCompressedData   = 0x00\n\tchunkTypeUncompressedData = 0x01\n\tchunkTypePadding          = 0xfe\n\tchunkTypeStreamIdentifier = 0xff\n)\n\nvar crcTable = crc32.MakeTable(crc32.Castagnoli)\n\n// crc implements the checksum specified in section 3 of\n// https://github.com/google/snappy/blob/master/framing_format.txt\nfunc crc(b []byte) uint32 {\n\tc := crc32.Update(0, crcTable, b)\n\treturn uint32(c>>15|c<<17) + 0xa282ead8\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/s2sx.mod",
    "content": "module github.com/klauspost/compress\n\ngo 1.22\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/s2sx.sum",
    "content": ""
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/README.md",
    "content": "# zstd \n\n[Zstandard](https://facebook.github.io/zstd/) is a real-time compression algorithm, providing high compression ratios. \nIt offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder.\nA high performance compression algorithm is implemented. For now focused on speed. \n\nThis package provides [compression](#Compressor) to and [decompression](#Decompressor) of Zstandard content. \n\nThis package is pure Go. Use `noasm` and `nounsafe` to disable relevant features.\n\nThe `zstd` package is provided as open source software using a Go standard license.\n\nCurrently the package is heavily optimized for 64 bit processors and will be significantly slower on 32 bit processors.\n\nFor seekable zstd streams, see [this excellent package](https://github.com/SaveTheRbtz/zstd-seekable-format-go).\n\n## Installation\n\nInstall using `go get -u github.com/klauspost/compress`. The package is located in `github.com/klauspost/compress/zstd`.\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/klauspost/compress/zstd.svg)](https://pkg.go.dev/github.com/klauspost/compress/zstd)\n\n## Compressor\n\n### Status: \n\nSTABLE - there may always be subtle bugs, a wide variety of content has been tested and the library is actively \nused by several projects. This library is being [fuzz-tested](https://github.com/klauspost/compress-fuzz) for all updates.\n\nThere may still be specific combinations of data types/size/settings that could lead to edge cases, \nso as always, testing is recommended.  \n\nFor now, a high speed (fastest) and medium-fast (default) compressor has been implemented. \n\n* The \"Fastest\" compression ratio is roughly equivalent to zstd level 1. \n* The \"Default\" compression ratio is roughly equivalent to zstd level 3 (default).\n* The \"Better\" compression ratio is roughly equivalent to zstd level 7.\n* The \"Best\" compression ratio is roughly equivalent to zstd level 11.\n\nIn terms of speed, it is typically 2x as fast as the stdlib deflate/gzip in its fastest mode. \nThe compression ratio compared to stdlib is around level 3, but usually 3x as fast.\n\n \n### Usage\n\nAn Encoder can be used for either compressing a stream via the\n`io.WriteCloser` interface supported by the Encoder or as multiple independent\ntasks via the `EncodeAll` function.\nSmaller encodes are encouraged to use the EncodeAll function.\nUse `NewWriter` to create a new instance that can be used for both.\n\nTo create a writer with default options, do like this:\n\n```Go\n// Compress input to output.\nfunc Compress(in io.Reader, out io.Writer) error {\n    enc, err := zstd.NewWriter(out)\n    if err != nil {\n        return err\n    }\n    _, err = io.Copy(enc, in)\n    if err != nil {\n        enc.Close()\n        return err\n    }\n    return enc.Close()\n}\n```\n\nNow you can encode by writing data to `enc`. The output will be finished writing when `Close()` is called.\nEven if your encode fails, you should still call `Close()` to release any resources that may be held up.  \n\nThe above is fine for big encodes. However, whenever possible try to *reuse* the writer.\n\nTo reuse the encoder, you can use the `Reset(io.Writer)` function to change to another output. \nThis will allow the encoder to reuse all resources and avoid wasteful allocations. \n\nCurrently stream encoding has 'light' concurrency, meaning up to 2 goroutines can be working on part \nof a stream. This is independent of the `WithEncoderConcurrency(n)`, but that is likely to change \nin the future. So if you want to limit concurrency for future updates, specify the concurrency\nyou would like.\n\nIf you would like stream encoding to be done without spawning async goroutines, use `WithEncoderConcurrency(1)`\nwhich will compress input as each block is completed, blocking on writes until each has completed.\n\nYou can specify your desired compression level using `WithEncoderLevel()` option. Currently only pre-defined \ncompression settings can be specified.\n\n#### Future Compatibility Guarantees\n\nThis will be an evolving project. When using this package it is important to note that both the compression efficiency and speed may change.\n\nThe goal will be to keep the default efficiency at the default zstd (level 3). \nHowever the encoding should never be assumed to remain the same, \nand you should not use hashes of compressed output for similarity checks.\n\nThe Encoder can be assumed to produce the same output from the exact same code version.\nHowever, the may be modes in the future that break this, \nalthough they will not be enabled without an explicit option.   \n\nThis encoder is not designed to (and will probably never) output the exact same bitstream as the reference encoder.\n\nAlso note, that the cgo decompressor currently does not [report all errors on invalid input](https://github.com/DataDog/zstd/issues/59),\n[omits error checks](https://github.com/DataDog/zstd/issues/61), [ignores checksums](https://github.com/DataDog/zstd/issues/43) \nand seems to ignore concatenated streams, even though [it is part of the spec](https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frames).\n\n#### Blocks\n\nFor compressing small blocks, the returned encoder has a function called `EncodeAll(src, dst []byte) []byte`.\n\n`EncodeAll` will encode all input in src and append it to dst.\nThis function can be called concurrently. \nEach call will only run on a same goroutine as the caller.\n\nEncoded blocks can be concatenated and the result will be the combined input stream.\nData compressed with EncodeAll can be decoded with the Decoder, using either a stream or `DecodeAll`.\n\nEspecially when encoding blocks you should take special care to reuse the encoder. \nThis will effectively make it run without allocations after a warmup period. \nTo make it run completely without allocations, supply a destination buffer with space for all content.   \n\n```Go\nimport \"github.com/klauspost/compress/zstd\"\n\n// Create a writer that caches compressors.\n// For this operation type we supply a nil Reader.\nvar encoder, _ = zstd.NewWriter(nil)\n\n// Compress a buffer. \n// If you have a destination buffer, the allocation in the call can also be eliminated.\nfunc Compress(src []byte) []byte {\n    return encoder.EncodeAll(src, make([]byte, 0, len(src)))\n} \n```\n\nYou can control the maximum number of concurrent encodes using the `WithEncoderConcurrency(n)` \noption when creating the writer.\n\nUsing the Encoder for both a stream and individual blocks concurrently is safe. \n\n### Performance\n\nI have collected some speed examples to compare speed and compression against other compressors.\n\n* `file` is the input file.\n* `out` is the compressor used. `zskp` is this package. `zstd` is the Datadog cgo library. `gzstd/gzkp` is gzip standard and this library.\n* `level` is the compression level used. For `zskp` level 1 is \"fastest\", level 2 is \"default\"; 3 is \"better\", 4 is \"best\".\n* `insize`/`outsize` is the input/output size.\n* `millis` is the number of milliseconds used for compression.\n* `mb/s` is megabytes (2^20 bytes) per second.\n\n```\nSilesia Corpus:\nhttp://sun.aei.polsl.pl/~sdeor/corpus/silesia.zip\n\nThis package:\nfile    out     level   insize      outsize     millis  mb/s\nsilesia.tar zskp    1   211947520   73821326    634     318.47\nsilesia.tar zskp    2   211947520   67655404    1508    133.96\nsilesia.tar zskp    3   211947520   64746933    3000    67.37\nsilesia.tar zskp    4   211947520   60073508    16926   11.94\n\ncgo zstd:\nsilesia.tar zstd    1   211947520   73605392    543     371.56\nsilesia.tar zstd    3   211947520   66793289    864     233.68\nsilesia.tar zstd    6   211947520   62916450    1913    105.66\nsilesia.tar zstd    9   211947520   60212393    5063    39.92\n\ngzip, stdlib/this package:\nsilesia.tar gzstd   1   211947520   80007735    1498    134.87\nsilesia.tar gzkp    1   211947520   80088272    1009    200.31\n\nGOB stream of binary data. Highly compressible.\nhttps://files.klauspost.com/compress/gob-stream.7z\n\nfile        out     level   insize  outsize     millis  mb/s\ngob-stream  zskp    1   1911399616  233948096   3230    564.34\ngob-stream  zskp    2   1911399616  203997694   4997    364.73\ngob-stream  zskp    3   1911399616  173526523   13435   135.68\ngob-stream  zskp    4   1911399616  162195235   47559   38.33\n\ngob-stream  zstd    1   1911399616  249810424   2637    691.26\ngob-stream  zstd    3   1911399616  208192146   3490    522.31\ngob-stream  zstd    6   1911399616  193632038   6687    272.56\ngob-stream  zstd    9   1911399616  177620386   16175   112.70\n\ngob-stream  gzstd   1   1911399616  357382013   9046    201.49\ngob-stream  gzkp    1   1911399616  359136669   4885    373.08\n\nThe test data for the Large Text Compression Benchmark is the first\n10^9 bytes of the English Wikipedia dump on Mar. 3, 2006.\nhttp://mattmahoney.net/dc/textdata.html\n\nfile    out level   insize      outsize     millis  mb/s\nenwik9  zskp    1   1000000000  343833605   3687    258.64\nenwik9  zskp    2   1000000000  317001237   7672    124.29\nenwik9  zskp    3   1000000000  291915823   15923   59.89\nenwik9  zskp    4   1000000000  261710291   77697   12.27\n\nenwik9  zstd    1   1000000000  358072021   3110    306.65\nenwik9  zstd    3   1000000000  313734672   4784    199.35\nenwik9  zstd    6   1000000000  295138875   10290   92.68\nenwik9  zstd    9   1000000000  278348700   28549   33.40\n\nenwik9  gzstd   1   1000000000  382578136   8608    110.78\nenwik9  gzkp    1   1000000000  382781160   5628    169.45\n\nHighly compressible JSON file.\nhttps://files.klauspost.com/compress/github-june-2days-2019.json.zst\n\nfile                        out level   insize      outsize     millis  mb/s\ngithub-june-2days-2019.json zskp    1   6273951764  697439532   9789    611.17\ngithub-june-2days-2019.json zskp    2   6273951764  610876538   18553   322.49\ngithub-june-2days-2019.json zskp    3   6273951764  517662858   44186   135.41\ngithub-june-2days-2019.json zskp    4   6273951764  464617114   165373  36.18\n\ngithub-june-2days-2019.json zstd    1   6273951764  766284037   8450    708.00\ngithub-june-2days-2019.json zstd    3   6273951764  661889476   10927   547.57\ngithub-june-2days-2019.json zstd    6   6273951764  642756859   22996   260.18\ngithub-june-2days-2019.json zstd    9   6273951764  601974523   52413   114.16\n\ngithub-june-2days-2019.json gzstd   1   6273951764  1164397768  26793   223.32\ngithub-june-2days-2019.json gzkp    1   6273951764  1120631856  17693   338.16\n\nVM Image, Linux mint with a few installed applications:\nhttps://files.klauspost.com/compress/rawstudio-mint14.7z\n\nfile                    out level   insize      outsize     millis  mb/s\nrawstudio-mint14.tar    zskp    1   8558382592  3718400221  18206   448.29\nrawstudio-mint14.tar    zskp    2   8558382592  3326118337  37074   220.15\nrawstudio-mint14.tar    zskp    3   8558382592  3163842361  87306   93.49\nrawstudio-mint14.tar    zskp    4   8558382592  2970480650  783862  10.41\n\nrawstudio-mint14.tar    zstd    1   8558382592  3609250104  17136   476.27\nrawstudio-mint14.tar    zstd    3   8558382592  3341679997  29262   278.92\nrawstudio-mint14.tar    zstd    6   8558382592  3235846406  77904   104.77\nrawstudio-mint14.tar    zstd    9   8558382592  3160778861  140946  57.91\n\nrawstudio-mint14.tar    gzstd   1   8558382592  3926234992  51345   158.96\nrawstudio-mint14.tar    gzkp    1   8558382592  3960117298  36722   222.26\n\nCSV data:\nhttps://files.klauspost.com/compress/nyc-taxi-data-10M.csv.zst\n\nfile                    out level   insize      outsize     millis  mb/s\nnyc-taxi-data-10M.csv   zskp    1   3325605752  641319332   9462    335.17\nnyc-taxi-data-10M.csv   zskp    2   3325605752  588976126   17570   180.50\nnyc-taxi-data-10M.csv   zskp    3   3325605752  529329260   32432   97.79\nnyc-taxi-data-10M.csv   zskp    4   3325605752  474949772   138025  22.98\n\nnyc-taxi-data-10M.csv   zstd    1   3325605752  687399637   8233    385.18\nnyc-taxi-data-10M.csv   zstd    3   3325605752  598514411   10065   315.07\nnyc-taxi-data-10M.csv   zstd    6   3325605752  570522953   20038   158.27\nnyc-taxi-data-10M.csv   zstd    9   3325605752  517554797   64565   49.12\n\nnyc-taxi-data-10M.csv   gzstd   1   3325605752  928654908   21270   149.11\nnyc-taxi-data-10M.csv   gzkp    1   3325605752  922273214   13929   227.68\n```\n\n## Decompressor\n\nStatus: STABLE - there may still be subtle bugs, but a wide variety of content has been tested.\n\nThis library is being continuously [fuzz-tested](https://github.com/klauspost/compress-fuzz),\nkindly supplied by [fuzzit.dev](https://fuzzit.dev/). \nThe main purpose of the fuzz testing is to ensure that it is not possible to crash the decoder, \nor run it past its limits with ANY input provided.  \n \n### Usage\n\nThe package has been designed for two main usages, big streams of data and smaller in-memory buffers. \nThere are two main usages of the package for these. Both of them are accessed by creating a `Decoder`.\n\nFor streaming use a simple setup could look like this:\n\n```Go\nimport \"github.com/klauspost/compress/zstd\"\n\nfunc Decompress(in io.Reader, out io.Writer) error {\n    d, err := zstd.NewReader(in)\n    if err != nil {\n        return err\n    }\n    defer d.Close()\n    \n    // Copy content...\n    _, err = io.Copy(out, d)\n    return err\n}\n```\n\nIt is important to use the \"Close\" function when you no longer need the Reader to stop running goroutines, \nwhen running with default settings.\nGoroutines will exit once an error has been returned, including `io.EOF` at the end of a stream.\n\nStreams are decoded concurrently in 4 asynchronous stages to give the best possible throughput.\nHowever, if you prefer synchronous decompression, use `WithDecoderConcurrency(1)` which will decompress data \nas it is being requested only.\n\nFor decoding buffers, it could look something like this:\n\n```Go\nimport \"github.com/klauspost/compress/zstd\"\n\n// Create a reader that caches decompressors.\n// For this operation type we supply a nil Reader.\nvar decoder, _ = zstd.NewReader(nil, zstd.WithDecoderConcurrency(0))\n\n// Decompress a buffer. We don't supply a destination buffer,\n// so it will be allocated by the decoder.\nfunc Decompress(src []byte) ([]byte, error) {\n    return decoder.DecodeAll(src, nil)\n} \n```\n\nBoth of these cases should provide the functionality needed. \nThe decoder can be used for *concurrent* decompression of multiple buffers.\nBy default 4 decompressors will be created. \n\nIt will only allow a certain number of concurrent operations to run. \nTo tweak that yourself use the `WithDecoderConcurrency(n)` option when creating the decoder.\nIt is possible to use `WithDecoderConcurrency(0)` to create GOMAXPROCS decoders.\n\n### Dictionaries\n\nData compressed with [dictionaries](https://github.com/facebook/zstd#the-case-for-small-data-compression) can be decompressed.\n\nDictionaries are added individually to Decoders.\nDictionaries are generated by the `zstd --train` command and contains an initial state for the decoder.\nTo add a dictionary use the `WithDecoderDicts(dicts ...[]byte)` option with the dictionary data.\nSeveral dictionaries can be added at once.\n\nThe dictionary will be used automatically for the data that specifies them.\nA re-used Decoder will still contain the dictionaries registered.\n\nWhen registering multiple dictionaries with the same ID, the last one will be used.\n\nIt is possible to use dictionaries when compressing data.\n\nTo enable a dictionary use `WithEncoderDict(dict []byte)`. Here only one dictionary will be used \nand it will likely be used even if it doesn't improve compression. \n\nThe used dictionary must be used to decompress the content.\n\nFor any real gains, the dictionary should be built with similar data. \nIf an unsuitable dictionary is used the output may be slightly larger than using no dictionary.\nUse the [zstd commandline tool](https://github.com/facebook/zstd/releases) to build a dictionary from sample data.\nFor information see [zstd dictionary information](https://github.com/facebook/zstd#the-case-for-small-data-compression). \n\nFor now there is a fixed startup performance penalty for compressing content with dictionaries. \nThis will likely be improved over time. Just be aware to test performance when implementing.  \n\n### Allocation-less operation\n\nThe decoder has been designed to operate without allocations after a warmup. \n\nThis means that you should *store* the decoder for best performance. \nTo re-use a stream decoder, use the `Reset(r io.Reader) error` to switch to another stream.\nA decoder can safely be re-used even if the previous stream failed.\n\nTo release the resources, you must call the `Close()` function on a decoder.\nAfter this it can *no longer be reused*, but all running goroutines will be stopped.\nSo you *must* use this if you will no longer need the Reader.\n\nFor decompressing smaller buffers a single decoder can be used.\nWhen decoding buffers, you can supply a destination slice with length 0 and your expected capacity.\nIn this case no unneeded allocations should be made. \n\n### Concurrency\n\nThe buffer decoder does everything on the same goroutine and does nothing concurrently.\nIt can however decode several buffers concurrently. Use `WithDecoderConcurrency(n)` to limit that.\n\nThe stream decoder will create goroutines that:\n\n1) Reads input and splits the input into blocks.\n2) Decompression of literals.\n3) Decompression of sequences.\n4) Reconstruction of output stream.\n\nSo effectively this also means the decoder will \"read ahead\" and prepare data to always be available for output.\n\nThe concurrency level will, for streams, determine how many blocks ahead the compression will start.\n\nSince \"blocks\" are quite dependent on the output of the previous block stream decoding will only have limited concurrency.\n\nIn practice this means that concurrency is often limited to utilizing about 3 cores effectively.\n  \n### Benchmarks\n\nThe first two are streaming decodes and the last are smaller inputs. \n\nRunning on AMD Ryzen 9 3950X 16-Core Processor. AMD64 assembly used.\n\n```\nBenchmarkDecoderSilesia-32    \t                   5\t 206878840 ns/op\t1024.50 MB/s\t   49808 B/op\t      43 allocs/op\nBenchmarkDecoderEnwik9-32                          1\t1271809000 ns/op\t 786.28 MB/s\t   72048 B/op\t      52 allocs/op\n\nConcurrent blocks, performance:\n\nBenchmarkDecoder_DecodeAllParallel/kppkn.gtb.zst-32         \t   67356\t     17857 ns/op\t10321.96 MB/s\t        22.48 pct\t     102 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/geo.protodata.zst-32     \t  266656\t      4421 ns/op\t26823.21 MB/s\t        11.89 pct\t      19 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/plrabn12.txt.zst-32      \t   20992\t     56842 ns/op\t8477.17 MB/s\t        39.90 pct\t     754 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/lcet10.txt.zst-32        \t   27456\t     43932 ns/op\t9714.01 MB/s\t        33.27 pct\t     524 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/asyoulik.txt.zst-32      \t   78432\t     15047 ns/op\t8319.15 MB/s\t        40.34 pct\t      66 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/alice29.txt.zst-32       \t   65800\t     18436 ns/op\t8249.63 MB/s\t        37.75 pct\t      88 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/html_x_4.zst-32          \t  102993\t     11523 ns/op\t35546.09 MB/s\t         3.637 pct\t     143 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/paper-100k.pdf.zst-32    \t 1000000\t      1070 ns/op\t95720.98 MB/s\t        80.53 pct\t       3 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/fireworks.jpeg.zst-32    \t  749802\t      1752 ns/op\t70272.35 MB/s\t       100.0 pct\t       5 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/urls.10K.zst-32          \t   22640\t     52934 ns/op\t13263.37 MB/s\t        26.25 pct\t    1014 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/html.zst-32              \t  226412\t      5232 ns/op\t19572.27 MB/s\t        14.49 pct\t      20 B/op\t       0 allocs/op\nBenchmarkDecoder_DecodeAllParallel/comp-data.bin.zst-32     \t  923041\t      1276 ns/op\t3194.71 MB/s\t        31.26 pct\t       0 B/op\t       0 allocs/op\n```\n\nThis reflects the performance around May 2022, but this may be out of date.\n\n## Zstd inside ZIP files\n\nIt is possible to use zstandard to compress individual files inside zip archives.\nWhile this isn't widely supported it can be useful for internal files.\n\nTo support the compression and decompression of these files you must register a compressor and decompressor.\n\nIt is highly recommended registering the (de)compressors on individual zip Reader/Writer and NOT\nuse the global registration functions. The main reason for this is that 2 registrations from \ndifferent packages will result in a panic.\n\nIt is a good idea to only have a single compressor and decompressor, since they can be used for multiple zip\nfiles concurrently, and using a single instance will allow reusing some resources.\n\nSee [this example](https://pkg.go.dev/github.com/klauspost/compress/zstd#example-ZipCompressor) for \nhow to compress and decompress files inside zip archives.\n\n# Contributions\n\nContributions are always welcome. \nFor new features/fixes, remember to add tests and for performance enhancements include benchmarks.\n\nFor general feedback and experience reports, feel free to open an issue or write me on [Twitter](https://twitter.com/sh0dan).\n\nThis package includes the excellent [`github.com/cespare/xxhash`](https://github.com/cespare/xxhash) package Copyright (c) 2016 Caleb Spare.\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/bitreader.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/bits\"\n\n\t\"github.com/klauspost/compress/internal/le\"\n)\n\n// bitReader reads a bitstream in reverse.\n// The last set bit indicates the start of the stream and is used\n// for aligning the input.\ntype bitReader struct {\n\tin       []byte\n\tvalue    uint64 // Maybe use [16]byte, but shifting is awkward.\n\tcursor   int    // offset where next read should end\n\tbitsRead uint8\n}\n\n// init initializes and resets the bit reader.\nfunc (b *bitReader) init(in []byte) error {\n\tif len(in) < 1 {\n\t\treturn errors.New(\"corrupt stream: too short\")\n\t}\n\tb.in = in\n\t// The highest bit of the last byte indicates where to start\n\tv := in[len(in)-1]\n\tif v == 0 {\n\t\treturn errors.New(\"corrupt stream, did not find end of stream\")\n\t}\n\tb.cursor = len(in)\n\tb.bitsRead = 64\n\tb.value = 0\n\tif len(in) >= 8 {\n\t\tb.fillFastStart()\n\t} else {\n\t\tb.fill()\n\t\tb.fill()\n\t}\n\tb.bitsRead += 8 - uint8(highBits(uint32(v)))\n\treturn nil\n}\n\n// getBits will return n bits. n can be 0.\nfunc (b *bitReader) getBits(n uint8) int {\n\tif n == 0 /*|| b.bitsRead >= 64 */ {\n\t\treturn 0\n\t}\n\treturn int(b.get32BitsFast(n))\n}\n\n// get32BitsFast requires that at least one bit is requested every time.\n// There are no checks if the buffer is filled.\nfunc (b *bitReader) get32BitsFast(n uint8) uint32 {\n\tconst regMask = 64 - 1\n\tv := uint32((b.value << (b.bitsRead & regMask)) >> ((regMask + 1 - n) & regMask))\n\tb.bitsRead += n\n\treturn v\n}\n\n// fillFast() will make sure at least 32 bits are available.\n// There must be at least 4 bytes available.\nfunc (b *bitReader) fillFast() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\tb.cursor -= 4\n\tb.value = (b.value << 32) | uint64(le.Load32(b.in, b.cursor))\n\tb.bitsRead -= 32\n}\n\n// fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read.\nfunc (b *bitReader) fillFastStart() {\n\tb.cursor -= 8\n\tb.value = le.Load64(b.in, b.cursor)\n\tb.bitsRead = 0\n}\n\n// fill() will make sure at least 32 bits are available.\nfunc (b *bitReader) fill() {\n\tif b.bitsRead < 32 {\n\t\treturn\n\t}\n\tif b.cursor >= 4 {\n\t\tb.cursor -= 4\n\t\tb.value = (b.value << 32) | uint64(le.Load32(b.in, b.cursor))\n\t\tb.bitsRead -= 32\n\t\treturn\n\t}\n\n\tb.bitsRead -= uint8(8 * b.cursor)\n\tfor b.cursor > 0 {\n\t\tb.cursor -= 1\n\t\tb.value = (b.value << 8) | uint64(b.in[b.cursor])\n\t}\n}\n\n// finished returns true if all bits have been read from the bit stream.\nfunc (b *bitReader) finished() bool {\n\treturn b.cursor == 0 && b.bitsRead >= 64\n}\n\n// overread returns true if more bits have been requested than is on the stream.\nfunc (b *bitReader) overread() bool {\n\treturn b.bitsRead > 64\n}\n\n// remain returns the number of bits remaining.\nfunc (b *bitReader) remain() uint {\n\treturn 8*uint(b.cursor) + 64 - uint(b.bitsRead)\n}\n\n// close the bitstream and returns an error if out-of-buffer reads occurred.\nfunc (b *bitReader) close() error {\n\t// Release reference.\n\tb.in = nil\n\tb.cursor = 0\n\tif !b.finished() {\n\t\treturn fmt.Errorf(\"%d extra bits on block, should be 0\", b.remain())\n\t}\n\tif b.bitsRead > 64 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n\nfunc highBits(val uint32) (n uint32) {\n\treturn uint32(bits.Len32(val) - 1)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/bitwriter.go",
    "content": "// Copyright 2018 Klaus Post. 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// Based on work Copyright (c) 2013, Yann Collet, released under BSD License.\n\npackage zstd\n\n// bitWriter will write bits.\n// First bit will be LSB of the first byte of output.\ntype bitWriter struct {\n\tbitContainer uint64\n\tnBits        uint8\n\tout          []byte\n}\n\n// bitMask16 is bitmasks. Has extra to avoid bounds check.\nvar bitMask16 = [32]uint16{\n\t0, 1, 3, 7, 0xF, 0x1F,\n\t0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF,\n\t0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0xFFFF,\n\t0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,\n\t0xFFFF, 0xFFFF} /* up to 16 bits */\n\nvar bitMask32 = [32]uint32{\n\t0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF,\n\t0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF,\n\t0x1ffff, 0x3ffff, 0x7FFFF, 0xfFFFF, 0x1fFFFF, 0x3fFFFF, 0x7fFFFF, 0xffFFFF,\n\t0x1ffFFFF, 0x3ffFFFF, 0x7ffFFFF, 0xfffFFFF, 0x1fffFFFF, 0x3fffFFFF, 0x7fffFFFF,\n} // up to 32 bits\n\n// addBits16NC will add up to 16 bits.\n// It will not check if there is space for them,\n// so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits16NC(value uint16, bits uint8) {\n\tb.bitContainer |= uint64(value&bitMask16[bits&31]) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// addBits32NC will add up to 31 bits.\n// It will not check if there is space for them,\n// so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits32NC(value uint32, bits uint8) {\n\tb.bitContainer |= uint64(value&bitMask32[bits&31]) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// addBits64NC will add up to 64 bits.\n// There must be space for 32 bits.\nfunc (b *bitWriter) addBits64NC(value uint64, bits uint8) {\n\tif bits <= 31 {\n\t\tb.addBits32Clean(uint32(value), bits)\n\t\treturn\n\t}\n\tb.addBits32Clean(uint32(value), 32)\n\tb.flush32()\n\tb.addBits32Clean(uint32(value>>32), bits-32)\n}\n\n// addBits32Clean will add up to 32 bits.\n// It will not check if there is space for them.\n// The input must not contain more bits than specified.\nfunc (b *bitWriter) addBits32Clean(value uint32, bits uint8) {\n\tb.bitContainer |= uint64(value) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// addBits16Clean will add up to 16 bits. value may not contain more set bits than indicated.\n// It will not check if there is space for them, so the caller must ensure that it has flushed recently.\nfunc (b *bitWriter) addBits16Clean(value uint16, bits uint8) {\n\tb.bitContainer |= uint64(value) << (b.nBits & 63)\n\tb.nBits += bits\n}\n\n// flush32 will flush out, so there are at least 32 bits available for writing.\nfunc (b *bitWriter) flush32() {\n\tif b.nBits < 32 {\n\t\treturn\n\t}\n\tb.out = append(b.out,\n\t\tbyte(b.bitContainer),\n\t\tbyte(b.bitContainer>>8),\n\t\tbyte(b.bitContainer>>16),\n\t\tbyte(b.bitContainer>>24))\n\tb.nBits -= 32\n\tb.bitContainer >>= 32\n}\n\n// flushAlign will flush remaining full bytes and align to next byte boundary.\nfunc (b *bitWriter) flushAlign() {\n\tnbBytes := (b.nBits + 7) >> 3\n\tfor i := range nbBytes {\n\t\tb.out = append(b.out, byte(b.bitContainer>>(i*8)))\n\t}\n\tb.nBits = 0\n\tb.bitContainer = 0\n}\n\n// close will write the alignment bit and write the final byte(s)\n// to the output.\nfunc (b *bitWriter) close() {\n\t// End mark\n\tb.addBits16Clean(1, 1)\n\t// flush until next byte.\n\tb.flushAlign()\n}\n\n// reset and continue writing by appending to out.\nfunc (b *bitWriter) reset(out []byte) {\n\tb.bitContainer = 0\n\tb.nBits = 0\n\tb.out = out\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/blockdec.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"hash/crc32\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/klauspost/compress/huff0\"\n\t\"github.com/klauspost/compress/zstd/internal/xxhash\"\n)\n\ntype blockType uint8\n\n//go:generate stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex\n\nconst (\n\tblockTypeRaw blockType = iota\n\tblockTypeRLE\n\tblockTypeCompressed\n\tblockTypeReserved\n)\n\ntype literalsBlockType uint8\n\nconst (\n\tliteralsBlockRaw literalsBlockType = iota\n\tliteralsBlockRLE\n\tliteralsBlockCompressed\n\tliteralsBlockTreeless\n)\n\nconst (\n\t// maxCompressedBlockSize is the biggest allowed compressed block size (128KB)\n\tmaxCompressedBlockSize = 128 << 10\n\n\tcompressedBlockOverAlloc    = 16\n\tmaxCompressedBlockSizeAlloc = 128<<10 + compressedBlockOverAlloc\n\n\t// Maximum possible block size (all Raw+Uncompressed).\n\tmaxBlockSize = (1 << 21) - 1\n\n\tmaxMatchLen  = 131074\n\tmaxSequences = 0x7f00 + 0xffff\n\n\t// We support slightly less than the reference decoder to be able to\n\t// use ints on 32 bit archs.\n\tmaxOffsetBits = 30\n)\n\nvar (\n\thuffDecoderPool = sync.Pool{New: func() any {\n\t\treturn &huff0.Scratch{}\n\t}}\n\n\tfseDecoderPool = sync.Pool{New: func() any {\n\t\treturn &fseDecoder{}\n\t}}\n)\n\ntype blockDec struct {\n\t// Raw source data of the block.\n\tdata        []byte\n\tdataStorage []byte\n\n\t// Destination of the decoded data.\n\tdst []byte\n\n\t// Buffer for literals data.\n\tliteralBuf []byte\n\n\t// Window size of the block.\n\tWindowSize uint64\n\n\terr error\n\n\t// Check against this crc, if hasCRC is true.\n\tcheckCRC uint32\n\thasCRC   bool\n\n\t// Frame to use for singlethreaded decoding.\n\t// Should not be used by the decoder itself since parent may be another frame.\n\tlocalFrame *frameDec\n\n\tsequence []seqVals\n\n\tasync struct {\n\t\tnewHist  *history\n\t\tliterals []byte\n\t\tseqData  []byte\n\t\tseqSize  int // Size of uncompressed sequences\n\t\tfcs      uint64\n\t}\n\n\t// Block is RLE, this is the size.\n\tRLESize uint32\n\n\tType blockType\n\n\t// Is this the last block of a frame?\n\tLast bool\n\n\t// Use less memory\n\tlowMem bool\n}\n\nfunc (b *blockDec) String() string {\n\tif b == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"Steam Size: %d, Type: %v, Last: %t, Window: %d\", len(b.data), b.Type, b.Last, b.WindowSize)\n}\n\nfunc newBlockDec(lowMem bool) *blockDec {\n\tb := blockDec{\n\t\tlowMem: lowMem,\n\t}\n\treturn &b\n}\n\n// reset will reset the block.\n// Input must be a start of a block and will be at the end of the block when returned.\nfunc (b *blockDec) reset(br byteBuffer, windowSize uint64) error {\n\tb.WindowSize = windowSize\n\ttmp, err := br.readSmall(3)\n\tif err != nil {\n\t\tprintln(\"Reading block header:\", err)\n\t\treturn err\n\t}\n\tbh := uint32(tmp[0]) | (uint32(tmp[1]) << 8) | (uint32(tmp[2]) << 16)\n\tb.Last = bh&1 != 0\n\tb.Type = blockType((bh >> 1) & 3)\n\t// find size.\n\tcSize := int(bh >> 3)\n\tmaxSize := maxCompressedBlockSizeAlloc\n\tswitch b.Type {\n\tcase blockTypeReserved:\n\t\treturn ErrReservedBlockType\n\tcase blockTypeRLE:\n\t\tif cSize > maxCompressedBlockSize || cSize > int(b.WindowSize) {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"rle block too big: csize:%d block: %+v\\n\", uint64(cSize), b)\n\t\t\t}\n\t\t\treturn ErrWindowSizeExceeded\n\t\t}\n\t\tb.RLESize = uint32(cSize)\n\t\tif b.lowMem {\n\t\t\tmaxSize = cSize\n\t\t}\n\t\tcSize = 1\n\tcase blockTypeCompressed:\n\t\tif debugDecoder {\n\t\t\tprintln(\"Data size on stream:\", cSize)\n\t\t}\n\t\tb.RLESize = 0\n\t\tmaxSize = maxCompressedBlockSizeAlloc\n\t\tif windowSize < maxCompressedBlockSize && b.lowMem {\n\t\t\tmaxSize = int(windowSize) + compressedBlockOverAlloc\n\t\t}\n\t\tif cSize > maxCompressedBlockSize || uint64(cSize) > b.WindowSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"compressed block too big: csize:%d block: %+v\\n\", uint64(cSize), b)\n\t\t\t}\n\t\t\treturn ErrCompressedSizeTooBig\n\t\t}\n\t\t// Empty compressed blocks must at least be 2 bytes\n\t\t// for Literals_Block_Type and one for Sequences_Section_Header.\n\t\tif cSize < 2 {\n\t\t\treturn ErrBlockTooSmall\n\t\t}\n\tcase blockTypeRaw:\n\t\tif cSize > maxCompressedBlockSize || cSize > int(b.WindowSize) {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"rle block too big: csize:%d block: %+v\\n\", uint64(cSize), b)\n\t\t\t}\n\t\t\treturn ErrWindowSizeExceeded\n\t\t}\n\n\t\tb.RLESize = 0\n\t\t// We do not need a destination for raw blocks.\n\t\tmaxSize = -1\n\tdefault:\n\t\tpanic(\"Invalid block type\")\n\t}\n\n\t// Read block data.\n\tif _, ok := br.(*byteBuf); !ok && cap(b.dataStorage) < cSize {\n\t\t// byteBuf doesn't need a destination buffer.\n\t\tif b.lowMem || cSize > maxCompressedBlockSize {\n\t\t\tb.dataStorage = make([]byte, 0, cSize+compressedBlockOverAlloc)\n\t\t} else {\n\t\t\tb.dataStorage = make([]byte, 0, maxCompressedBlockSizeAlloc)\n\t\t}\n\t}\n\tb.data, err = br.readBig(cSize, b.dataStorage)\n\tif err != nil {\n\t\tif debugDecoder {\n\t\t\tprintln(\"Reading block:\", err, \"(\", cSize, \")\", len(b.data))\n\t\t\tprintf(\"%T\", br)\n\t\t}\n\t\treturn err\n\t}\n\tif cap(b.dst) <= maxSize {\n\t\tb.dst = make([]byte, 0, maxSize+1)\n\t}\n\treturn nil\n}\n\n// sendEOF will make the decoder send EOF on this frame.\nfunc (b *blockDec) sendErr(err error) {\n\tb.Last = true\n\tb.Type = blockTypeReserved\n\tb.err = err\n}\n\n// Close will release resources.\n// Closed blockDec cannot be reset.\nfunc (b *blockDec) Close() {\n}\n\n// decodeBuf\nfunc (b *blockDec) decodeBuf(hist *history) error {\n\tswitch b.Type {\n\tcase blockTypeRLE:\n\t\tif cap(b.dst) < int(b.RLESize) {\n\t\t\tif b.lowMem {\n\t\t\t\tb.dst = make([]byte, b.RLESize)\n\t\t\t} else {\n\t\t\t\tb.dst = make([]byte, maxCompressedBlockSize)\n\t\t\t}\n\t\t}\n\t\tb.dst = b.dst[:b.RLESize]\n\t\tv := b.data[0]\n\t\tfor i := range b.dst {\n\t\t\tb.dst[i] = v\n\t\t}\n\t\thist.appendKeep(b.dst)\n\t\treturn nil\n\tcase blockTypeRaw:\n\t\thist.appendKeep(b.data)\n\t\treturn nil\n\tcase blockTypeCompressed:\n\t\tsaved := b.dst\n\t\t// Append directly to history\n\t\tif hist.ignoreBuffer == 0 {\n\t\t\tb.dst = hist.b\n\t\t\thist.b = nil\n\t\t} else {\n\t\t\tb.dst = b.dst[:0]\n\t\t}\n\t\terr := b.decodeCompressed(hist)\n\t\tif debugDecoder {\n\t\t\tprintln(\"Decompressed to total\", len(b.dst), \"bytes, hash:\", xxhash.Sum64(b.dst), \"error:\", err)\n\t\t}\n\t\tif hist.ignoreBuffer == 0 {\n\t\t\thist.b = b.dst\n\t\t\tb.dst = saved\n\t\t} else {\n\t\t\thist.appendKeep(b.dst)\n\t\t}\n\t\treturn err\n\tcase blockTypeReserved:\n\t\t// Used for returning errors.\n\t\treturn b.err\n\tdefault:\n\t\tpanic(\"Invalid block type\")\n\t}\n}\n\nfunc (b *blockDec) decodeLiterals(in []byte, hist *history) (remain []byte, err error) {\n\t// There must be at least one byte for Literals_Block_Type and one for Sequences_Section_Header\n\tif len(in) < 2 {\n\t\treturn in, ErrBlockTooSmall\n\t}\n\n\tlitType := literalsBlockType(in[0] & 3)\n\tvar litRegenSize int\n\tvar litCompSize int\n\tsizeFormat := (in[0] >> 2) & 3\n\tvar fourStreams bool\n\tvar literals []byte\n\tswitch litType {\n\tcase literalsBlockRaw, literalsBlockRLE:\n\t\tswitch sizeFormat {\n\t\tcase 0, 2:\n\t\t\t// Regenerated_Size uses 5 bits (0-31). Literals_Section_Header uses 1 byte.\n\t\t\tlitRegenSize = int(in[0] >> 3)\n\t\t\tin = in[1:]\n\t\tcase 1:\n\t\t\t// Regenerated_Size uses 12 bits (0-4095). Literals_Section_Header uses 2 bytes.\n\t\t\tlitRegenSize = int(in[0]>>4) + (int(in[1]) << 4)\n\t\t\tin = in[2:]\n\t\tcase 3:\n\t\t\t//  Regenerated_Size uses 20 bits (0-1048575). Literals_Section_Header uses 3 bytes.\n\t\t\tif len(in) < 3 {\n\t\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, len(in))\n\t\t\t\treturn in, ErrBlockTooSmall\n\t\t\t}\n\t\t\tlitRegenSize = int(in[0]>>4) + (int(in[1]) << 4) + (int(in[2]) << 12)\n\t\t\tin = in[3:]\n\t\t}\n\tcase literalsBlockCompressed, literalsBlockTreeless:\n\t\tswitch sizeFormat {\n\t\tcase 0, 1:\n\t\t\t// Both Regenerated_Size and Compressed_Size use 10 bits (0-1023).\n\t\t\tif len(in) < 3 {\n\t\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, len(in))\n\t\t\t\treturn in, ErrBlockTooSmall\n\t\t\t}\n\t\t\tn := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12)\n\t\t\tlitRegenSize = int(n & 1023)\n\t\t\tlitCompSize = int(n >> 10)\n\t\t\tfourStreams = sizeFormat == 1\n\t\t\tin = in[3:]\n\t\tcase 2:\n\t\t\tfourStreams = true\n\t\t\tif len(in) < 4 {\n\t\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, len(in))\n\t\t\t\treturn in, ErrBlockTooSmall\n\t\t\t}\n\t\t\tn := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20)\n\t\t\tlitRegenSize = int(n & 16383)\n\t\t\tlitCompSize = int(n >> 14)\n\t\t\tin = in[4:]\n\t\tcase 3:\n\t\t\tfourStreams = true\n\t\t\tif len(in) < 5 {\n\t\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, len(in))\n\t\t\t\treturn in, ErrBlockTooSmall\n\t\t\t}\n\t\t\tn := uint64(in[0]>>4) + (uint64(in[1]) << 4) + (uint64(in[2]) << 12) + (uint64(in[3]) << 20) + (uint64(in[4]) << 28)\n\t\t\tlitRegenSize = int(n & 262143)\n\t\t\tlitCompSize = int(n >> 18)\n\t\t\tin = in[5:]\n\t\t}\n\t}\n\tif debugDecoder {\n\t\tprintln(\"literals type:\", litType, \"litRegenSize:\", litRegenSize, \"litCompSize:\", litCompSize, \"sizeFormat:\", sizeFormat, \"4X:\", fourStreams)\n\t}\n\tif litRegenSize > int(b.WindowSize) || litRegenSize > maxCompressedBlockSize {\n\t\treturn in, ErrWindowSizeExceeded\n\t}\n\n\tswitch litType {\n\tcase literalsBlockRaw:\n\t\tif len(in) < litRegenSize {\n\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, \"remain:\", len(in), \"want:\", litRegenSize)\n\t\t\treturn in, ErrBlockTooSmall\n\t\t}\n\t\tliterals = in[:litRegenSize]\n\t\tin = in[litRegenSize:]\n\t\t//printf(\"Found %d uncompressed literals\\n\", litRegenSize)\n\tcase literalsBlockRLE:\n\t\tif len(in) < 1 {\n\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, \"remain:\", len(in), \"want:\", 1)\n\t\t\treturn in, ErrBlockTooSmall\n\t\t}\n\t\tif cap(b.literalBuf) < litRegenSize {\n\t\t\tif b.lowMem {\n\t\t\t\tb.literalBuf = make([]byte, litRegenSize, litRegenSize+compressedBlockOverAlloc)\n\t\t\t} else {\n\t\t\t\tb.literalBuf = make([]byte, litRegenSize, maxCompressedBlockSize+compressedBlockOverAlloc)\n\t\t\t}\n\t\t}\n\t\tliterals = b.literalBuf[:litRegenSize]\n\t\tv := in[0]\n\t\tfor i := range literals {\n\t\t\tliterals[i] = v\n\t\t}\n\t\tin = in[1:]\n\t\tif debugDecoder {\n\t\t\tprintf(\"Found %d RLE compressed literals\\n\", litRegenSize)\n\t\t}\n\tcase literalsBlockTreeless:\n\t\tif len(in) < litCompSize {\n\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, \"remain:\", len(in), \"want:\", litCompSize)\n\t\t\treturn in, ErrBlockTooSmall\n\t\t}\n\t\t// Store compressed literals, so we defer decoding until we get history.\n\t\tliterals = in[:litCompSize]\n\t\tin = in[litCompSize:]\n\t\tif debugDecoder {\n\t\t\tprintf(\"Found %d compressed literals\\n\", litCompSize)\n\t\t}\n\t\thuff := hist.huffTree\n\t\tif huff == nil {\n\t\t\treturn in, errors.New(\"literal block was treeless, but no history was defined\")\n\t\t}\n\t\t// Ensure we have space to store it.\n\t\tif cap(b.literalBuf) < litRegenSize {\n\t\t\tif b.lowMem {\n\t\t\t\tb.literalBuf = make([]byte, 0, litRegenSize+compressedBlockOverAlloc)\n\t\t\t} else {\n\t\t\t\tb.literalBuf = make([]byte, 0, maxCompressedBlockSize+compressedBlockOverAlloc)\n\t\t\t}\n\t\t}\n\t\tvar err error\n\t\t// Use our out buffer.\n\t\thuff.MaxDecodedSize = litRegenSize\n\t\tif fourStreams {\n\t\t\tliterals, err = huff.Decoder().Decompress4X(b.literalBuf[:0:litRegenSize], literals)\n\t\t} else {\n\t\t\tliterals, err = huff.Decoder().Decompress1X(b.literalBuf[:0:litRegenSize], literals)\n\t\t}\n\t\t// Make sure we don't leak our literals buffer\n\t\tif err != nil {\n\t\t\tprintln(\"decompressing literals:\", err)\n\t\t\treturn in, err\n\t\t}\n\t\tif len(literals) != litRegenSize {\n\t\t\treturn in, fmt.Errorf(\"literal output size mismatch want %d, got %d\", litRegenSize, len(literals))\n\t\t}\n\n\tcase literalsBlockCompressed:\n\t\tif len(in) < litCompSize {\n\t\t\tprintln(\"too small: litType:\", litType, \" sizeFormat\", sizeFormat, \"remain:\", len(in), \"want:\", litCompSize)\n\t\t\treturn in, ErrBlockTooSmall\n\t\t}\n\t\tliterals = in[:litCompSize]\n\t\tin = in[litCompSize:]\n\t\t// Ensure we have space to store it.\n\t\tif cap(b.literalBuf) < litRegenSize {\n\t\t\tif b.lowMem {\n\t\t\t\tb.literalBuf = make([]byte, 0, litRegenSize+compressedBlockOverAlloc)\n\t\t\t} else {\n\t\t\t\tb.literalBuf = make([]byte, 0, maxCompressedBlockSize+compressedBlockOverAlloc)\n\t\t\t}\n\t\t}\n\t\thuff := hist.huffTree\n\t\tif huff == nil || (hist.dict != nil && huff == hist.dict.litEnc) {\n\t\t\thuff = huffDecoderPool.Get().(*huff0.Scratch)\n\t\t\tif huff == nil {\n\t\t\t\thuff = &huff0.Scratch{}\n\t\t\t}\n\t\t}\n\t\tvar err error\n\t\tif debugDecoder {\n\t\t\tprintln(\"huff table input:\", len(literals), \"CRC:\", crc32.ChecksumIEEE(literals))\n\t\t}\n\t\thuff, literals, err = huff0.ReadTable(literals, huff)\n\t\tif err != nil {\n\t\t\tprintln(\"reading huffman table:\", err)\n\t\t\treturn in, err\n\t\t}\n\t\thist.huffTree = huff\n\t\thuff.MaxDecodedSize = litRegenSize\n\t\t// Use our out buffer.\n\t\tif fourStreams {\n\t\t\tliterals, err = huff.Decoder().Decompress4X(b.literalBuf[:0:litRegenSize], literals)\n\t\t} else {\n\t\t\tliterals, err = huff.Decoder().Decompress1X(b.literalBuf[:0:litRegenSize], literals)\n\t\t}\n\t\tif err != nil {\n\t\t\tprintln(\"decoding compressed literals:\", err)\n\t\t\treturn in, err\n\t\t}\n\t\t// Make sure we don't leak our literals buffer\n\t\tif len(literals) != litRegenSize {\n\t\t\treturn in, fmt.Errorf(\"literal output size mismatch want %d, got %d\", litRegenSize, len(literals))\n\t\t}\n\t\t// Re-cap to get extra size.\n\t\tliterals = b.literalBuf[:len(literals)]\n\t\tif debugDecoder {\n\t\t\tprintf(\"Decompressed %d literals into %d bytes\\n\", litCompSize, litRegenSize)\n\t\t}\n\t}\n\thist.decoders.literals = literals\n\treturn in, nil\n}\n\n// decodeCompressed will start decompressing a block.\nfunc (b *blockDec) decodeCompressed(hist *history) error {\n\tin := b.data\n\tin, err := b.decodeLiterals(in, hist)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = b.prepareSequences(in, hist)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif hist.decoders.nSeqs == 0 {\n\t\tb.dst = append(b.dst, hist.decoders.literals...)\n\t\treturn nil\n\t}\n\tbefore := len(hist.decoders.out)\n\terr = hist.decoders.decodeSync(hist.b[hist.ignoreBuffer:])\n\tif err != nil {\n\t\treturn err\n\t}\n\tif hist.decoders.maxSyncLen > 0 {\n\t\thist.decoders.maxSyncLen += uint64(before)\n\t\thist.decoders.maxSyncLen -= uint64(len(hist.decoders.out))\n\t}\n\tb.dst = hist.decoders.out\n\thist.recentOffsets = hist.decoders.prevOffset\n\treturn nil\n}\n\nfunc (b *blockDec) prepareSequences(in []byte, hist *history) (err error) {\n\tif debugDecoder {\n\t\tprintf(\"prepareSequences: %d byte(s) input\\n\", len(in))\n\t}\n\t// Decode Sequences\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#sequences-section\n\tif len(in) < 1 {\n\t\treturn ErrBlockTooSmall\n\t}\n\tvar nSeqs int\n\tseqHeader := in[0]\n\tswitch {\n\tcase seqHeader < 128:\n\t\tnSeqs = int(seqHeader)\n\t\tin = in[1:]\n\tcase seqHeader < 255:\n\t\tif len(in) < 2 {\n\t\t\treturn ErrBlockTooSmall\n\t\t}\n\t\tnSeqs = int(seqHeader-128)<<8 | int(in[1])\n\t\tin = in[2:]\n\tcase seqHeader == 255:\n\t\tif len(in) < 3 {\n\t\t\treturn ErrBlockTooSmall\n\t\t}\n\t\tnSeqs = 0x7f00 + int(in[1]) + (int(in[2]) << 8)\n\t\tin = in[3:]\n\t}\n\tif nSeqs == 0 && len(in) != 0 {\n\t\t// When no sequences, there should not be any more data...\n\t\tif debugDecoder {\n\t\t\tprintf(\"prepareSequences: 0 sequences, but %d byte(s) left on stream\\n\", len(in))\n\t\t}\n\t\treturn ErrUnexpectedBlockSize\n\t}\n\n\tvar seqs = &hist.decoders\n\tseqs.nSeqs = nSeqs\n\tif nSeqs > 0 {\n\t\tif len(in) < 1 {\n\t\t\treturn ErrBlockTooSmall\n\t\t}\n\t\tbr := byteReader{b: in, off: 0}\n\t\tcompMode := br.Uint8()\n\t\tbr.advance(1)\n\t\tif debugDecoder {\n\t\t\tprintf(\"Compression modes: 0b%b\", compMode)\n\t\t}\n\t\tif compMode&3 != 0 {\n\t\t\treturn errors.New(\"corrupt block: reserved bits not zero\")\n\t\t}\n\t\tfor i := range uint(3) {\n\t\t\tmode := seqCompMode((compMode >> (6 - i*2)) & 3)\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"Table\", tableIndex(i), \"is\", mode)\n\t\t\t}\n\t\t\tvar seq *sequenceDec\n\t\t\tswitch tableIndex(i) {\n\t\t\tcase tableLiteralLengths:\n\t\t\t\tseq = &seqs.litLengths\n\t\t\tcase tableOffsets:\n\t\t\t\tseq = &seqs.offsets\n\t\t\tcase tableMatchLengths:\n\t\t\t\tseq = &seqs.matchLengths\n\t\t\tdefault:\n\t\t\t\tpanic(\"unknown table\")\n\t\t\t}\n\t\t\tswitch mode {\n\t\t\tcase compModePredefined:\n\t\t\t\tif seq.fse != nil && !seq.fse.preDefined {\n\t\t\t\t\tfseDecoderPool.Put(seq.fse)\n\t\t\t\t}\n\t\t\t\tseq.fse = &fsePredef[i]\n\t\t\tcase compModeRLE:\n\t\t\t\tif br.remain() < 1 {\n\t\t\t\t\treturn ErrBlockTooSmall\n\t\t\t\t}\n\t\t\t\tv := br.Uint8()\n\t\t\t\tbr.advance(1)\n\t\t\t\tif seq.fse == nil || seq.fse.preDefined {\n\t\t\t\t\tseq.fse = fseDecoderPool.Get().(*fseDecoder)\n\t\t\t\t}\n\t\t\t\tsymb, err := decSymbolValue(v, symbolTableX[i])\n\t\t\t\tif err != nil {\n\t\t\t\t\tprintf(\"RLE Transform table (%v) error: %v\", tableIndex(i), err)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tseq.fse.setRLE(symb)\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintf(\"RLE set to 0x%x, code: %v\", symb, v)\n\t\t\t\t}\n\t\t\tcase compModeFSE:\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"Reading table for\", tableIndex(i))\n\t\t\t\t}\n\t\t\t\tif seq.fse == nil || seq.fse.preDefined {\n\t\t\t\t\tseq.fse = fseDecoderPool.Get().(*fseDecoder)\n\t\t\t\t}\n\t\t\t\terr := seq.fse.readNCount(&br, uint16(maxTableSymbol[i]))\n\t\t\t\tif err != nil {\n\t\t\t\t\tprintln(\"Read table error:\", err)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\terr = seq.fse.transform(symbolTableX[i])\n\t\t\t\tif err != nil {\n\t\t\t\t\tprintln(\"Transform table error:\", err)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"Read table ok\", \"symbolLen:\", seq.fse.symbolLen)\n\t\t\t\t}\n\t\t\tcase compModeRepeat:\n\t\t\t\tseq.repeat = true\n\t\t\t}\n\t\t\tif br.overread() {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t}\n\t\tin = br.unread()\n\t}\n\tif debugDecoder {\n\t\tprintln(\"Literals:\", len(seqs.literals), \"hash:\", xxhash.Sum64(seqs.literals), \"and\", seqs.nSeqs, \"sequences.\")\n\t}\n\n\tif nSeqs == 0 {\n\t\tif len(b.sequence) > 0 {\n\t\t\tb.sequence = b.sequence[:0]\n\t\t}\n\t\treturn nil\n\t}\n\tbr := seqs.br\n\tif br == nil {\n\t\tbr = &bitReader{}\n\t}\n\tif err := br.init(in); err != nil {\n\t\treturn err\n\t}\n\n\tif err := seqs.initialize(br, hist, b.dst); err != nil {\n\t\tprintln(\"initializing sequences:\", err)\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (b *blockDec) decodeSequences(hist *history) error {\n\tif cap(b.sequence) < hist.decoders.nSeqs {\n\t\tif b.lowMem {\n\t\t\tb.sequence = make([]seqVals, 0, hist.decoders.nSeqs)\n\t\t} else {\n\t\t\tb.sequence = make([]seqVals, 0, 0x7F00+0xffff)\n\t\t}\n\t}\n\tb.sequence = b.sequence[:hist.decoders.nSeqs]\n\tif hist.decoders.nSeqs == 0 {\n\t\thist.decoders.seqSize = len(hist.decoders.literals)\n\t\treturn nil\n\t}\n\thist.decoders.windowSize = hist.windowSize\n\thist.decoders.prevOffset = hist.recentOffsets\n\n\terr := hist.decoders.decode(b.sequence)\n\thist.recentOffsets = hist.decoders.prevOffset\n\treturn err\n}\n\nfunc (b *blockDec) executeSequences(hist *history) error {\n\thbytes := hist.b\n\tif len(hbytes) > hist.windowSize {\n\t\thbytes = hbytes[len(hbytes)-hist.windowSize:]\n\t\t// We do not need history anymore.\n\t\tif hist.dict != nil {\n\t\t\thist.dict.content = nil\n\t\t}\n\t}\n\thist.decoders.windowSize = hist.windowSize\n\thist.decoders.out = b.dst[:0]\n\terr := hist.decoders.execute(b.sequence, hbytes)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn b.updateHistory(hist)\n}\n\nfunc (b *blockDec) updateHistory(hist *history) error {\n\tif len(b.data) > maxCompressedBlockSize {\n\t\treturn fmt.Errorf(\"compressed block size too large (%d)\", len(b.data))\n\t}\n\t// Set output and release references.\n\tb.dst = hist.decoders.out\n\thist.recentOffsets = hist.decoders.prevOffset\n\n\tif b.Last {\n\t\t// if last block we don't care about history.\n\t\tprintln(\"Last block, no history returned\")\n\t\thist.b = hist.b[:0]\n\t\treturn nil\n\t} else {\n\t\thist.append(b.dst)\n\t\tif debugDecoder {\n\t\t\tprintln(\"Finished block with \", len(b.sequence), \"sequences. Added\", len(b.dst), \"to history, now length\", len(hist.b))\n\t\t}\n\t}\n\thist.decoders.out, hist.decoders.literals = nil, nil\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/blockenc.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/bits\"\n\t\"slices\"\n\n\t\"github.com/klauspost/compress/huff0\"\n)\n\ntype blockEnc struct {\n\tsize       int\n\tliterals   []byte\n\tsequences  []seq\n\tcoders     seqCoders\n\tlitEnc     *huff0.Scratch\n\tdictLitEnc *huff0.Scratch\n\twr         bitWriter\n\n\textraLits         int\n\toutput            []byte\n\trecentOffsets     [3]uint32\n\tprevRecentOffsets [3]uint32\n\n\tlast   bool\n\tlowMem bool\n}\n\n// init should be used once the block has been created.\n// If called more than once, the effect is the same as calling reset.\nfunc (b *blockEnc) init() {\n\tif b.lowMem {\n\t\t// 1K literals\n\t\tif cap(b.literals) < 1<<10 {\n\t\t\tb.literals = make([]byte, 0, 1<<10)\n\t\t}\n\t\tconst defSeqs = 20\n\t\tif cap(b.sequences) < defSeqs {\n\t\t\tb.sequences = make([]seq, 0, defSeqs)\n\t\t}\n\t\t// 1K\n\t\tif cap(b.output) < 1<<10 {\n\t\t\tb.output = make([]byte, 0, 1<<10)\n\t\t}\n\t} else {\n\t\tif cap(b.literals) < maxCompressedBlockSize {\n\t\t\tb.literals = make([]byte, 0, maxCompressedBlockSize)\n\t\t}\n\t\tconst defSeqs = 2000\n\t\tif cap(b.sequences) < defSeqs {\n\t\t\tb.sequences = make([]seq, 0, defSeqs)\n\t\t}\n\t\tif cap(b.output) < maxCompressedBlockSize {\n\t\t\tb.output = make([]byte, 0, maxCompressedBlockSize)\n\t\t}\n\t}\n\n\tif b.coders.mlEnc == nil {\n\t\tb.coders.mlEnc = &fseEncoder{}\n\t\tb.coders.mlPrev = &fseEncoder{}\n\t\tb.coders.ofEnc = &fseEncoder{}\n\t\tb.coders.ofPrev = &fseEncoder{}\n\t\tb.coders.llEnc = &fseEncoder{}\n\t\tb.coders.llPrev = &fseEncoder{}\n\t}\n\tb.litEnc = &huff0.Scratch{WantLogLess: 4}\n\tb.reset(nil)\n}\n\n// initNewEncode can be used to reset offsets and encoders to the initial state.\nfunc (b *blockEnc) initNewEncode() {\n\tb.recentOffsets = [3]uint32{1, 4, 8}\n\tb.litEnc.Reuse = huff0.ReusePolicyNone\n\tb.coders.setPrev(nil, nil, nil)\n}\n\n// reset will reset the block for a new encode, but in the same stream,\n// meaning that state will be carried over, but the block content is reset.\n// If a previous block is provided, the recent offsets are carried over.\nfunc (b *blockEnc) reset(prev *blockEnc) {\n\tb.extraLits = 0\n\tb.literals = b.literals[:0]\n\tb.size = 0\n\tb.sequences = b.sequences[:0]\n\tb.output = b.output[:0]\n\tb.last = false\n\tif prev != nil {\n\t\tb.recentOffsets = prev.prevRecentOffsets\n\t}\n\tb.dictLitEnc = nil\n}\n\n// reset will reset the block for a new encode, but in the same stream,\n// meaning that state will be carried over, but the block content is reset.\n// If a previous block is provided, the recent offsets are carried over.\nfunc (b *blockEnc) swapEncoders(prev *blockEnc) {\n\tb.coders.swap(&prev.coders)\n\tb.litEnc, prev.litEnc = prev.litEnc, b.litEnc\n}\n\n// blockHeader contains the information for a block header.\ntype blockHeader uint32\n\n// setLast sets the 'last' indicator on a block.\nfunc (h *blockHeader) setLast(b bool) {\n\tif b {\n\t\t*h = *h | 1\n\t} else {\n\t\tconst mask = (1 << 24) - 2\n\t\t*h = *h & mask\n\t}\n}\n\n// setSize will store the compressed size of a block.\nfunc (h *blockHeader) setSize(v uint32) {\n\tconst mask = 7\n\t*h = (*h)&mask | blockHeader(v<<3)\n}\n\n// setType sets the block type.\nfunc (h *blockHeader) setType(t blockType) {\n\tconst mask = 1 | (((1 << 24) - 1) ^ 7)\n\t*h = (*h & mask) | blockHeader(t<<1)\n}\n\n// appendTo will append the block header to a slice.\nfunc (h blockHeader) appendTo(b []byte) []byte {\n\treturn append(b, uint8(h), uint8(h>>8), uint8(h>>16))\n}\n\n// String returns a string representation of the block.\nfunc (h blockHeader) String() string {\n\treturn fmt.Sprintf(\"Type: %d, Size: %d, Last:%t\", (h>>1)&3, h>>3, h&1 == 1)\n}\n\n// literalsHeader contains literals header information.\ntype literalsHeader uint64\n\n// setType can be used to set the type of literal block.\nfunc (h *literalsHeader) setType(t literalsBlockType) {\n\tconst mask = math.MaxUint64 - 3\n\t*h = (*h & mask) | literalsHeader(t)\n}\n\n// setSize can be used to set a single size, for uncompressed and RLE content.\nfunc (h *literalsHeader) setSize(regenLen int) {\n\tinBits := bits.Len32(uint32(regenLen))\n\t// Only retain 2 bits\n\tconst mask = 3\n\tlh := uint64(*h & mask)\n\tswitch {\n\tcase inBits < 5:\n\t\tlh |= (uint64(regenLen) << 3) | (1 << 60)\n\t\tif debugEncoder {\n\t\t\tgot := int(lh>>3) & 0xff\n\t\t\tif got != regenLen {\n\t\t\t\tpanic(fmt.Sprint(\"litRegenSize = \", regenLen, \"(want) != \", got, \"(got)\"))\n\t\t\t}\n\t\t}\n\tcase inBits < 12:\n\t\tlh |= (1 << 2) | (uint64(regenLen) << 4) | (2 << 60)\n\tcase inBits < 20:\n\t\tlh |= (3 << 2) | (uint64(regenLen) << 4) | (3 << 60)\n\tdefault:\n\t\tpanic(fmt.Errorf(\"internal error: block too big (%d)\", regenLen))\n\t}\n\t*h = literalsHeader(lh)\n}\n\n// setSizes will set the size of a compressed literals section and the input length.\nfunc (h *literalsHeader) setSizes(compLen, inLen int, single bool) {\n\tcompBits, inBits := bits.Len32(uint32(compLen)), bits.Len32(uint32(inLen))\n\t// Only retain 2 bits\n\tconst mask = 3\n\tlh := uint64(*h & mask)\n\tswitch {\n\tcase compBits <= 10 && inBits <= 10:\n\t\tif !single {\n\t\t\tlh |= 1 << 2\n\t\t}\n\t\tlh |= (uint64(inLen) << 4) | (uint64(compLen) << (10 + 4)) | (3 << 60)\n\t\tif debugEncoder {\n\t\t\tconst mmask = (1 << 24) - 1\n\t\t\tn := (lh >> 4) & mmask\n\t\t\tif int(n&1023) != inLen {\n\t\t\t\tpanic(fmt.Sprint(\"regensize:\", int(n&1023), \"!=\", inLen, inBits))\n\t\t\t}\n\t\t\tif int(n>>10) != compLen {\n\t\t\t\tpanic(fmt.Sprint(\"compsize:\", int(n>>10), \"!=\", compLen, compBits))\n\t\t\t}\n\t\t}\n\tcase compBits <= 14 && inBits <= 14:\n\t\tlh |= (2 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (14 + 4)) | (4 << 60)\n\t\tif single {\n\t\t\tpanic(\"single stream used with more than 10 bits length.\")\n\t\t}\n\tcase compBits <= 18 && inBits <= 18:\n\t\tlh |= (3 << 2) | (uint64(inLen) << 4) | (uint64(compLen) << (18 + 4)) | (5 << 60)\n\t\tif single {\n\t\t\tpanic(\"single stream used with more than 10 bits length.\")\n\t\t}\n\tdefault:\n\t\tpanic(\"internal error: block too big\")\n\t}\n\t*h = literalsHeader(lh)\n}\n\n// appendTo will append the literals header to a byte slice.\nfunc (h literalsHeader) appendTo(b []byte) []byte {\n\tsize := uint8(h >> 60)\n\tswitch size {\n\tcase 1:\n\t\tb = append(b, uint8(h))\n\tcase 2:\n\t\tb = append(b, uint8(h), uint8(h>>8))\n\tcase 3:\n\t\tb = append(b, uint8(h), uint8(h>>8), uint8(h>>16))\n\tcase 4:\n\t\tb = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24))\n\tcase 5:\n\t\tb = append(b, uint8(h), uint8(h>>8), uint8(h>>16), uint8(h>>24), uint8(h>>32))\n\tdefault:\n\t\tpanic(fmt.Errorf(\"internal error: literalsHeader has invalid size (%d)\", size))\n\t}\n\treturn b\n}\n\n// size returns the output size with currently set values.\nfunc (h literalsHeader) size() int {\n\treturn int(h >> 60)\n}\n\nfunc (h literalsHeader) String() string {\n\treturn fmt.Sprintf(\"Type: %d, SizeFormat: %d, Size: 0x%d, Bytes:%d\", literalsBlockType(h&3), (h>>2)&3, h&((1<<60)-1)>>4, h>>60)\n}\n\n// pushOffsets will push the recent offsets to the backup store.\nfunc (b *blockEnc) pushOffsets() {\n\tb.prevRecentOffsets = b.recentOffsets\n}\n\n// pushOffsets will push the recent offsets to the backup store.\nfunc (b *blockEnc) popOffsets() {\n\tb.recentOffsets = b.prevRecentOffsets\n}\n\n// matchOffset will adjust recent offsets and return the adjusted one,\n// if it matches a previous offset.\nfunc (b *blockEnc) matchOffset(offset, lits uint32) uint32 {\n\t// Check if offset is one of the recent offsets.\n\t// Adjusts the output offset accordingly.\n\t// Gives a tiny bit of compression, typically around 1%.\n\tif true {\n\t\tif lits > 0 {\n\t\t\tswitch offset {\n\t\t\tcase b.recentOffsets[0]:\n\t\t\t\toffset = 1\n\t\t\tcase b.recentOffsets[1]:\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset = 2\n\t\t\tcase b.recentOffsets[2]:\n\t\t\t\tb.recentOffsets[2] = b.recentOffsets[1]\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset = 3\n\t\t\tdefault:\n\t\t\t\tb.recentOffsets[2] = b.recentOffsets[1]\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset += 3\n\t\t\t}\n\t\t} else {\n\t\t\tswitch offset {\n\t\t\tcase b.recentOffsets[1]:\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset = 1\n\t\t\tcase b.recentOffsets[2]:\n\t\t\t\tb.recentOffsets[2] = b.recentOffsets[1]\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset = 2\n\t\t\tcase b.recentOffsets[0] - 1:\n\t\t\t\tb.recentOffsets[2] = b.recentOffsets[1]\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset = 3\n\t\t\tdefault:\n\t\t\t\tb.recentOffsets[2] = b.recentOffsets[1]\n\t\t\t\tb.recentOffsets[1] = b.recentOffsets[0]\n\t\t\t\tb.recentOffsets[0] = offset\n\t\t\t\toffset += 3\n\t\t\t}\n\t\t}\n\t} else {\n\t\toffset += 3\n\t}\n\treturn offset\n}\n\n// encodeRaw can be used to set the output to a raw representation of supplied bytes.\nfunc (b *blockEnc) encodeRaw(a []byte) {\n\tvar bh blockHeader\n\tbh.setLast(b.last)\n\tbh.setSize(uint32(len(a)))\n\tbh.setType(blockTypeRaw)\n\tb.output = bh.appendTo(b.output[:0])\n\tb.output = append(b.output, a...)\n\tif debugEncoder {\n\t\tprintln(\"Adding RAW block, length\", len(a), \"last:\", b.last)\n\t}\n}\n\n// encodeRaw can be used to set the output to a raw representation of supplied bytes.\nfunc (b *blockEnc) encodeRawTo(dst, src []byte) []byte {\n\tvar bh blockHeader\n\tbh.setLast(b.last)\n\tbh.setSize(uint32(len(src)))\n\tbh.setType(blockTypeRaw)\n\tdst = bh.appendTo(dst)\n\tdst = append(dst, src...)\n\tif debugEncoder {\n\t\tprintln(\"Adding RAW block, length\", len(src), \"last:\", b.last)\n\t}\n\treturn dst\n}\n\n// encodeLits can be used if the block is only litLen.\nfunc (b *blockEnc) encodeLits(lits []byte, raw bool) error {\n\tvar bh blockHeader\n\tbh.setLast(b.last)\n\tbh.setSize(uint32(len(lits)))\n\n\t// Don't compress extremely small blocks\n\tif len(lits) < 8 || (len(lits) < 32 && b.dictLitEnc == nil) || raw {\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding RAW block, length\", len(lits), \"last:\", b.last)\n\t\t}\n\t\tbh.setType(blockTypeRaw)\n\t\tb.output = bh.appendTo(b.output)\n\t\tb.output = append(b.output, lits...)\n\t\treturn nil\n\t}\n\n\tvar (\n\t\tout            []byte\n\t\treUsed, single bool\n\t\terr            error\n\t)\n\tif b.dictLitEnc != nil {\n\t\tb.litEnc.TransferCTable(b.dictLitEnc)\n\t\tb.litEnc.Reuse = huff0.ReusePolicyAllow\n\t\tb.dictLitEnc = nil\n\t}\n\tif len(lits) >= 1024 {\n\t\t// Use 4 Streams.\n\t\tout, reUsed, err = huff0.Compress4X(lits, b.litEnc)\n\t} else if len(lits) > 16 {\n\t\t// Use 1 stream\n\t\tsingle = true\n\t\tout, reUsed, err = huff0.Compress1X(lits, b.litEnc)\n\t} else {\n\t\terr = huff0.ErrIncompressible\n\t}\n\tif err == nil && len(out)+5 > len(lits) {\n\t\t// If we are close, we may still be worse or equal to raw.\n\t\tvar lh literalsHeader\n\t\tlh.setSizes(len(out), len(lits), single)\n\t\tif len(out)+lh.size() >= len(lits) {\n\t\t\terr = huff0.ErrIncompressible\n\t\t}\n\t}\n\tswitch err {\n\tcase huff0.ErrIncompressible:\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding RAW block, length\", len(lits), \"last:\", b.last)\n\t\t}\n\t\tbh.setType(blockTypeRaw)\n\t\tb.output = bh.appendTo(b.output)\n\t\tb.output = append(b.output, lits...)\n\t\treturn nil\n\tcase huff0.ErrUseRLE:\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding RLE block, length\", len(lits))\n\t\t}\n\t\tbh.setType(blockTypeRLE)\n\t\tb.output = bh.appendTo(b.output)\n\t\tb.output = append(b.output, lits[0])\n\t\treturn nil\n\tcase nil:\n\tdefault:\n\t\treturn err\n\t}\n\t// Compressed...\n\t// Now, allow reuse\n\tb.litEnc.Reuse = huff0.ReusePolicyAllow\n\tbh.setType(blockTypeCompressed)\n\tvar lh literalsHeader\n\tif reUsed {\n\t\tif debugEncoder {\n\t\t\tprintln(\"Reused tree, compressed to\", len(out))\n\t\t}\n\t\tlh.setType(literalsBlockTreeless)\n\t} else {\n\t\tif debugEncoder {\n\t\t\tprintln(\"New tree, compressed to\", len(out), \"tree size:\", len(b.litEnc.OutTable))\n\t\t}\n\t\tlh.setType(literalsBlockCompressed)\n\t}\n\t// Set sizes\n\tlh.setSizes(len(out), len(lits), single)\n\tbh.setSize(uint32(len(out) + lh.size() + 1))\n\n\t// Write block headers.\n\tb.output = bh.appendTo(b.output)\n\tb.output = lh.appendTo(b.output)\n\t// Add compressed data.\n\tb.output = append(b.output, out...)\n\t// No sequences.\n\tb.output = append(b.output, 0)\n\treturn nil\n}\n\n// encodeRLE will encode an RLE block.\nfunc (b *blockEnc) encodeRLE(val byte, length uint32) {\n\tvar bh blockHeader\n\tbh.setLast(b.last)\n\tbh.setSize(length)\n\tbh.setType(blockTypeRLE)\n\tb.output = bh.appendTo(b.output)\n\tb.output = append(b.output, val)\n}\n\n// fuzzFseEncoder can be used to fuzz the FSE encoder.\nfunc fuzzFseEncoder(data []byte) int {\n\tif len(data) > maxSequences || len(data) < 2 {\n\t\treturn 0\n\t}\n\tenc := fseEncoder{}\n\thist := enc.Histogram()\n\tmaxSym := uint8(0)\n\tfor i, v := range data {\n\t\tv = v & 63\n\t\tdata[i] = v\n\t\thist[v]++\n\t\tif v > maxSym {\n\t\t\tmaxSym = v\n\t\t}\n\t}\n\tif maxSym == 0 {\n\t\t// All 0\n\t\treturn 0\n\t}\n\tcnt := int(slices.Max(hist[:maxSym]))\n\tif cnt == len(data) {\n\t\t// RLE\n\t\treturn 0\n\t}\n\tenc.HistogramFinished(maxSym, cnt)\n\terr := enc.normalizeCount(len(data))\n\tif err != nil {\n\t\treturn 0\n\t}\n\t_, err = enc.writeCount(nil)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn 1\n}\n\n// encode will encode the block and append the output in b.output.\n// Previous offset codes must be pushed if more blocks are expected.\nfunc (b *blockEnc) encode(org []byte, raw, rawAllLits bool) error {\n\tif len(b.sequences) == 0 {\n\t\treturn b.encodeLits(b.literals, rawAllLits)\n\t}\n\tif len(b.sequences) == 1 && len(org) > 0 && len(b.literals) <= 1 {\n\t\t// Check common RLE cases.\n\t\tseq := b.sequences[0]\n\t\tif seq.litLen == uint32(len(b.literals)) && seq.offset-3 == 1 {\n\t\t\t// Offset == 1 and 0 or 1 literals.\n\t\t\tb.encodeRLE(org[0], b.sequences[0].matchLen+zstdMinMatch+seq.litLen)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// We want some difference to at least account for the headers.\n\tsaved := b.size - len(b.literals) - (b.size >> 6)\n\tif saved < 16 {\n\t\tif org == nil {\n\t\t\treturn errIncompressible\n\t\t}\n\t\tb.popOffsets()\n\t\treturn b.encodeLits(org, rawAllLits)\n\t}\n\n\tvar bh blockHeader\n\tvar lh literalsHeader\n\tbh.setLast(b.last)\n\tbh.setType(blockTypeCompressed)\n\t// Store offset of the block header. Needed when we know the size.\n\tbhOffset := len(b.output)\n\tb.output = bh.appendTo(b.output)\n\n\tvar (\n\t\tout            []byte\n\t\treUsed, single bool\n\t\terr            error\n\t)\n\tif b.dictLitEnc != nil {\n\t\tb.litEnc.TransferCTable(b.dictLitEnc)\n\t\tb.litEnc.Reuse = huff0.ReusePolicyAllow\n\t\tb.dictLitEnc = nil\n\t}\n\tif len(b.literals) >= 1024 && !raw {\n\t\t// Use 4 Streams.\n\t\tout, reUsed, err = huff0.Compress4X(b.literals, b.litEnc)\n\t} else if len(b.literals) > 16 && !raw {\n\t\t// Use 1 stream\n\t\tsingle = true\n\t\tout, reUsed, err = huff0.Compress1X(b.literals, b.litEnc)\n\t} else {\n\t\terr = huff0.ErrIncompressible\n\t}\n\n\tif err == nil && len(out)+5 > len(b.literals) {\n\t\t// If we are close, we may still be worse or equal to raw.\n\t\tvar lh literalsHeader\n\t\tlh.setSize(len(b.literals))\n\t\tszRaw := lh.size()\n\t\tlh.setSizes(len(out), len(b.literals), single)\n\t\tszComp := lh.size()\n\t\tif len(out)+szComp >= len(b.literals)+szRaw {\n\t\t\terr = huff0.ErrIncompressible\n\t\t}\n\t}\n\tswitch err {\n\tcase huff0.ErrIncompressible:\n\t\tlh.setType(literalsBlockRaw)\n\t\tlh.setSize(len(b.literals))\n\t\tb.output = lh.appendTo(b.output)\n\t\tb.output = append(b.output, b.literals...)\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding literals RAW, length\", len(b.literals))\n\t\t}\n\tcase huff0.ErrUseRLE:\n\t\tlh.setType(literalsBlockRLE)\n\t\tlh.setSize(len(b.literals))\n\t\tb.output = lh.appendTo(b.output)\n\t\tb.output = append(b.output, b.literals[0])\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding literals RLE\")\n\t\t}\n\tcase nil:\n\t\t// Compressed litLen...\n\t\tif reUsed {\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"reused tree\")\n\t\t\t}\n\t\t\tlh.setType(literalsBlockTreeless)\n\t\t} else {\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"new tree, size:\", len(b.litEnc.OutTable))\n\t\t\t}\n\t\t\tlh.setType(literalsBlockCompressed)\n\t\t\tif debugEncoder {\n\t\t\t\t_, _, err := huff0.ReadTable(out, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlh.setSizes(len(out), len(b.literals), single)\n\t\tif debugEncoder {\n\t\t\tprintf(\"Compressed %d literals to %d bytes\", len(b.literals), len(out))\n\t\t\tprintln(\"Adding literal header:\", lh)\n\t\t}\n\t\tb.output = lh.appendTo(b.output)\n\t\tb.output = append(b.output, out...)\n\t\tb.litEnc.Reuse = huff0.ReusePolicyAllow\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding literals compressed\")\n\t\t}\n\tdefault:\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding literals ERROR:\", err)\n\t\t}\n\t\treturn err\n\t}\n\t// Sequence compression\n\n\t// Write the number of sequences\n\tswitch {\n\tcase len(b.sequences) < 128:\n\t\tb.output = append(b.output, uint8(len(b.sequences)))\n\tcase len(b.sequences) < 0x7f00: // TODO: this could be wrong\n\t\tn := len(b.sequences)\n\t\tb.output = append(b.output, 128+uint8(n>>8), uint8(n))\n\tdefault:\n\t\tn := len(b.sequences) - 0x7f00\n\t\tb.output = append(b.output, 255, uint8(n), uint8(n>>8))\n\t}\n\tif debugEncoder {\n\t\tprintln(\"Encoding\", len(b.sequences), \"sequences\")\n\t}\n\tb.genCodes()\n\tllEnc := b.coders.llEnc\n\tofEnc := b.coders.ofEnc\n\tmlEnc := b.coders.mlEnc\n\terr = llEnc.normalizeCount(len(b.sequences))\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = ofEnc.normalizeCount(len(b.sequences))\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = mlEnc.normalizeCount(len(b.sequences))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Choose the best compression mode for each type.\n\t// Will evaluate the new vs predefined and previous.\n\tchooseComp := func(cur, prev, preDef *fseEncoder) (*fseEncoder, seqCompMode) {\n\t\t// See if predefined/previous is better\n\t\thist := cur.count[:cur.symbolLen]\n\t\tnSize := cur.approxSize(hist) + cur.maxHeaderSize()\n\t\tpredefSize := preDef.approxSize(hist)\n\t\tprevSize := prev.approxSize(hist)\n\n\t\t// Add a small penalty for new encoders.\n\t\t// Don't bother with extremely small (<2 byte gains).\n\t\tnSize = nSize + (nSize+2*8*16)>>4\n\t\tswitch {\n\t\tcase predefSize <= prevSize && predefSize <= nSize || forcePreDef:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"Using predefined\", predefSize>>3, \"<=\", nSize>>3)\n\t\t\t}\n\t\t\treturn preDef, compModePredefined\n\t\tcase prevSize <= nSize:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"Using previous\", prevSize>>3, \"<=\", nSize>>3)\n\t\t\t}\n\t\t\treturn prev, compModeRepeat\n\t\tdefault:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"Using new, predef\", predefSize>>3, \". previous:\", prevSize>>3, \">\", nSize>>3, \"header max:\", cur.maxHeaderSize()>>3, \"bytes\")\n\t\t\t\tprintln(\"tl:\", cur.actualTableLog, \"symbolLen:\", cur.symbolLen, \"norm:\", cur.norm[:cur.symbolLen], \"hist\", cur.count[:cur.symbolLen])\n\t\t\t}\n\t\t\treturn cur, compModeFSE\n\t\t}\n\t}\n\n\t// Write compression mode\n\tvar mode uint8\n\tif llEnc.useRLE {\n\t\tmode |= uint8(compModeRLE) << 6\n\t\tllEnc.setRLE(b.sequences[0].llCode)\n\t\tif debugEncoder {\n\t\t\tprintln(\"llEnc.useRLE\")\n\t\t}\n\t} else {\n\t\tvar m seqCompMode\n\t\tllEnc, m = chooseComp(llEnc, b.coders.llPrev, &fsePredefEnc[tableLiteralLengths])\n\t\tmode |= uint8(m) << 6\n\t}\n\tif ofEnc.useRLE {\n\t\tmode |= uint8(compModeRLE) << 4\n\t\tofEnc.setRLE(b.sequences[0].ofCode)\n\t\tif debugEncoder {\n\t\t\tprintln(\"ofEnc.useRLE\")\n\t\t}\n\t} else {\n\t\tvar m seqCompMode\n\t\tofEnc, m = chooseComp(ofEnc, b.coders.ofPrev, &fsePredefEnc[tableOffsets])\n\t\tmode |= uint8(m) << 4\n\t}\n\n\tif mlEnc.useRLE {\n\t\tmode |= uint8(compModeRLE) << 2\n\t\tmlEnc.setRLE(b.sequences[0].mlCode)\n\t\tif debugEncoder {\n\t\t\tprintln(\"mlEnc.useRLE, code: \", b.sequences[0].mlCode, \"value\", b.sequences[0].matchLen)\n\t\t}\n\t} else {\n\t\tvar m seqCompMode\n\t\tmlEnc, m = chooseComp(mlEnc, b.coders.mlPrev, &fsePredefEnc[tableMatchLengths])\n\t\tmode |= uint8(m) << 2\n\t}\n\tb.output = append(b.output, mode)\n\tif debugEncoder {\n\t\tprintf(\"Compression modes: 0b%b\", mode)\n\t}\n\tb.output, err = llEnc.writeCount(b.output)\n\tif err != nil {\n\t\treturn err\n\t}\n\tstart := len(b.output)\n\tb.output, err = ofEnc.writeCount(b.output)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif false {\n\t\tprintln(\"block:\", b.output[start:], \"tablelog\", ofEnc.actualTableLog, \"maxcount:\", ofEnc.maxCount)\n\t\tfmt.Printf(\"selected TableLog: %d, Symbol length: %d\\n\", ofEnc.actualTableLog, ofEnc.symbolLen)\n\t\tfor i, v := range ofEnc.norm[:ofEnc.symbolLen] {\n\t\t\tfmt.Printf(\"%3d: %5d -> %4d \\n\", i, ofEnc.count[i], v)\n\t\t}\n\t}\n\tb.output, err = mlEnc.writeCount(b.output)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Maybe in block?\n\twr := &b.wr\n\twr.reset(b.output)\n\n\tvar ll, of, ml cState\n\n\t// Current sequence\n\tseq := len(b.sequences) - 1\n\ts := b.sequences[seq]\n\tllEnc.setBits(llBitsTable[:])\n\tmlEnc.setBits(mlBitsTable[:])\n\tofEnc.setBits(nil)\n\n\tllTT, ofTT, mlTT := llEnc.ct.symbolTT[:256], ofEnc.ct.symbolTT[:256], mlEnc.ct.symbolTT[:256]\n\n\t// We have 3 bounds checks here (and in the loop).\n\t// Since we are iterating backwards it is kinda hard to avoid.\n\tllB, ofB, mlB := llTT[s.llCode], ofTT[s.ofCode], mlTT[s.mlCode]\n\tll.init(wr, &llEnc.ct, llB)\n\tof.init(wr, &ofEnc.ct, ofB)\n\twr.flush32()\n\tml.init(wr, &mlEnc.ct, mlB)\n\n\t// Each of these lookups also generates a bounds check.\n\twr.addBits32NC(s.litLen, llB.outBits)\n\twr.addBits32NC(s.matchLen, mlB.outBits)\n\twr.flush32()\n\twr.addBits32NC(s.offset, ofB.outBits)\n\tif debugSequences {\n\t\tprintln(\"Encoded seq\", seq, s, \"codes:\", s.llCode, s.mlCode, s.ofCode, \"states:\", ll.state, ml.state, of.state, \"bits:\", llB, mlB, ofB)\n\t}\n\tseq--\n\t// Store sequences in reverse...\n\tfor seq >= 0 {\n\t\ts = b.sequences[seq]\n\n\t\tofB := ofTT[s.ofCode]\n\t\twr.flush32() // tablelog max is below 8 for each, so it will fill max 24 bits.\n\t\t//of.encode(ofB)\n\t\tnbBitsOut := (uint32(of.state) + ofB.deltaNbBits) >> 16\n\t\tdstState := int32(of.state>>(nbBitsOut&15)) + int32(ofB.deltaFindState)\n\t\twr.addBits16NC(of.state, uint8(nbBitsOut))\n\t\tof.state = of.stateTable[dstState]\n\n\t\t// Accumulate extra bits.\n\t\toutBits := ofB.outBits & 31\n\t\textraBits := uint64(s.offset & bitMask32[outBits])\n\t\textraBitsN := outBits\n\n\t\tmlB := mlTT[s.mlCode]\n\t\t//ml.encode(mlB)\n\t\tnbBitsOut = (uint32(ml.state) + mlB.deltaNbBits) >> 16\n\t\tdstState = int32(ml.state>>(nbBitsOut&15)) + int32(mlB.deltaFindState)\n\t\twr.addBits16NC(ml.state, uint8(nbBitsOut))\n\t\tml.state = ml.stateTable[dstState]\n\n\t\toutBits = mlB.outBits & 31\n\t\textraBits = extraBits<<outBits | uint64(s.matchLen&bitMask32[outBits])\n\t\textraBitsN += outBits\n\n\t\tllB := llTT[s.llCode]\n\t\t//ll.encode(llB)\n\t\tnbBitsOut = (uint32(ll.state) + llB.deltaNbBits) >> 16\n\t\tdstState = int32(ll.state>>(nbBitsOut&15)) + int32(llB.deltaFindState)\n\t\twr.addBits16NC(ll.state, uint8(nbBitsOut))\n\t\tll.state = ll.stateTable[dstState]\n\n\t\toutBits = llB.outBits & 31\n\t\textraBits = extraBits<<outBits | uint64(s.litLen&bitMask32[outBits])\n\t\textraBitsN += outBits\n\n\t\twr.flush32()\n\t\twr.addBits64NC(extraBits, extraBitsN)\n\n\t\tif debugSequences {\n\t\t\tprintln(\"Encoded seq\", seq, s)\n\t\t}\n\n\t\tseq--\n\t}\n\tml.flush(mlEnc.actualTableLog)\n\tof.flush(ofEnc.actualTableLog)\n\tll.flush(llEnc.actualTableLog)\n\twr.close()\n\tb.output = wr.out\n\n\t// Maybe even add a bigger margin.\n\tif len(b.output)-3-bhOffset >= b.size {\n\t\t// Discard and encode as raw block.\n\t\tb.output = b.encodeRawTo(b.output[:bhOffset], org)\n\t\tb.popOffsets()\n\t\tb.litEnc.Reuse = huff0.ReusePolicyNone\n\t\treturn nil\n\t}\n\n\t// Size is output minus block header.\n\tbh.setSize(uint32(len(b.output)-bhOffset) - 3)\n\tif debugEncoder {\n\t\tprintln(\"Rewriting block header\", bh)\n\t}\n\t_ = bh.appendTo(b.output[bhOffset:bhOffset])\n\tb.coders.setPrev(llEnc, mlEnc, ofEnc)\n\treturn nil\n}\n\nvar errIncompressible = errors.New(\"incompressible\")\n\nfunc (b *blockEnc) genCodes() {\n\tif len(b.sequences) == 0 {\n\t\t// nothing to do\n\t\treturn\n\t}\n\tif len(b.sequences) > math.MaxUint16 {\n\t\tpanic(\"can only encode up to 64K sequences\")\n\t}\n\t// No bounds checks after here:\n\tllH := b.coders.llEnc.Histogram()\n\tofH := b.coders.ofEnc.Histogram()\n\tmlH := b.coders.mlEnc.Histogram()\n\tfor i := range llH {\n\t\tllH[i] = 0\n\t}\n\tfor i := range ofH {\n\t\tofH[i] = 0\n\t}\n\tfor i := range mlH {\n\t\tmlH[i] = 0\n\t}\n\n\tvar llMax, ofMax, mlMax uint8\n\tfor i := range b.sequences {\n\t\tseq := &b.sequences[i]\n\t\tv := llCode(seq.litLen)\n\t\tseq.llCode = v\n\t\tllH[v]++\n\t\tif v > llMax {\n\t\t\tllMax = v\n\t\t}\n\n\t\tv = ofCode(seq.offset)\n\t\tseq.ofCode = v\n\t\tofH[v]++\n\t\tif v > ofMax {\n\t\t\tofMax = v\n\t\t}\n\n\t\tv = mlCode(seq.matchLen)\n\t\tseq.mlCode = v\n\t\tmlH[v]++\n\t\tif v > mlMax {\n\t\t\tmlMax = v\n\t\t\tif debugAsserts && mlMax > maxMatchLengthSymbol {\n\t\t\t\tpanic(fmt.Errorf(\"mlMax > maxMatchLengthSymbol (%d), matchlen: %d\", mlMax, seq.matchLen))\n\t\t\t}\n\t\t}\n\t}\n\tif debugAsserts && mlMax > maxMatchLengthSymbol {\n\t\tpanic(fmt.Errorf(\"mlMax > maxMatchLengthSymbol (%d)\", mlMax))\n\t}\n\tif debugAsserts && ofMax > maxOffsetBits {\n\t\tpanic(fmt.Errorf(\"ofMax > maxOffsetBits (%d)\", ofMax))\n\t}\n\tif debugAsserts && llMax > maxLiteralLengthSymbol {\n\t\tpanic(fmt.Errorf(\"llMax > maxLiteralLengthSymbol (%d)\", llMax))\n\t}\n\n\tb.coders.mlEnc.HistogramFinished(mlMax, int(slices.Max(mlH[:mlMax+1])))\n\tb.coders.ofEnc.HistogramFinished(ofMax, int(slices.Max(ofH[:ofMax+1])))\n\tb.coders.llEnc.HistogramFinished(llMax, int(slices.Max(llH[:llMax+1])))\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/blocktype_string.go",
    "content": "// Code generated by \"stringer -type=blockType,literalsBlockType,seqCompMode,tableIndex\"; DO NOT EDIT.\n\npackage zstd\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[blockTypeRaw-0]\n\t_ = x[blockTypeRLE-1]\n\t_ = x[blockTypeCompressed-2]\n\t_ = x[blockTypeReserved-3]\n}\n\nconst _blockType_name = \"blockTypeRawblockTypeRLEblockTypeCompressedblockTypeReserved\"\n\nvar _blockType_index = [...]uint8{0, 12, 24, 43, 60}\n\nfunc (i blockType) String() string {\n\tif i >= blockType(len(_blockType_index)-1) {\n\t\treturn \"blockType(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _blockType_name[_blockType_index[i]:_blockType_index[i+1]]\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[literalsBlockRaw-0]\n\t_ = x[literalsBlockRLE-1]\n\t_ = x[literalsBlockCompressed-2]\n\t_ = x[literalsBlockTreeless-3]\n}\n\nconst _literalsBlockType_name = \"literalsBlockRawliteralsBlockRLEliteralsBlockCompressedliteralsBlockTreeless\"\n\nvar _literalsBlockType_index = [...]uint8{0, 16, 32, 55, 76}\n\nfunc (i literalsBlockType) String() string {\n\tif i >= literalsBlockType(len(_literalsBlockType_index)-1) {\n\t\treturn \"literalsBlockType(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _literalsBlockType_name[_literalsBlockType_index[i]:_literalsBlockType_index[i+1]]\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[compModePredefined-0]\n\t_ = x[compModeRLE-1]\n\t_ = x[compModeFSE-2]\n\t_ = x[compModeRepeat-3]\n}\n\nconst _seqCompMode_name = \"compModePredefinedcompModeRLEcompModeFSEcompModeRepeat\"\n\nvar _seqCompMode_index = [...]uint8{0, 18, 29, 40, 54}\n\nfunc (i seqCompMode) String() string {\n\tif i >= seqCompMode(len(_seqCompMode_index)-1) {\n\t\treturn \"seqCompMode(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _seqCompMode_name[_seqCompMode_index[i]:_seqCompMode_index[i+1]]\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[tableLiteralLengths-0]\n\t_ = x[tableOffsets-1]\n\t_ = x[tableMatchLengths-2]\n}\n\nconst _tableIndex_name = \"tableLiteralLengthstableOffsetstableMatchLengths\"\n\nvar _tableIndex_index = [...]uint8{0, 19, 31, 48}\n\nfunc (i tableIndex) String() string {\n\tif i >= tableIndex(len(_tableIndex_index)-1) {\n\t\treturn \"tableIndex(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _tableIndex_name[_tableIndex_index[i]:_tableIndex_index[i+1]]\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/bytebuf.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\ntype byteBuffer interface {\n\t// Read up to 8 bytes.\n\t// Returns io.ErrUnexpectedEOF if this cannot be satisfied.\n\treadSmall(n int) ([]byte, error)\n\n\t// Read >8 bytes.\n\t// MAY use the destination slice.\n\treadBig(n int, dst []byte) ([]byte, error)\n\n\t// Read a single byte.\n\treadByte() (byte, error)\n\n\t// Skip n bytes.\n\tskipN(n int64) error\n}\n\n// in-memory buffer\ntype byteBuf []byte\n\nfunc (b *byteBuf) readSmall(n int) ([]byte, error) {\n\tif debugAsserts && n > 8 {\n\t\tpanic(fmt.Errorf(\"small read > 8 (%d). use readBig\", n))\n\t}\n\tbb := *b\n\tif len(bb) < n {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tr := bb[:n]\n\t*b = bb[n:]\n\treturn r, nil\n}\n\nfunc (b *byteBuf) readBig(n int, dst []byte) ([]byte, error) {\n\tbb := *b\n\tif len(bb) < n {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tr := bb[:n]\n\t*b = bb[n:]\n\treturn r, nil\n}\n\nfunc (b *byteBuf) readByte() (byte, error) {\n\tbb := *b\n\tif len(bb) < 1 {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t}\n\tr := bb[0]\n\t*b = bb[1:]\n\treturn r, nil\n}\n\nfunc (b *byteBuf) skipN(n int64) error {\n\tbb := *b\n\tif n < 0 {\n\t\treturn fmt.Errorf(\"negative skip (%d) requested\", n)\n\t}\n\tif int64(len(bb)) < n {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\t*b = bb[n:]\n\treturn nil\n}\n\n// wrapper around a reader.\ntype readerWrapper struct {\n\tr   io.Reader\n\ttmp [8]byte\n}\n\nfunc (r *readerWrapper) readSmall(n int) ([]byte, error) {\n\tif debugAsserts && n > 8 {\n\t\tpanic(fmt.Errorf(\"small read > 8 (%d). use readBig\", n))\n\t}\n\tn2, err := io.ReadFull(r.r, r.tmp[:n])\n\t// We only really care about the actual bytes read.\n\tif err != nil {\n\t\tif err == io.EOF {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"readSmall: got\", n2, \"want\", n, \"err\", err)\n\t\t}\n\t\treturn nil, err\n\t}\n\treturn r.tmp[:n], nil\n}\n\nfunc (r *readerWrapper) readBig(n int, dst []byte) ([]byte, error) {\n\tif cap(dst) < n {\n\t\tdst = make([]byte, n)\n\t}\n\tn2, err := io.ReadFull(r.r, dst[:n])\n\tif err == io.EOF && n > 0 {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\treturn dst[:n2], err\n}\n\nfunc (r *readerWrapper) readByte() (byte, error) {\n\tn2, err := io.ReadFull(r.r, r.tmp[:1])\n\tif err != nil {\n\t\tif err == io.EOF {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t}\n\t\treturn 0, err\n\t}\n\tif n2 != 1 {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t}\n\treturn r.tmp[0], nil\n}\n\nfunc (r *readerWrapper) skipN(n int64) error {\n\tn2, err := io.CopyN(io.Discard, r.r, n)\n\tif n2 != n {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/bytereader.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\n// byteReader provides a byte reader that reads\n// little endian values from a byte stream.\n// The input stream is manually advanced.\n// The reader performs no bounds checks.\ntype byteReader struct {\n\tb   []byte\n\toff int\n}\n\n// advance the stream b n bytes.\nfunc (b *byteReader) advance(n uint) {\n\tb.off += int(n)\n}\n\n// overread returns whether we have advanced too far.\nfunc (b *byteReader) overread() bool {\n\treturn b.off > len(b.b)\n}\n\n// Int32 returns a little endian int32 starting at current offset.\nfunc (b byteReader) Int32() int32 {\n\tb2 := b.b[b.off:]\n\tb2 = b2[:4]\n\tv3 := int32(b2[3])\n\tv2 := int32(b2[2])\n\tv1 := int32(b2[1])\n\tv0 := int32(b2[0])\n\treturn v0 | (v1 << 8) | (v2 << 16) | (v3 << 24)\n}\n\n// Uint8 returns the next byte\nfunc (b *byteReader) Uint8() uint8 {\n\tv := b.b[b.off]\n\treturn v\n}\n\n// Uint32 returns a little endian uint32 starting at current offset.\nfunc (b byteReader) Uint32() uint32 {\n\tif r := b.remain(); r < 4 {\n\t\t// Very rare\n\t\tv := uint32(0)\n\t\tfor i := 1; i <= r; i++ {\n\t\t\tv = (v << 8) | uint32(b.b[len(b.b)-i])\n\t\t}\n\t\treturn v\n\t}\n\tb2 := b.b[b.off:]\n\tb2 = b2[:4]\n\tv3 := uint32(b2[3])\n\tv2 := uint32(b2[2])\n\tv1 := uint32(b2[1])\n\tv0 := uint32(b2[0])\n\treturn v0 | (v1 << 8) | (v2 << 16) | (v3 << 24)\n}\n\n// Uint32NC returns a little endian uint32 starting at current offset.\n// The caller must be sure if there are at least 4 bytes left.\nfunc (b byteReader) Uint32NC() uint32 {\n\tb2 := b.b[b.off:]\n\tb2 = b2[:4]\n\tv3 := uint32(b2[3])\n\tv2 := uint32(b2[2])\n\tv1 := uint32(b2[1])\n\tv0 := uint32(b2[0])\n\treturn v0 | (v1 << 8) | (v2 << 16) | (v3 << 24)\n}\n\n// unread returns the unread portion of the input.\nfunc (b byteReader) unread() []byte {\n\treturn b.b[b.off:]\n}\n\n// remain will return the number of bytes remaining.\nfunc (b byteReader) remain() int {\n\treturn len(b.b) - b.off\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/decodeheader.go",
    "content": "// Copyright 2020+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n\npackage zstd\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\n// HeaderMaxSize is the maximum size of a Frame and Block Header.\n// If less is sent to Header.Decode it *may* still contain enough information.\nconst HeaderMaxSize = 14 + 3\n\n// Header contains information about the first frame and block within that.\ntype Header struct {\n\t// SingleSegment specifies whether the data is to be decompressed into a\n\t// single contiguous memory segment.\n\t// It implies that WindowSize is invalid and that FrameContentSize is valid.\n\tSingleSegment bool\n\n\t// WindowSize is the window of data to keep while decoding.\n\t// Will only be set if SingleSegment is false.\n\tWindowSize uint64\n\n\t// Dictionary ID.\n\t// If 0, no dictionary.\n\tDictionaryID uint32\n\n\t// HasFCS specifies whether FrameContentSize has a valid value.\n\tHasFCS bool\n\n\t// FrameContentSize is the expected uncompressed size of the entire frame.\n\tFrameContentSize uint64\n\n\t// Skippable will be true if the frame is meant to be skipped.\n\t// This implies that FirstBlock.OK is false.\n\tSkippable bool\n\n\t// SkippableID is the user-specific ID for the skippable frame.\n\t// Valid values are between 0 to 15, inclusive.\n\tSkippableID int\n\n\t// SkippableSize is the length of the user data to skip following\n\t// the header.\n\tSkippableSize uint32\n\n\t// HeaderSize is the raw size of the frame header.\n\t//\n\t// For normal frames, it includes the size of the magic number and\n\t// the size of the header (per section 3.1.1.1).\n\t// It does not include the size for any data blocks (section 3.1.1.2) nor\n\t// the size for the trailing content checksum.\n\t//\n\t// For skippable frames, this counts the size of the magic number\n\t// along with the size of the size field of the payload.\n\t// It does not include the size of the skippable payload itself.\n\t// The total frame size is the HeaderSize plus the SkippableSize.\n\tHeaderSize int\n\n\t// First block information.\n\tFirstBlock struct {\n\t\t// OK will be set if first block could be decoded.\n\t\tOK bool\n\n\t\t// Is this the last block of a frame?\n\t\tLast bool\n\n\t\t// Is the data compressed?\n\t\t// If true CompressedSize will be populated.\n\t\t// Unfortunately DecompressedSize cannot be determined\n\t\t// without decoding the blocks.\n\t\tCompressed bool\n\n\t\t// DecompressedSize is the expected decompressed size of the block.\n\t\t// Will be 0 if it cannot be determined.\n\t\tDecompressedSize int\n\n\t\t// CompressedSize of the data in the block.\n\t\t// Does not include the block header.\n\t\t// Will be equal to DecompressedSize if not Compressed.\n\t\tCompressedSize int\n\t}\n\n\t// If set there is a checksum present for the block content.\n\t// The checksum field at the end is always 4 bytes long.\n\tHasCheckSum bool\n}\n\n// Decode the header from the beginning of the stream.\n// This will decode the frame header and the first block header if enough bytes are provided.\n// It is recommended to provide at least HeaderMaxSize bytes.\n// If the frame header cannot be read an error will be returned.\n// If there isn't enough input, io.ErrUnexpectedEOF is returned.\n// The FirstBlock.OK will indicate if enough information was available to decode the first block header.\nfunc (h *Header) Decode(in []byte) error {\n\t_, err := h.DecodeAndStrip(in)\n\treturn err\n}\n\n// DecodeAndStrip will decode the header from the beginning of the stream\n// and on success return the remaining bytes.\n// This will decode the frame header and the first block header if enough bytes are provided.\n// It is recommended to provide at least HeaderMaxSize bytes.\n// If the frame header cannot be read an error will be returned.\n// If there isn't enough input, io.ErrUnexpectedEOF is returned.\n// The FirstBlock.OK will indicate if enough information was available to decode the first block header.\nfunc (h *Header) DecodeAndStrip(in []byte) (remain []byte, err error) {\n\t*h = Header{}\n\tif len(in) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\th.HeaderSize += 4\n\tb, in := in[:4], in[4:]\n\tif string(b) != frameMagic {\n\t\tif string(b[1:4]) != skippableFrameMagic || b[0]&0xf0 != 0x50 {\n\t\t\treturn nil, ErrMagicMismatch\n\t\t}\n\t\tif len(in) < 4 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\th.HeaderSize += 4\n\t\th.Skippable = true\n\t\th.SkippableID = int(b[0] & 0xf)\n\t\th.SkippableSize = binary.LittleEndian.Uint32(in)\n\t\treturn in[4:], nil\n\t}\n\n\t// Read Window_Descriptor\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor\n\tif len(in) < 1 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tfhd, in := in[0], in[1:]\n\th.HeaderSize++\n\th.SingleSegment = fhd&(1<<5) != 0\n\th.HasCheckSum = fhd&(1<<2) != 0\n\tif fhd&(1<<3) != 0 {\n\t\treturn nil, errors.New(\"reserved bit set on frame header\")\n\t}\n\n\tif !h.SingleSegment {\n\t\tif len(in) < 1 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tvar wd byte\n\t\twd, in = in[0], in[1:]\n\t\th.HeaderSize++\n\t\twindowLog := 10 + (wd >> 3)\n\t\twindowBase := uint64(1) << windowLog\n\t\twindowAdd := (windowBase / 8) * uint64(wd&0x7)\n\t\th.WindowSize = windowBase + windowAdd\n\t}\n\n\t// Read Dictionary_ID\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id\n\tif size := fhd & 3; size != 0 {\n\t\tif size == 3 {\n\t\t\tsize = 4\n\t\t}\n\t\tif len(in) < int(size) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb, in = in[:size], in[size:]\n\t\th.HeaderSize += int(size)\n\t\tswitch len(b) {\n\t\tcase 1:\n\t\t\th.DictionaryID = uint32(b[0])\n\t\tcase 2:\n\t\t\th.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8)\n\t\tcase 4:\n\t\t\th.DictionaryID = uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)\n\t\t}\n\t}\n\n\t// Read Frame_Content_Size\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame_content_size\n\tvar fcsSize int\n\tv := fhd >> 6\n\tswitch v {\n\tcase 0:\n\t\tif h.SingleSegment {\n\t\t\tfcsSize = 1\n\t\t}\n\tdefault:\n\t\tfcsSize = 1 << v\n\t}\n\n\tif fcsSize > 0 {\n\t\th.HasFCS = true\n\t\tif len(in) < fcsSize {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb, in = in[:fcsSize], in[fcsSize:]\n\t\th.HeaderSize += int(fcsSize)\n\t\tswitch len(b) {\n\t\tcase 1:\n\t\t\th.FrameContentSize = uint64(b[0])\n\t\tcase 2:\n\t\t\t// When FCS_Field_Size is 2, the offset of 256 is added.\n\t\t\th.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256\n\t\tcase 4:\n\t\t\th.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24)\n\t\tcase 8:\n\t\t\td1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)\n\t\t\td2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24)\n\t\t\th.FrameContentSize = uint64(d1) | (uint64(d2) << 32)\n\t\t}\n\t}\n\n\t// Frame Header done, we will not fail from now on.\n\tif len(in) < 3 {\n\t\treturn in, nil\n\t}\n\ttmp := in[:3]\n\tbh := uint32(tmp[0]) | (uint32(tmp[1]) << 8) | (uint32(tmp[2]) << 16)\n\th.FirstBlock.Last = bh&1 != 0\n\tblockType := blockType((bh >> 1) & 3)\n\t// find size.\n\tcSize := int(bh >> 3)\n\tswitch blockType {\n\tcase blockTypeReserved:\n\t\treturn in, nil\n\tcase blockTypeRLE:\n\t\th.FirstBlock.Compressed = true\n\t\th.FirstBlock.DecompressedSize = cSize\n\t\th.FirstBlock.CompressedSize = 1\n\tcase blockTypeCompressed:\n\t\th.FirstBlock.Compressed = true\n\t\th.FirstBlock.CompressedSize = cSize\n\tcase blockTypeRaw:\n\t\th.FirstBlock.DecompressedSize = cSize\n\t\th.FirstBlock.CompressedSize = cSize\n\tdefault:\n\t\tpanic(\"Invalid block type\")\n\t}\n\n\th.FirstBlock.OK = true\n\treturn in, nil\n}\n\n// AppendTo will append the encoded header to the dst slice.\n// There is no error checking performed on the header values.\nfunc (h *Header) AppendTo(dst []byte) ([]byte, error) {\n\tif h.Skippable {\n\t\tmagic := [4]byte{0x50, 0x2a, 0x4d, 0x18}\n\t\tmagic[0] |= byte(h.SkippableID & 0xf)\n\t\tdst = append(dst, magic[:]...)\n\t\tf := h.SkippableSize\n\t\treturn append(dst, uint8(f), uint8(f>>8), uint8(f>>16), uint8(f>>24)), nil\n\t}\n\tf := frameHeader{\n\t\tContentSize:   h.FrameContentSize,\n\t\tWindowSize:    uint32(h.WindowSize),\n\t\tSingleSegment: h.SingleSegment,\n\t\tChecksum:      h.HasCheckSum,\n\t\tDictID:        h.DictionaryID,\n\t}\n\treturn f.appendTo(dst), nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/decoder.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"context\"\n\t\"encoding/binary\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/klauspost/compress/zstd/internal/xxhash\"\n)\n\n// Decoder provides decoding of zstandard streams.\n// The decoder has been designed to operate without allocations after a warmup.\n// This means that you should store the decoder for best performance.\n// To re-use a stream decoder, use the Reset(r io.Reader) error to switch to another stream.\n// A decoder can safely be re-used even if the previous stream failed.\n// To release the resources, you must call the Close() function on a decoder.\ntype Decoder struct {\n\to decoderOptions\n\n\t// Unreferenced decoders, ready for use.\n\tdecoders chan *blockDec\n\n\t// Current read position used for Reader functionality.\n\tcurrent decoderState\n\n\t// sync stream decoding\n\tsyncStream struct {\n\t\tdecodedFrame uint64\n\t\tbr           readerWrapper\n\t\tenabled      bool\n\t\tinFrame      bool\n\t\tdstBuf       []byte\n\t}\n\n\tframe *frameDec\n\n\t// streamWg is the waitgroup for all streams\n\tstreamWg sync.WaitGroup\n}\n\n// decoderState is used for maintaining state when the decoder\n// is used for streaming.\ntype decoderState struct {\n\t// current block being written to stream.\n\tdecodeOutput\n\n\t// output in order to be written to stream.\n\toutput chan decodeOutput\n\n\t// cancel remaining output.\n\tcancel context.CancelFunc\n\n\t// crc of current frame\n\tcrc *xxhash.Digest\n\n\tflushed bool\n}\n\nvar (\n\t// Check the interfaces we want to support.\n\t_ = io.WriterTo(&Decoder{})\n\t_ = io.Reader(&Decoder{})\n)\n\n// NewReader creates a new decoder.\n// A nil Reader can be provided in which case Reset can be used to start a decode.\n//\n// A Decoder can be used in two modes:\n//\n// 1) As a stream, or\n// 2) For stateless decoding using DecodeAll.\n//\n// Only a single stream can be decoded concurrently, but the same decoder\n// can run multiple concurrent stateless decodes. It is even possible to\n// use stateless decodes while a stream is being decoded.\n//\n// The Reset function can be used to initiate a new stream, which will considerably\n// reduce the allocations normally caused by NewReader.\nfunc NewReader(r io.Reader, opts ...DOption) (*Decoder, error) {\n\tinitPredefined()\n\tvar d Decoder\n\td.o.setDefault()\n\tfor _, o := range opts {\n\t\terr := o(&d.o)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\td.current.crc = xxhash.New()\n\td.current.flushed = true\n\n\tif r == nil {\n\t\td.current.err = ErrDecoderNilInput\n\t}\n\n\t// Initialize dict map if needed.\n\tif d.o.dicts == nil {\n\t\td.o.dicts = make(map[uint32]*dict)\n\t}\n\n\t// Create decoders\n\td.decoders = make(chan *blockDec, d.o.concurrent)\n\tfor i := 0; i < d.o.concurrent; i++ {\n\t\tdec := newBlockDec(d.o.lowMem)\n\t\tdec.localFrame = newFrameDec(d.o)\n\t\td.decoders <- dec\n\t}\n\n\tif r == nil {\n\t\treturn &d, nil\n\t}\n\treturn &d, d.Reset(r)\n}\n\n// Read bytes from the decompressed stream into p.\n// Returns the number of bytes read and any error that occurred.\n// When the stream is done, io.EOF will be returned.\nfunc (d *Decoder) Read(p []byte) (int, error) {\n\tvar n int\n\tfor {\n\t\tif len(d.current.b) > 0 {\n\t\t\tfilled := copy(p, d.current.b)\n\t\t\tp = p[filled:]\n\t\t\td.current.b = d.current.b[filled:]\n\t\t\tn += filled\n\t\t}\n\t\tif len(p) == 0 {\n\t\t\tbreak\n\t\t}\n\t\tif len(d.current.b) == 0 {\n\t\t\t// We have an error and no more data\n\t\t\tif d.current.err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif !d.nextBlock(n == 0) {\n\t\t\t\treturn n, d.current.err\n\t\t\t}\n\t\t}\n\t}\n\tif len(d.current.b) > 0 {\n\t\tif debugDecoder {\n\t\t\tprintln(\"returning\", n, \"still bytes left:\", len(d.current.b))\n\t\t}\n\t\t// Only return error at end of block\n\t\treturn n, nil\n\t}\n\tif d.current.err != nil {\n\t\td.drainOutput()\n\t}\n\tif debugDecoder {\n\t\tprintln(\"returning\", n, d.current.err, len(d.decoders))\n\t}\n\treturn n, d.current.err\n}\n\n// Reset will reset the decoder the supplied stream after the current has finished processing.\n// Note that this functionality cannot be used after Close has been called.\n// Reset can be called with a nil reader to release references to the previous reader.\n// After being called with a nil reader, no other operations than Reset or DecodeAll or Close\n// should be used.\nfunc (d *Decoder) Reset(r io.Reader) error {\n\tif d.current.err == ErrDecoderClosed {\n\t\treturn d.current.err\n\t}\n\n\td.drainOutput()\n\n\td.syncStream.br.r = nil\n\tif r == nil {\n\t\td.current.err = ErrDecoderNilInput\n\t\tif len(d.current.b) > 0 {\n\t\t\td.current.b = d.current.b[:0]\n\t\t}\n\t\td.current.flushed = true\n\t\treturn nil\n\t}\n\n\t// If bytes buffer and < 5MB, do sync decoding anyway.\n\tif bb, ok := r.(byter); ok && bb.Len() < d.o.decodeBufsBelow && !d.o.limitToCap {\n\t\tbb2 := bb\n\t\tif debugDecoder {\n\t\t\tprintln(\"*bytes.Buffer detected, doing sync decode, len:\", bb.Len())\n\t\t}\n\t\tb := bb2.Bytes()\n\t\tvar dst []byte\n\t\tif cap(d.syncStream.dstBuf) > 0 {\n\t\t\tdst = d.syncStream.dstBuf[:0]\n\t\t}\n\n\t\tdst, err := d.DecodeAll(b, dst)\n\t\tif err == nil {\n\t\t\terr = io.EOF\n\t\t}\n\t\t// Save output buffer\n\t\td.syncStream.dstBuf = dst\n\t\td.current.b = dst\n\t\td.current.err = err\n\t\td.current.flushed = true\n\t\tif debugDecoder {\n\t\t\tprintln(\"sync decode to\", len(dst), \"bytes, err:\", err)\n\t\t}\n\t\treturn nil\n\t}\n\t// Remove current block.\n\td.stashDecoder()\n\td.current.decodeOutput = decodeOutput{}\n\td.current.err = nil\n\td.current.flushed = false\n\td.current.d = nil\n\td.syncStream.dstBuf = nil\n\n\t// Ensure no-one else is still running...\n\td.streamWg.Wait()\n\tif d.frame == nil {\n\t\td.frame = newFrameDec(d.o)\n\t}\n\n\tif d.o.concurrent == 1 {\n\t\treturn d.startSyncDecoder(r)\n\t}\n\n\td.current.output = make(chan decodeOutput, d.o.concurrent)\n\tctx, cancel := context.WithCancel(context.Background())\n\td.current.cancel = cancel\n\td.streamWg.Add(1)\n\tgo d.startStreamDecoder(ctx, r, d.current.output)\n\n\treturn nil\n}\n\n// ResetWithOptions will reset the decoder and apply the given options\n// for the next stream or DecodeAll operation.\n// Options are applied on top of the existing options.\n// Some options cannot be changed on reset and will return an error.\nfunc (d *Decoder) ResetWithOptions(r io.Reader, opts ...DOption) error {\n\td.o.resetOpt = true\n\tdefer func() { d.o.resetOpt = false }()\n\tfor _, o := range opts {\n\t\tif err := o(&d.o); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn d.Reset(r)\n}\n\n// drainOutput will drain the output until errEndOfStream is sent.\nfunc (d *Decoder) drainOutput() {\n\tif d.current.cancel != nil {\n\t\tif debugDecoder {\n\t\t\tprintln(\"cancelling current\")\n\t\t}\n\t\td.current.cancel()\n\t\td.current.cancel = nil\n\t}\n\tif d.current.d != nil {\n\t\tif debugDecoder {\n\t\t\tprintf(\"re-adding current decoder %p, decoders: %d\", d.current.d, len(d.decoders))\n\t\t}\n\t\td.decoders <- d.current.d\n\t\td.current.d = nil\n\t\td.current.b = nil\n\t}\n\tif d.current.output == nil || d.current.flushed {\n\t\tprintln(\"current already flushed\")\n\t\treturn\n\t}\n\tfor v := range d.current.output {\n\t\tif v.d != nil {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"re-adding decoder %p\", v.d)\n\t\t\t}\n\t\t\td.decoders <- v.d\n\t\t}\n\t}\n\td.current.output = nil\n\td.current.flushed = true\n}\n\n// WriteTo writes data to w until there's no more data to write or when an error occurs.\n// The return value n is the number of bytes written.\n// Any error encountered during the write is also returned.\nfunc (d *Decoder) WriteTo(w io.Writer) (int64, error) {\n\tvar n int64\n\tfor {\n\t\tif len(d.current.b) > 0 {\n\t\t\tn2, err2 := w.Write(d.current.b)\n\t\t\tn += int64(n2)\n\t\t\tif err2 != nil && (d.current.err == nil || d.current.err == io.EOF) {\n\t\t\t\td.current.err = err2\n\t\t\t} else if n2 != len(d.current.b) {\n\t\t\t\td.current.err = io.ErrShortWrite\n\t\t\t}\n\t\t}\n\t\tif d.current.err != nil {\n\t\t\tbreak\n\t\t}\n\t\td.nextBlock(true)\n\t}\n\terr := d.current.err\n\tif err != nil {\n\t\td.drainOutput()\n\t}\n\tif err == io.EOF {\n\t\terr = nil\n\t}\n\treturn n, err\n}\n\n// DecodeAll allows stateless decoding of a blob of bytes.\n// Output will be appended to dst, so if the destination size is known\n// you can pre-allocate the destination slice to avoid allocations.\n// DecodeAll can be used concurrently.\n// The Decoder concurrency limits will be respected.\nfunc (d *Decoder) DecodeAll(input, dst []byte) ([]byte, error) {\n\tif d.decoders == nil {\n\t\treturn dst, ErrDecoderClosed\n\t}\n\n\t// Grab a block decoder and frame decoder.\n\tblock := <-d.decoders\n\tframe := block.localFrame\n\tinitialSize := len(dst)\n\tdefer func() {\n\t\tif debugDecoder {\n\t\t\tprintf(\"re-adding decoder: %p\", block)\n\t\t}\n\t\tframe.rawInput = nil\n\t\tframe.bBuf = nil\n\t\tif frame.history.decoders.br != nil {\n\t\t\tframe.history.decoders.br.in = nil\n\t\t\tframe.history.decoders.br.cursor = 0\n\t\t}\n\t\td.decoders <- block\n\t}()\n\tframe.bBuf = input\n\n\tfor {\n\t\tframe.history.reset()\n\t\terr := frame.reset(&frame.bBuf)\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"frame reset return EOF\")\n\t\t\t\t}\n\t\t\t\treturn dst, nil\n\t\t\t}\n\t\t\treturn dst, err\n\t\t}\n\t\tif err = d.setDict(frame); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif frame.WindowSize > d.o.maxWindowSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"window size exceeded:\", frame.WindowSize, \">\", d.o.maxWindowSize)\n\t\t\t}\n\t\t\treturn dst, ErrWindowSizeExceeded\n\t\t}\n\t\tif frame.FrameContentSize != fcsUnknown {\n\t\t\tif frame.FrameContentSize > d.o.maxDecodedSize-uint64(len(dst)-initialSize) {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"decoder size exceeded; fcs:\", frame.FrameContentSize, \"> mcs:\", d.o.maxDecodedSize-uint64(len(dst)-initialSize), \"len:\", len(dst))\n\t\t\t\t}\n\t\t\t\treturn dst, ErrDecoderSizeExceeded\n\t\t\t}\n\t\t\tif d.o.limitToCap && frame.FrameContentSize > uint64(cap(dst)-len(dst)) {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"decoder size exceeded; fcs:\", frame.FrameContentSize, \"> (cap-len)\", cap(dst)-len(dst))\n\t\t\t\t}\n\t\t\t\treturn dst, ErrDecoderSizeExceeded\n\t\t\t}\n\t\t\tif cap(dst)-len(dst) < int(frame.FrameContentSize) {\n\t\t\t\tdst2 := make([]byte, len(dst), len(dst)+int(frame.FrameContentSize)+compressedBlockOverAlloc)\n\t\t\t\tcopy(dst2, dst)\n\t\t\t\tdst = dst2\n\t\t\t}\n\t\t}\n\n\t\tif cap(dst) == 0 && !d.o.limitToCap {\n\t\t\t// Allocate len(input) * 2 by default if nothing is provided\n\t\t\t// and we didn't get frame content size.\n\t\t\tsize := min(\n\t\t\t\t// Cap to 1 MB.\n\t\t\t\tlen(input)*2, 1<<20)\n\t\t\tif uint64(size) > d.o.maxDecodedSize {\n\t\t\t\tsize = int(d.o.maxDecodedSize)\n\t\t\t}\n\t\t\tdst = make([]byte, 0, size)\n\t\t}\n\n\t\tdst, err = frame.runDecoder(dst, block)\n\t\tif err != nil {\n\t\t\treturn dst, err\n\t\t}\n\t\tif uint64(len(dst)-initialSize) > d.o.maxDecodedSize {\n\t\t\treturn dst, ErrDecoderSizeExceeded\n\t\t}\n\t\tif len(frame.bBuf) == 0 {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"frame dbuf empty\")\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\treturn dst, nil\n}\n\n// nextBlock returns the next block.\n// If an error occurs d.err will be set.\n// Optionally the function can block for new output.\n// If non-blocking mode is used the returned boolean will be false\n// if no data was available without blocking.\nfunc (d *Decoder) nextBlock(blocking bool) (ok bool) {\n\tif d.current.err != nil {\n\t\t// Keep error state.\n\t\treturn false\n\t}\n\td.current.b = d.current.b[:0]\n\n\t// SYNC:\n\tif d.syncStream.enabled {\n\t\tif !blocking {\n\t\t\treturn false\n\t\t}\n\t\tok = d.nextBlockSync()\n\t\tif !ok {\n\t\t\td.stashDecoder()\n\t\t}\n\t\treturn ok\n\t}\n\n\t//ASYNC:\n\td.stashDecoder()\n\tif blocking {\n\t\td.current.decodeOutput, ok = <-d.current.output\n\t} else {\n\t\tselect {\n\t\tcase d.current.decodeOutput, ok = <-d.current.output:\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\tif !ok {\n\t\t// This should not happen, so signal error state...\n\t\td.current.err = io.ErrUnexpectedEOF\n\t\treturn false\n\t}\n\tnext := d.current.decodeOutput\n\tif next.d != nil && next.d.async.newHist != nil {\n\t\td.current.crc.Reset()\n\t}\n\tif debugDecoder {\n\t\tvar tmp [4]byte\n\t\tbinary.LittleEndian.PutUint32(tmp[:], uint32(xxhash.Sum64(next.b)))\n\t\tprintln(\"got\", len(d.current.b), \"bytes, error:\", d.current.err, \"data crc:\", tmp)\n\t}\n\n\tif d.o.ignoreChecksum {\n\t\treturn true\n\t}\n\n\tif len(next.b) > 0 {\n\t\td.current.crc.Write(next.b)\n\t}\n\tif next.err == nil && next.d != nil && next.d.hasCRC {\n\t\tgot := uint32(d.current.crc.Sum64())\n\t\tif got != next.d.checkCRC {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"CRC Check Failed: %08x (got) != %08x (on stream)\\n\", got, next.d.checkCRC)\n\t\t\t}\n\t\t\td.current.err = ErrCRCMismatch\n\t\t} else {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"CRC ok %08x\\n\", got)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc (d *Decoder) nextBlockSync() (ok bool) {\n\tif d.current.d == nil {\n\t\td.current.d = <-d.decoders\n\t}\n\tfor len(d.current.b) == 0 {\n\t\tif !d.syncStream.inFrame {\n\t\t\td.frame.history.reset()\n\t\t\td.current.err = d.frame.reset(&d.syncStream.br)\n\t\t\tif d.current.err == nil {\n\t\t\t\td.current.err = d.setDict(d.frame)\n\t\t\t}\n\t\t\tif d.current.err != nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif d.frame.WindowSize > d.o.maxDecodedSize || d.frame.WindowSize > d.o.maxWindowSize {\n\t\t\t\td.current.err = ErrDecoderSizeExceeded\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\td.syncStream.decodedFrame = 0\n\t\t\td.syncStream.inFrame = true\n\t\t}\n\t\td.current.err = d.frame.next(d.current.d)\n\t\tif d.current.err != nil {\n\t\t\treturn false\n\t\t}\n\t\td.frame.history.ensureBlock()\n\t\tif debugDecoder {\n\t\t\tprintln(\"History trimmed:\", len(d.frame.history.b), \"decoded already:\", d.syncStream.decodedFrame)\n\t\t}\n\t\thistBefore := len(d.frame.history.b)\n\t\td.current.err = d.current.d.decodeBuf(&d.frame.history)\n\n\t\tif d.current.err != nil {\n\t\t\tprintln(\"error after:\", d.current.err)\n\t\t\treturn false\n\t\t}\n\t\td.current.b = d.frame.history.b[histBefore:]\n\t\tif debugDecoder {\n\t\t\tprintln(\"history after:\", len(d.frame.history.b))\n\t\t}\n\n\t\t// Check frame size (before CRC)\n\t\td.syncStream.decodedFrame += uint64(len(d.current.b))\n\t\tif d.syncStream.decodedFrame > d.frame.FrameContentSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"DecodedFrame (%d) > FrameContentSize (%d)\\n\", d.syncStream.decodedFrame, d.frame.FrameContentSize)\n\t\t\t}\n\t\t\td.current.err = ErrFrameSizeExceeded\n\t\t\treturn false\n\t\t}\n\n\t\t// Check FCS\n\t\tif d.current.d.Last && d.frame.FrameContentSize != fcsUnknown && d.syncStream.decodedFrame != d.frame.FrameContentSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"DecodedFrame (%d) != FrameContentSize (%d)\\n\", d.syncStream.decodedFrame, d.frame.FrameContentSize)\n\t\t\t}\n\t\t\td.current.err = ErrFrameSizeMismatch\n\t\t\treturn false\n\t\t}\n\n\t\t// Update/Check CRC\n\t\tif d.frame.HasCheckSum {\n\t\t\tif !d.o.ignoreChecksum {\n\t\t\t\td.frame.crc.Write(d.current.b)\n\t\t\t}\n\t\t\tif d.current.d.Last {\n\t\t\t\tif !d.o.ignoreChecksum {\n\t\t\t\t\td.current.err = d.frame.checkCRC()\n\t\t\t\t} else {\n\t\t\t\t\td.current.err = d.frame.consumeCRC()\n\t\t\t\t}\n\t\t\t\tif d.current.err != nil {\n\t\t\t\t\tprintln(\"CRC error:\", d.current.err)\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.syncStream.inFrame = !d.current.d.Last\n\t}\n\treturn true\n}\n\nfunc (d *Decoder) stashDecoder() {\n\tif d.current.d != nil {\n\t\tif debugDecoder {\n\t\t\tprintf(\"re-adding current decoder %p\", d.current.d)\n\t\t}\n\t\td.decoders <- d.current.d\n\t\td.current.d = nil\n\t}\n}\n\n// Close will release all resources.\n// It is NOT possible to reuse the decoder after this.\nfunc (d *Decoder) Close() {\n\tif d.current.err == ErrDecoderClosed {\n\t\treturn\n\t}\n\td.drainOutput()\n\tif d.current.cancel != nil {\n\t\td.current.cancel()\n\t\td.streamWg.Wait()\n\t\td.current.cancel = nil\n\t}\n\tif d.decoders != nil {\n\t\tclose(d.decoders)\n\t\tfor dec := range d.decoders {\n\t\t\tdec.Close()\n\t\t}\n\t\td.decoders = nil\n\t}\n\tif d.current.d != nil {\n\t\td.current.d.Close()\n\t\td.current.d = nil\n\t}\n\td.current.err = ErrDecoderClosed\n}\n\n// IOReadCloser returns the decoder as an io.ReadCloser for convenience.\n// Any changes to the decoder will be reflected, so the returned ReadCloser\n// can be reused along with the decoder.\n// io.WriterTo is also supported by the returned ReadCloser.\nfunc (d *Decoder) IOReadCloser() io.ReadCloser {\n\treturn closeWrapper{d: d}\n}\n\n// closeWrapper wraps a function call as a closer.\ntype closeWrapper struct {\n\td *Decoder\n}\n\n// WriteTo forwards WriteTo calls to the decoder.\nfunc (c closeWrapper) WriteTo(w io.Writer) (n int64, err error) {\n\treturn c.d.WriteTo(w)\n}\n\n// Read forwards read calls to the decoder.\nfunc (c closeWrapper) Read(p []byte) (n int, err error) {\n\treturn c.d.Read(p)\n}\n\n// Close closes the decoder.\nfunc (c closeWrapper) Close() error {\n\tc.d.Close()\n\treturn nil\n}\n\ntype decodeOutput struct {\n\td   *blockDec\n\tb   []byte\n\terr error\n}\n\nfunc (d *Decoder) startSyncDecoder(r io.Reader) error {\n\td.frame.history.reset()\n\td.syncStream.br = readerWrapper{r: r}\n\td.syncStream.inFrame = false\n\td.syncStream.enabled = true\n\td.syncStream.decodedFrame = 0\n\treturn nil\n}\n\n// Create Decoder:\n// ASYNC:\n// Spawn 3 go routines.\n// 0: Read frames and decode block literals.\n// 1: Decode sequences.\n// 2: Execute sequences, send to output.\nfunc (d *Decoder) startStreamDecoder(ctx context.Context, r io.Reader, output chan decodeOutput) {\n\tdefer d.streamWg.Done()\n\tbr := readerWrapper{r: r}\n\n\tvar seqDecode = make(chan *blockDec, d.o.concurrent)\n\tvar seqExecute = make(chan *blockDec, d.o.concurrent)\n\n\t// Async 1: Decode sequences...\n\tgo func() {\n\t\tvar hist history\n\t\tvar hasErr bool\n\n\t\tfor block := range seqDecode {\n\t\t\tif hasErr {\n\t\t\t\tif block != nil {\n\t\t\t\t\tseqExecute <- block\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif block.async.newHist != nil {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"Async 1: new history, recent:\", block.async.newHist.recentOffsets)\n\t\t\t\t}\n\t\t\t\thist.reset()\n\t\t\t\thist.decoders = block.async.newHist.decoders\n\t\t\t\thist.recentOffsets = block.async.newHist.recentOffsets\n\t\t\t\thist.windowSize = block.async.newHist.windowSize\n\t\t\t\tif block.async.newHist.dict != nil {\n\t\t\t\t\thist.setDict(block.async.newHist.dict)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif block.err != nil || block.Type != blockTypeCompressed {\n\t\t\t\thasErr = block.err != nil\n\t\t\t\tseqExecute <- block\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\thist.decoders.literals = block.async.literals\n\t\t\tblock.err = block.prepareSequences(block.async.seqData, &hist)\n\t\t\tif debugDecoder && block.err != nil {\n\t\t\t\tprintln(\"prepareSequences returned:\", block.err)\n\t\t\t}\n\t\t\thasErr = block.err != nil\n\t\t\tif block.err == nil {\n\t\t\t\tblock.err = block.decodeSequences(&hist)\n\t\t\t\tif debugDecoder && block.err != nil {\n\t\t\t\t\tprintln(\"decodeSequences returned:\", block.err)\n\t\t\t\t}\n\t\t\t\thasErr = block.err != nil\n\t\t\t\t//\t\t\t\tblock.async.sequence = hist.decoders.seq[:hist.decoders.nSeqs]\n\t\t\t\tblock.async.seqSize = hist.decoders.seqSize\n\t\t\t}\n\t\t\tseqExecute <- block\n\t\t}\n\t\tclose(seqExecute)\n\t\thist.reset()\n\t}()\n\n\tvar wg sync.WaitGroup\n\twg.Add(1)\n\n\t// Async 3: Execute sequences...\n\tframeHistCache := d.frame.history.b\n\tgo func() {\n\t\tvar hist history\n\t\tvar decodedFrame uint64\n\t\tvar fcs uint64\n\t\tvar hasErr bool\n\t\tfor block := range seqExecute {\n\t\t\tout := decodeOutput{err: block.err, d: block}\n\t\t\tif block.err != nil || hasErr {\n\t\t\t\thasErr = true\n\t\t\t\toutput <- out\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif block.async.newHist != nil {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"Async 2: new history\")\n\t\t\t\t}\n\t\t\t\thist.reset()\n\t\t\t\thist.windowSize = block.async.newHist.windowSize\n\t\t\t\thist.allocFrameBuffer = block.async.newHist.allocFrameBuffer\n\t\t\t\tif block.async.newHist.dict != nil {\n\t\t\t\t\thist.setDict(block.async.newHist.dict)\n\t\t\t\t}\n\n\t\t\t\tif cap(hist.b) < hist.allocFrameBuffer {\n\t\t\t\t\tif cap(frameHistCache) >= hist.allocFrameBuffer {\n\t\t\t\t\t\thist.b = frameHistCache\n\t\t\t\t\t} else {\n\t\t\t\t\t\thist.b = make([]byte, 0, hist.allocFrameBuffer)\n\t\t\t\t\t\tprintln(\"Alloc history sized\", hist.allocFrameBuffer)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thist.b = hist.b[:0]\n\t\t\t\tfcs = block.async.fcs\n\t\t\t\tdecodedFrame = 0\n\t\t\t}\n\t\t\tdo := decodeOutput{err: block.err, d: block}\n\t\t\tswitch block.Type {\n\t\t\tcase blockTypeRLE:\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"add rle block length:\", block.RLESize)\n\t\t\t\t}\n\n\t\t\t\tif cap(block.dst) < int(block.RLESize) {\n\t\t\t\t\tif block.lowMem {\n\t\t\t\t\t\tblock.dst = make([]byte, block.RLESize)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblock.dst = make([]byte, maxCompressedBlockSize)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tblock.dst = block.dst[:block.RLESize]\n\t\t\t\tv := block.data[0]\n\t\t\t\tfor i := range block.dst {\n\t\t\t\t\tblock.dst[i] = v\n\t\t\t\t}\n\t\t\t\thist.append(block.dst)\n\t\t\t\tdo.b = block.dst\n\t\t\tcase blockTypeRaw:\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"add raw block length:\", len(block.data))\n\t\t\t\t}\n\t\t\t\thist.append(block.data)\n\t\t\t\tdo.b = block.data\n\t\t\tcase blockTypeCompressed:\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"execute with history length:\", len(hist.b), \"window:\", hist.windowSize)\n\t\t\t\t}\n\t\t\t\thist.decoders.seqSize = block.async.seqSize\n\t\t\t\thist.decoders.literals = block.async.literals\n\t\t\t\tdo.err = block.executeSequences(&hist)\n\t\t\t\thasErr = do.err != nil\n\t\t\t\tif debugDecoder && hasErr {\n\t\t\t\t\tprintln(\"executeSequences returned:\", do.err)\n\t\t\t\t}\n\t\t\t\tdo.b = block.dst\n\t\t\t}\n\t\t\tif !hasErr {\n\t\t\t\tdecodedFrame += uint64(len(do.b))\n\t\t\t\tif decodedFrame > fcs {\n\t\t\t\t\tprintln(\"fcs exceeded\", block.Last, fcs, decodedFrame)\n\t\t\t\t\tdo.err = ErrFrameSizeExceeded\n\t\t\t\t\thasErr = true\n\t\t\t\t} else if block.Last && fcs != fcsUnknown && decodedFrame != fcs {\n\t\t\t\t\tdo.err = ErrFrameSizeMismatch\n\t\t\t\t\thasErr = true\n\t\t\t\t} else {\n\t\t\t\t\tif debugDecoder {\n\t\t\t\t\t\tprintln(\"fcs ok\", block.Last, fcs, decodedFrame)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\toutput <- do\n\t\t}\n\t\tclose(output)\n\t\tframeHistCache = hist.b\n\t\twg.Done()\n\t\tif debugDecoder {\n\t\t\tprintln(\"decoder goroutines finished\")\n\t\t}\n\t\thist.reset()\n\t}()\n\n\tvar hist history\ndecodeStream:\n\tfor {\n\t\tvar hasErr bool\n\t\thist.reset()\n\t\tdecodeBlock := func(block *blockDec) {\n\t\t\tif hasErr {\n\t\t\t\tif block != nil {\n\t\t\t\t\tseqDecode <- block\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif block.err != nil || block.Type != blockTypeCompressed {\n\t\t\t\thasErr = block.err != nil\n\t\t\t\tseqDecode <- block\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tremain, err := block.decodeLiterals(block.data, &hist)\n\t\t\tblock.err = err\n\t\t\thasErr = block.err != nil\n\t\t\tif err == nil {\n\t\t\t\tblock.async.literals = hist.decoders.literals\n\t\t\t\tblock.async.seqData = remain\n\t\t\t} else if debugDecoder {\n\t\t\t\tprintln(\"decodeLiterals error:\", err)\n\t\t\t}\n\t\t\tseqDecode <- block\n\t\t}\n\t\tframe := d.frame\n\t\tif debugDecoder {\n\t\t\tprintln(\"New frame...\")\n\t\t}\n\t\tvar historySent bool\n\t\tframe.history.reset()\n\t\terr := frame.reset(&br)\n\t\tif debugDecoder && err != nil {\n\t\t\tprintln(\"Frame decoder returned\", err)\n\t\t}\n\t\tif err == nil {\n\t\t\terr = d.setDict(frame)\n\t\t}\n\t\tif err == nil && d.frame.WindowSize > d.o.maxWindowSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"decoder size exceeded, fws:\", d.frame.WindowSize, \"> mws:\", d.o.maxWindowSize)\n\t\t\t}\n\n\t\t\terr = ErrDecoderSizeExceeded\n\t\t}\n\t\tif err != nil {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\tcase dec := <-d.decoders:\n\t\t\t\tdec.sendErr(err)\n\t\t\t\tdecodeBlock(dec)\n\t\t\t}\n\t\t\tbreak decodeStream\n\t\t}\n\n\t\t// Go through all blocks of the frame.\n\t\tfor {\n\t\t\tvar dec *blockDec\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\tbreak decodeStream\n\t\t\tcase dec = <-d.decoders:\n\t\t\t\t// Once we have a decoder, we MUST return it.\n\t\t\t}\n\t\t\terr := frame.next(dec)\n\t\t\tif !historySent {\n\t\t\t\th := frame.history\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintln(\"Alloc History:\", h.allocFrameBuffer)\n\t\t\t\t}\n\t\t\t\thist.reset()\n\t\t\t\tif h.dict != nil {\n\t\t\t\t\thist.setDict(h.dict)\n\t\t\t\t}\n\t\t\t\tdec.async.newHist = &h\n\t\t\t\tdec.async.fcs = frame.FrameContentSize\n\t\t\t\thistorySent = true\n\t\t\t} else {\n\t\t\t\tdec.async.newHist = nil\n\t\t\t}\n\t\t\tif debugDecoder && err != nil {\n\t\t\t\tprintln(\"next block returned error:\", err)\n\t\t\t}\n\t\t\tdec.err = err\n\t\t\tdec.hasCRC = false\n\t\t\tif dec.Last && frame.HasCheckSum && err == nil {\n\t\t\t\tcrc, err := frame.rawInput.readSmall(4)\n\t\t\t\tif len(crc) < 4 {\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\terr = io.ErrUnexpectedEOF\n\n\t\t\t\t\t}\n\t\t\t\t\tprintln(\"CRC missing?\", err)\n\t\t\t\t\tdec.err = err\n\t\t\t\t} else {\n\t\t\t\t\tdec.checkCRC = binary.LittleEndian.Uint32(crc)\n\t\t\t\t\tdec.hasCRC = true\n\t\t\t\t\tif debugDecoder {\n\t\t\t\t\t\tprintf(\"found crc to check: %08x\\n\", dec.checkCRC)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\terr = dec.err\n\t\t\tlast := dec.Last\n\t\t\tdecodeBlock(dec)\n\t\t\tif err != nil {\n\t\t\t\tbreak decodeStream\n\t\t\t}\n\t\t\tif last {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tclose(seqDecode)\n\twg.Wait()\n\thist.reset()\n\td.frame.history.b = frameHistCache\n}\n\nfunc (d *Decoder) setDict(frame *frameDec) (err error) {\n\tdict, ok := d.o.dicts[frame.DictionaryID]\n\tif ok {\n\t\tif debugDecoder {\n\t\t\tprintln(\"setting dict\", frame.DictionaryID)\n\t\t}\n\t\tframe.history.setDict(dict)\n\t} else if frame.DictionaryID != 0 {\n\t\t// A zero or missing dictionary id is ambiguous:\n\t\t// either dictionary zero, or no dictionary. In particular,\n\t\t// zstd --patch-from uses this id for the source file,\n\t\t// so only return an error if the dictionary id is not zero.\n\t\terr = ErrUnknownDictionary\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/decoder_options.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math/bits\"\n\t\"runtime\"\n)\n\n// DOption is an option for creating a decoder.\ntype DOption func(*decoderOptions) error\n\n// options retains accumulated state of multiple options.\ntype decoderOptions struct {\n\tlowMem          bool\n\tconcurrent      int\n\tmaxDecodedSize  uint64\n\tmaxWindowSize   uint64\n\tdicts           map[uint32]*dict\n\tignoreChecksum  bool\n\tlimitToCap      bool\n\tdecodeBufsBelow int\n\tresetOpt        bool\n}\n\nfunc (o *decoderOptions) setDefault() {\n\t*o = decoderOptions{\n\t\t// use less ram: true for now, but may change.\n\t\tlowMem:          true,\n\t\tconcurrent:      runtime.GOMAXPROCS(0),\n\t\tmaxWindowSize:   MaxWindowSize,\n\t\tdecodeBufsBelow: 128 << 10,\n\t}\n\tif o.concurrent > 4 {\n\t\to.concurrent = 4\n\t}\n\to.maxDecodedSize = 64 << 30\n}\n\n// WithDecoderLowmem will set whether to use a lower amount of memory,\n// but possibly have to allocate more while running.\n// Cannot be changed with ResetWithOptions.\nfunc WithDecoderLowmem(b bool) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif o.resetOpt && b != o.lowMem {\n\t\t\treturn errors.New(\"WithDecoderLowmem cannot be changed on Reset\")\n\t\t}\n\t\to.lowMem = b\n\t\treturn nil\n\t}\n}\n\n// WithDecoderConcurrency sets the number of created decoders.\n// When decoding block with DecodeAll, this will limit the number\n// of possible concurrently running decodes.\n// When decoding streams, this will limit the number of\n// inflight blocks.\n// When decoding streams and setting maximum to 1,\n// no async decoding will be done.\n// The value supplied must be at least 0.\n// When a value of 0 is provided GOMAXPROCS will be used.\n// By default this will be set to 4 or GOMAXPROCS, whatever is lower.\n// Cannot be changed with ResetWithOptions.\nfunc WithDecoderConcurrency(n int) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif n < 0 {\n\t\t\treturn errors.New(\"concurrency must be at least 0\")\n\t\t}\n\t\tnewVal := n\n\t\tif n == 0 {\n\t\t\tnewVal = runtime.GOMAXPROCS(0)\n\t\t}\n\t\tif o.resetOpt && newVal != o.concurrent {\n\t\t\treturn errors.New(\"WithDecoderConcurrency cannot be changed on Reset\")\n\t\t}\n\t\to.concurrent = newVal\n\t\treturn nil\n\t}\n}\n\n// WithDecoderMaxMemory allows to set a maximum decoded size for in-memory\n// non-streaming operations or maximum window size for streaming operations.\n// This can be used to control memory usage of potentially hostile content.\n// Maximum is 1 << 63 bytes. Default is 64GiB.\n// Can be changed with ResetWithOptions.\nfunc WithDecoderMaxMemory(n uint64) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif n == 0 {\n\t\t\treturn errors.New(\"WithDecoderMaxMemory must be at least 1\")\n\t\t}\n\t\tif n > 1<<63 {\n\t\t\treturn errors.New(\"WithDecoderMaxmemory must be less than 1 << 63\")\n\t\t}\n\t\to.maxDecodedSize = n\n\t\treturn nil\n\t}\n}\n\n// WithDecoderDicts allows to register one or more dictionaries for the decoder.\n//\n// Each slice in dict must be in the [dictionary format] produced by\n// \"zstd --train\" from the Zstandard reference implementation.\n//\n// If several dictionaries with the same ID are provided, the last one will be used.\n// Can be changed with ResetWithOptions.\n//\n// [dictionary format]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format\nfunc WithDecoderDicts(dicts ...[]byte) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif o.dicts == nil {\n\t\t\to.dicts = make(map[uint32]*dict)\n\t\t}\n\t\tfor _, b := range dicts {\n\t\t\td, err := loadDict(b)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\to.dicts[d.id] = d\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithDecoderDictRaw registers a dictionary that may be used by the decoder.\n// The slice content can be arbitrary data.\n// Can be changed with ResetWithOptions.\nfunc WithDecoderDictRaw(id uint32, content []byte) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif bits.UintSize > 32 && uint(len(content)) > dictMaxLength {\n\t\t\treturn fmt.Errorf(\"dictionary of size %d > 2GiB too large\", len(content))\n\t\t}\n\t\tif o.dicts == nil {\n\t\t\to.dicts = make(map[uint32]*dict)\n\t\t}\n\t\to.dicts[id] = &dict{id: id, content: content, offsets: [3]int{1, 4, 8}}\n\t\treturn nil\n\t}\n}\n\n// WithDecoderMaxWindow allows to set a maximum window size for decodes.\n// This allows rejecting packets that will cause big memory usage.\n// The Decoder will likely allocate more memory based on the WithDecoderLowmem setting.\n// If WithDecoderMaxMemory is set to a lower value, that will be used.\n// Default is 512MB, Maximum is ~3.75 TB as per zstandard spec.\n// Can be changed with ResetWithOptions.\nfunc WithDecoderMaxWindow(size uint64) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif size < MinWindowSize {\n\t\t\treturn errors.New(\"WithMaxWindowSize must be at least 1KB, 1024 bytes\")\n\t\t}\n\t\tif size > (1<<41)+7*(1<<38) {\n\t\t\treturn errors.New(\"WithMaxWindowSize must be less than (1<<41) + 7*(1<<38) ~ 3.75TB\")\n\t\t}\n\t\to.maxWindowSize = size\n\t\treturn nil\n\t}\n}\n\n// WithDecodeAllCapLimit will limit DecodeAll to decoding cap(dst)-len(dst) bytes,\n// or any size set in WithDecoderMaxMemory.\n// This can be used to limit decoding to a specific maximum output size.\n// Disabled by default.\n// Can be changed with ResetWithOptions.\nfunc WithDecodeAllCapLimit(b bool) DOption {\n\treturn func(o *decoderOptions) error {\n\t\to.limitToCap = b\n\t\treturn nil\n\t}\n}\n\n// WithDecodeBuffersBelow will fully decode readers that have a\n// `Bytes() []byte` and `Len() int` interface similar to bytes.Buffer.\n// This typically uses less allocations but will have the full decompressed object in memory.\n// Note that DecodeAllCapLimit will disable this, as well as giving a size of 0 or less.\n// Default is 128KiB.\n// Cannot be changed with ResetWithOptions.\nfunc WithDecodeBuffersBelow(size int) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif o.resetOpt && size != o.decodeBufsBelow {\n\t\t\treturn errors.New(\"WithDecodeBuffersBelow cannot be changed on Reset\")\n\t\t}\n\t\to.decodeBufsBelow = size\n\t\treturn nil\n\t}\n}\n\n// IgnoreChecksum allows to forcibly ignore checksum checking.\n// Can be changed with ResetWithOptions.\nfunc IgnoreChecksum(b bool) DOption {\n\treturn func(o *decoderOptions) error {\n\t\to.ignoreChecksum = b\n\t\treturn nil\n\t}\n}\n\n// WithDecoderDictDelete removes dictionaries by ID.\n// If no ids are passed, all dictionaries are deleted.\n// Should be used with ResetWithOptions.\nfunc WithDecoderDictDelete(ids ...uint32) DOption {\n\treturn func(o *decoderOptions) error {\n\t\tif len(ids) == 0 {\n\t\t\tclear(o.dicts)\n\t\t}\n\t\tfor _, id := range ids {\n\t\t\tdelete(o.dicts, id)\n\t\t}\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/dict.go",
    "content": "package zstd\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"sort\"\n\n\t\"github.com/klauspost/compress/huff0\"\n)\n\ntype dict struct {\n\tid uint32\n\n\tlitEnc              *huff0.Scratch\n\tllDec, ofDec, mlDec sequenceDec\n\toffsets             [3]int\n\tcontent             []byte\n}\n\nconst dictMagic = \"\\x37\\xa4\\x30\\xec\"\n\n// Maximum dictionary size for the reference implementation (1.5.3) is 2 GiB.\nconst dictMaxLength = 1 << 31\n\n// ID returns the dictionary id or 0 if d is nil.\nfunc (d *dict) ID() uint32 {\n\tif d == nil {\n\t\treturn 0\n\t}\n\treturn d.id\n}\n\n// ContentSize returns the dictionary content size or 0 if d is nil.\nfunc (d *dict) ContentSize() int {\n\tif d == nil {\n\t\treturn 0\n\t}\n\treturn len(d.content)\n}\n\n// Content returns the dictionary content.\nfunc (d *dict) Content() []byte {\n\tif d == nil {\n\t\treturn nil\n\t}\n\treturn d.content\n}\n\n// Offsets returns the initial offsets.\nfunc (d *dict) Offsets() [3]int {\n\tif d == nil {\n\t\treturn [3]int{}\n\t}\n\treturn d.offsets\n}\n\n// LitEncoder returns the literal encoder.\nfunc (d *dict) LitEncoder() *huff0.Scratch {\n\tif d == nil {\n\t\treturn nil\n\t}\n\treturn d.litEnc\n}\n\n// Load a dictionary as described in\n// https://github.com/facebook/zstd/blob/master/doc/zstd_compression_format.md#dictionary-format\nfunc loadDict(b []byte) (*dict, error) {\n\t// Check static field size.\n\tif len(b) <= 8+(3*4) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\td := dict{\n\t\tllDec: sequenceDec{fse: &fseDecoder{}},\n\t\tofDec: sequenceDec{fse: &fseDecoder{}},\n\t\tmlDec: sequenceDec{fse: &fseDecoder{}},\n\t}\n\tif string(b[:4]) != dictMagic {\n\t\treturn nil, ErrMagicMismatch\n\t}\n\td.id = binary.LittleEndian.Uint32(b[4:8])\n\tif d.id == 0 {\n\t\treturn nil, errors.New(\"dictionaries cannot have ID 0\")\n\t}\n\n\t// Read literal table\n\tvar err error\n\td.litEnc, b, err = huff0.ReadTable(b[8:], nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"loading literal table: %w\", err)\n\t}\n\td.litEnc.Reuse = huff0.ReusePolicyMust\n\n\tbr := byteReader{\n\t\tb:   b,\n\t\toff: 0,\n\t}\n\treadDec := func(i tableIndex, dec *fseDecoder) error {\n\t\tif err := dec.readNCount(&br, uint16(maxTableSymbol[i])); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif br.overread() {\n\t\t\treturn io.ErrUnexpectedEOF\n\t\t}\n\t\terr = dec.transform(symbolTableX[i])\n\t\tif err != nil {\n\t\t\tprintln(\"Transform table error:\", err)\n\t\t\treturn err\n\t\t}\n\t\tif debugDecoder || debugEncoder {\n\t\t\tprintln(\"Read table ok\", \"symbolLen:\", dec.symbolLen)\n\t\t}\n\t\t// Set decoders as predefined so they aren't reused.\n\t\tdec.preDefined = true\n\t\treturn nil\n\t}\n\n\tif err := readDec(tableOffsets, d.ofDec.fse); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := readDec(tableMatchLengths, d.mlDec.fse); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := readDec(tableLiteralLengths, d.llDec.fse); err != nil {\n\t\treturn nil, err\n\t}\n\tif br.remain() < 12 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\n\td.offsets[0] = int(br.Uint32())\n\tbr.advance(4)\n\td.offsets[1] = int(br.Uint32())\n\tbr.advance(4)\n\td.offsets[2] = int(br.Uint32())\n\tbr.advance(4)\n\tif d.offsets[0] <= 0 || d.offsets[1] <= 0 || d.offsets[2] <= 0 {\n\t\treturn nil, errors.New(\"invalid offset in dictionary\")\n\t}\n\td.content = make([]byte, br.remain())\n\tcopy(d.content, br.unread())\n\tif d.offsets[0] > len(d.content) || d.offsets[1] > len(d.content) || d.offsets[2] > len(d.content) {\n\t\treturn nil, fmt.Errorf(\"initial offset bigger than dictionary content size %d, offsets: %v\", len(d.content), d.offsets)\n\t}\n\n\treturn &d, nil\n}\n\n// InspectDictionary loads a zstd dictionary and provides functions to inspect the content.\nfunc InspectDictionary(b []byte) (interface {\n\tID() uint32\n\tContentSize() int\n\tContent() []byte\n\tOffsets() [3]int\n\tLitEncoder() *huff0.Scratch\n}, error) {\n\tinitPredefined()\n\td, err := loadDict(b)\n\treturn d, err\n}\n\ntype BuildDictOptions struct {\n\t// Dictionary ID.\n\tID uint32\n\n\t// Content to use to create dictionary tables.\n\tContents [][]byte\n\n\t// History to use for all blocks.\n\tHistory []byte\n\n\t// Offsets to use.\n\tOffsets [3]int\n\n\t// CompatV155 will make the dictionary compatible with Zstd v1.5.5 and earlier.\n\t// See https://github.com/facebook/zstd/issues/3724\n\tCompatV155 bool\n\n\t// Use the specified encoder level.\n\t// The dictionary will be built using the specified encoder level,\n\t// which will reflect speed and make the dictionary tailored for that level.\n\t// If not set SpeedBestCompression will be used.\n\tLevel EncoderLevel\n\n\t// DebugOut will write stats and other details here if set.\n\tDebugOut io.Writer\n}\n\nfunc BuildDict(o BuildDictOptions) ([]byte, error) {\n\tinitPredefined()\n\thist := o.History\n\tcontents := o.Contents\n\tdebug := o.DebugOut != nil\n\tprintln := func(args ...any) {\n\t\tif o.DebugOut != nil {\n\t\t\tfmt.Fprintln(o.DebugOut, args...)\n\t\t}\n\t}\n\tprintf := func(s string, args ...any) {\n\t\tif o.DebugOut != nil {\n\t\t\tfmt.Fprintf(o.DebugOut, s, args...)\n\t\t}\n\t}\n\tprint := func(args ...any) {\n\t\tif o.DebugOut != nil {\n\t\t\tfmt.Fprint(o.DebugOut, args...)\n\t\t}\n\t}\n\n\tif int64(len(hist)) > dictMaxLength {\n\t\treturn nil, fmt.Errorf(\"dictionary of size %d > %d\", len(hist), int64(dictMaxLength))\n\t}\n\tif len(hist) < 8 {\n\t\treturn nil, fmt.Errorf(\"dictionary of size %d < %d\", len(hist), 8)\n\t}\n\tif len(contents) == 0 {\n\t\treturn nil, errors.New(\"no content provided\")\n\t}\n\td := dict{\n\t\tid:      o.ID,\n\t\tlitEnc:  nil,\n\t\tllDec:   sequenceDec{},\n\t\tofDec:   sequenceDec{},\n\t\tmlDec:   sequenceDec{},\n\t\toffsets: o.Offsets,\n\t\tcontent: hist,\n\t}\n\tblock := blockEnc{lowMem: false}\n\tblock.init()\n\tenc := encoder(&bestFastEncoder{fastBase: fastBase{maxMatchOff: int32(maxMatchLen), bufferReset: math.MaxInt32 - int32(maxMatchLen*2), lowMem: false}})\n\tif o.Level != 0 {\n\t\teOpts := encoderOptions{\n\t\t\tlevel:      o.Level,\n\t\t\tblockSize:  maxMatchLen,\n\t\t\twindowSize: maxMatchLen,\n\t\t\tdict:       &d,\n\t\t\tlowMem:     false,\n\t\t}\n\t\tenc = eOpts.encoder()\n\t} else {\n\t\to.Level = SpeedBestCompression\n\t}\n\tvar (\n\t\tremain [256]int\n\t\tll     [256]int\n\t\tml     [256]int\n\t\tof     [256]int\n\t)\n\taddValues := func(dst *[256]int, src []byte) {\n\t\tfor _, v := range src {\n\t\t\tdst[v]++\n\t\t}\n\t}\n\taddHist := func(dst *[256]int, src *[256]uint32) {\n\t\tfor i, v := range src {\n\t\t\tdst[i] += int(v)\n\t\t}\n\t}\n\tseqs := 0\n\tnUsed := 0\n\tlitTotal := 0\n\tnewOffsets := make(map[uint32]int, 1000)\n\tfor _, b := range contents {\n\t\tblock.reset(nil)\n\t\tif len(b) < 8 {\n\t\t\tcontinue\n\t\t}\n\t\tnUsed++\n\t\tenc.Reset(&d, true)\n\t\tenc.Encode(&block, b)\n\t\taddValues(&remain, block.literals)\n\t\tlitTotal += len(block.literals)\n\t\tif len(block.sequences) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tseqs += len(block.sequences)\n\t\tblock.genCodes()\n\t\taddHist(&ll, block.coders.llEnc.Histogram())\n\t\taddHist(&ml, block.coders.mlEnc.Histogram())\n\t\taddHist(&of, block.coders.ofEnc.Histogram())\n\t\tfor i, seq := range block.sequences {\n\t\t\tif i > 3 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toffset := seq.offset\n\t\t\tif offset == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif int(offset) >= len(o.History) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif offset > 3 {\n\t\t\t\tnewOffsets[offset-3]++\n\t\t\t} else {\n\t\t\t\tnewOffsets[uint32(o.Offsets[offset-1])]++\n\t\t\t}\n\t\t}\n\t}\n\t// Find most used offsets.\n\tvar sortedOffsets []uint32\n\tfor k := range newOffsets {\n\t\tsortedOffsets = append(sortedOffsets, k)\n\t}\n\tsort.Slice(sortedOffsets, func(i, j int) bool {\n\t\ta, b := sortedOffsets[i], sortedOffsets[j]\n\t\tif a == b {\n\t\t\t// Prefer the longer offset\n\t\t\treturn sortedOffsets[i] > sortedOffsets[j]\n\t\t}\n\t\treturn newOffsets[sortedOffsets[i]] > newOffsets[sortedOffsets[j]]\n\t})\n\tif len(sortedOffsets) > 3 {\n\t\tif debug {\n\t\t\tprint(\"Offsets:\")\n\t\t\tfor i, v := range sortedOffsets {\n\t\t\t\tif i > 20 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tprintf(\"[%d: %d],\", v, newOffsets[v])\n\t\t\t}\n\t\t\tprintln(\"\")\n\t\t}\n\n\t\tsortedOffsets = sortedOffsets[:3]\n\t}\n\tfor i, v := range sortedOffsets {\n\t\to.Offsets[i] = int(v)\n\t}\n\tif debug {\n\t\tprintln(\"New repeat offsets\", o.Offsets)\n\t}\n\n\tif nUsed == 0 || seqs == 0 {\n\t\treturn nil, fmt.Errorf(\"%d blocks, %d sequences found\", nUsed, seqs)\n\t}\n\tif debug {\n\t\tprintln(\"Sequences:\", seqs, \"Blocks:\", nUsed, \"Literals:\", litTotal)\n\t}\n\tif seqs/nUsed < 512 {\n\t\t// Use 512 as minimum.\n\t\tnUsed = seqs / 512\n\t\tif nUsed == 0 {\n\t\t\tnUsed = 1\n\t\t}\n\t}\n\tcopyHist := func(dst *fseEncoder, src *[256]int) ([]byte, error) {\n\t\thist := dst.Histogram()\n\t\tvar maxSym uint8\n\t\tvar maxCount int\n\t\tvar fakeLength int\n\t\tfor i, v := range src {\n\t\t\tif v > 0 {\n\t\t\t\tv = v / nUsed\n\t\t\t\tif v == 0 {\n\t\t\t\t\tv = 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif v > maxCount {\n\t\t\t\tmaxCount = v\n\t\t\t}\n\t\t\tif v != 0 {\n\t\t\t\tmaxSym = uint8(i)\n\t\t\t}\n\t\t\tfakeLength += v\n\t\t\thist[i] = uint32(v)\n\t\t}\n\n\t\t// Ensure we aren't trying to represent RLE.\n\t\tif maxCount == fakeLength {\n\t\t\tfor i := range hist {\n\t\t\t\tif uint8(i) == maxSym {\n\t\t\t\t\tfakeLength++\n\t\t\t\t\tmaxSym++\n\t\t\t\t\thist[i+1] = 1\n\t\t\t\t\tif maxSym > 1 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif hist[0] == 0 {\n\t\t\t\t\tfakeLength++\n\t\t\t\t\thist[i] = 1\n\t\t\t\t\tif maxSym > 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\tdst.HistogramFinished(maxSym, maxCount)\n\t\tdst.reUsed = false\n\t\tdst.useRLE = false\n\t\terr := dst.normalizeCount(fakeLength)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif debug {\n\t\t\tprintln(\"RAW:\", dst.count[:maxSym+1], \"NORM:\", dst.norm[:maxSym+1], \"LEN:\", fakeLength)\n\t\t}\n\t\treturn dst.writeCount(nil)\n\t}\n\tif debug {\n\t\tprint(\"Literal lengths: \")\n\t}\n\tllTable, err := copyHist(block.coders.llEnc, &ll)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif debug {\n\t\tprint(\"Match lengths: \")\n\t}\n\tmlTable, err := copyHist(block.coders.mlEnc, &ml)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif debug {\n\t\tprint(\"Offsets: \")\n\t}\n\tofTable, err := copyHist(block.coders.ofEnc, &of)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Literal table\n\tavgSize := min(litTotal, huff0.BlockSizeMax/2)\n\thuffBuff := make([]byte, 0, avgSize)\n\t// Target size\n\tdiv := max(litTotal/avgSize, 1)\n\tif debug {\n\t\tprintln(\"Huffman weights:\")\n\t}\n\tfor i, n := range remain[:] {\n\t\tif n > 0 {\n\t\t\tn = n / div\n\t\t\t// Allow all entries to be represented.\n\t\t\tif n == 0 {\n\t\t\t\tn = 1\n\t\t\t}\n\t\t\thuffBuff = append(huffBuff, bytes.Repeat([]byte{byte(i)}, n)...)\n\t\t\tif debug {\n\t\t\t\tprintf(\"[%d: %d], \", i, n)\n\t\t\t}\n\t\t}\n\t}\n\tif o.CompatV155 && remain[255]/div == 0 {\n\t\thuffBuff = append(huffBuff, 255)\n\t}\n\tscratch := &huff0.Scratch{TableLog: 11}\n\tfor tries := range 255 {\n\t\tscratch = &huff0.Scratch{TableLog: 11}\n\t\t_, _, err = huff0.Compress1X(huffBuff, scratch)\n\t\tif err == nil {\n\t\t\tbreak\n\t\t}\n\t\tif debug {\n\t\t\tprintf(\"Try %d: Huffman error: %v\\n\", tries+1, err)\n\t\t}\n\t\thuffBuff = huffBuff[:0]\n\t\tif tries == 250 {\n\t\t\tif debug {\n\t\t\t\tprintln(\"Huffman: Bailing out with predefined table\")\n\t\t\t}\n\n\t\t\t// Bail out.... Just generate something\n\t\t\thuffBuff = append(huffBuff, bytes.Repeat([]byte{255}, 10000)...)\n\t\t\tfor i := range 128 {\n\t\t\t\thuffBuff = append(huffBuff, byte(i))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif errors.Is(err, huff0.ErrIncompressible) {\n\t\t\t// Try truncating least common.\n\t\t\tfor i, n := range remain[:] {\n\t\t\t\tif n > 0 {\n\t\t\t\t\tn = n / (div * (i + 1))\n\t\t\t\t\tif n > 0 {\n\t\t\t\t\t\thuffBuff = append(huffBuff, bytes.Repeat([]byte{byte(i)}, n)...)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif o.CompatV155 && len(huffBuff) > 0 && huffBuff[len(huffBuff)-1] != 255 {\n\t\t\t\thuffBuff = append(huffBuff, 255)\n\t\t\t}\n\t\t\tif len(huffBuff) == 0 {\n\t\t\t\thuffBuff = append(huffBuff, 0, 255)\n\t\t\t}\n\t\t}\n\t\tif errors.Is(err, huff0.ErrUseRLE) {\n\t\t\tfor i, n := range remain[:] {\n\t\t\t\tn = n / (div * (i + 1))\n\t\t\t\t// Allow all entries to be represented.\n\t\t\t\tif n == 0 {\n\t\t\t\t\tn = 1\n\t\t\t\t}\n\t\t\t\thuffBuff = append(huffBuff, bytes.Repeat([]byte{byte(i)}, n)...)\n\t\t\t}\n\t\t}\n\t}\n\n\tvar out bytes.Buffer\n\tout.Write([]byte(dictMagic))\n\tout.Write(binary.LittleEndian.AppendUint32(nil, o.ID))\n\tout.Write(scratch.OutTable)\n\tif debug {\n\t\tprintln(\"huff table:\", len(scratch.OutTable), \"bytes\")\n\t\tprintln(\"of table:\", len(ofTable), \"bytes\")\n\t\tprintln(\"ml table:\", len(mlTable), \"bytes\")\n\t\tprintln(\"ll table:\", len(llTable), \"bytes\")\n\t}\n\tout.Write(ofTable)\n\tout.Write(mlTable)\n\tout.Write(llTable)\n\tout.Write(binary.LittleEndian.AppendUint32(nil, uint32(o.Offsets[0])))\n\tout.Write(binary.LittleEndian.AppendUint32(nil, uint32(o.Offsets[1])))\n\tout.Write(binary.LittleEndian.AppendUint32(nil, uint32(o.Offsets[2])))\n\tout.Write(hist)\n\tif debug {\n\t\t_, err := loadDict(out.Bytes())\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\ti, err := InspectDictionary(out.Bytes())\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tprintln(\"ID:\", i.ID())\n\t\tprintln(\"Content size:\", i.ContentSize())\n\t\tprintln(\"Encoder:\", i.LitEncoder() != nil)\n\t\tprintln(\"Offsets:\", i.Offsets())\n\t\tvar totalSize int\n\t\tfor _, b := range contents {\n\t\t\ttotalSize += len(b)\n\t\t}\n\n\t\tencWith := func(opts ...EOption) int {\n\t\t\tenc, err := NewWriter(nil, opts...)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tdefer enc.Close()\n\t\t\tvar dst []byte\n\t\t\tvar totalSize int\n\t\t\tfor _, b := range contents {\n\t\t\t\tdst = enc.EncodeAll(b, dst[:0])\n\t\t\t\ttotalSize += len(dst)\n\t\t\t}\n\t\t\treturn totalSize\n\t\t}\n\t\tplain := encWith(WithEncoderLevel(o.Level))\n\t\twithDict := encWith(WithEncoderLevel(o.Level), WithEncoderDict(out.Bytes()))\n\t\tprintln(\"Input size:\", totalSize)\n\t\tprintln(\"Plain Compressed:\", plain)\n\t\tprintln(\"Dict Compressed:\", withDict)\n\t\tprintln(\"Saved:\", plain-withDict, (plain-withDict)/len(contents), \"bytes per input (rounded down)\")\n\t}\n\treturn out.Bytes(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/enc_base.go",
    "content": "package zstd\n\nimport (\n\t\"fmt\"\n\t\"math/bits\"\n\n\t\"github.com/klauspost/compress/zstd/internal/xxhash\"\n)\n\nconst (\n\tdictShardBits = 7\n)\n\ntype fastBase struct {\n\t// cur is the offset at the start of hist\n\tcur int32\n\t// maximum offset. Should be at least 2x block size.\n\tmaxMatchOff int32\n\tbufferReset int32\n\thist        []byte\n\tcrc         *xxhash.Digest\n\ttmp         [8]byte\n\tblk         *blockEnc\n\tlastDictID  uint32\n\tlowMem      bool\n}\n\n// CRC returns the underlying CRC writer.\nfunc (e *fastBase) CRC() *xxhash.Digest {\n\treturn e.crc\n}\n\n// AppendCRC will append the CRC to the destination slice and return it.\nfunc (e *fastBase) AppendCRC(dst []byte) []byte {\n\tcrc := e.crc.Sum(e.tmp[:0])\n\tdst = append(dst, crc[7], crc[6], crc[5], crc[4])\n\treturn dst\n}\n\n// WindowSize returns the window size of the encoder,\n// or a window size small enough to contain the input size, if > 0.\nfunc (e *fastBase) WindowSize(size int64) int32 {\n\tif size > 0 && size < int64(e.maxMatchOff) {\n\t\tb := max(\n\t\t\t// Keep minimum window.\n\t\t\tint32(1)<<uint(bits.Len(uint(size))), 1024)\n\t\treturn b\n\t}\n\treturn e.maxMatchOff\n}\n\n// Block returns the current block.\nfunc (e *fastBase) Block() *blockEnc {\n\treturn e.blk\n}\n\nfunc (e *fastBase) addBlock(src []byte) int32 {\n\tif debugAsserts && e.cur > e.bufferReset {\n\t\tpanic(fmt.Sprintf(\"ecur (%d) > buffer reset (%d)\", e.cur, e.bufferReset))\n\t}\n\t// check if we have space already\n\tif len(e.hist)+len(src) > cap(e.hist) {\n\t\tif cap(e.hist) == 0 {\n\t\t\te.ensureHist(len(src))\n\t\t} else {\n\t\t\tif cap(e.hist) < int(e.maxMatchOff+maxCompressedBlockSize) {\n\t\t\t\tpanic(fmt.Errorf(\"unexpected buffer cap %d, want at least %d with window %d\", cap(e.hist), e.maxMatchOff+maxCompressedBlockSize, e.maxMatchOff))\n\t\t\t}\n\t\t\t// Move down\n\t\t\toffset := int32(len(e.hist)) - e.maxMatchOff\n\t\t\tcopy(e.hist[0:e.maxMatchOff], e.hist[offset:])\n\t\t\te.cur += offset\n\t\t\te.hist = e.hist[:e.maxMatchOff]\n\t\t}\n\t}\n\ts := int32(len(e.hist))\n\te.hist = append(e.hist, src...)\n\treturn s\n}\n\n// ensureHist will ensure that history can keep at least this many bytes.\nfunc (e *fastBase) ensureHist(n int) {\n\tif cap(e.hist) >= n {\n\t\treturn\n\t}\n\tl := e.maxMatchOff\n\tif (e.lowMem && e.maxMatchOff > maxCompressedBlockSize) || e.maxMatchOff <= maxCompressedBlockSize {\n\t\tl += maxCompressedBlockSize\n\t} else {\n\t\tl += e.maxMatchOff\n\t}\n\t// Make it at least 1MB.\n\tif l < 1<<20 && !e.lowMem {\n\t\tl = 1 << 20\n\t}\n\t// Make it at least the requested size.\n\tif l < int32(n) {\n\t\tl = int32(n)\n\t}\n\te.hist = make([]byte, 0, l)\n}\n\n// useBlock will replace the block with the provided one,\n// but transfer recent offsets from the previous.\nfunc (e *fastBase) UseBlock(enc *blockEnc) {\n\tenc.reset(e.blk)\n\te.blk = enc\n}\n\nfunc (e *fastBase) matchlen(s, t int32, src []byte) int32 {\n\tif debugAsserts {\n\t\tif s < 0 {\n\t\t\terr := fmt.Sprintf(\"s (%d) < 0\", s)\n\t\t\tpanic(err)\n\t\t}\n\t\tif t < 0 {\n\t\t\terr := fmt.Sprintf(\"t (%d) < 0\", t)\n\t\t\tpanic(err)\n\t\t}\n\t\tif s-t > e.maxMatchOff {\n\t\t\terr := fmt.Sprintf(\"s (%d) - t (%d) > maxMatchOff (%d)\", s, t, e.maxMatchOff)\n\t\t\tpanic(err)\n\t\t}\n\t\tif len(src)-int(s) > maxCompressedBlockSize {\n\t\t\tpanic(fmt.Sprintf(\"len(src)-s (%d) > maxCompressedBlockSize (%d)\", len(src)-int(s), maxCompressedBlockSize))\n\t\t}\n\t}\n\treturn int32(matchLen(src[s:], src[t:]))\n}\n\n// Reset the encoding table.\nfunc (e *fastBase) resetBase(d *dict, singleBlock bool) {\n\tif e.blk == nil {\n\t\te.blk = &blockEnc{lowMem: e.lowMem}\n\t\te.blk.init()\n\t} else {\n\t\te.blk.reset(nil)\n\t}\n\te.blk.initNewEncode()\n\tif e.crc == nil {\n\t\te.crc = xxhash.New()\n\t} else {\n\t\te.crc.Reset()\n\t}\n\te.blk.dictLitEnc = nil\n\tif d != nil {\n\t\tlow := e.lowMem\n\t\tif singleBlock {\n\t\t\te.lowMem = true\n\t\t}\n\t\te.ensureHist(d.ContentSize() + maxCompressedBlockSize)\n\t\te.lowMem = low\n\t}\n\n\t// We offset current position so everything will be out of reach.\n\t// If above reset line, history will be purged.\n\tif e.cur < e.bufferReset {\n\t\te.cur += e.maxMatchOff + int32(len(e.hist))\n\t}\n\te.hist = e.hist[:0]\n\tif d != nil {\n\t\t// Set offsets (currently not used)\n\t\tfor i, off := range d.offsets {\n\t\t\te.blk.recentOffsets[i] = uint32(off)\n\t\t\te.blk.prevRecentOffsets[i] = e.blk.recentOffsets[i]\n\t\t}\n\t\t// Transfer litenc.\n\t\te.blk.dictLitEnc = d.litEnc\n\t\te.hist = append(e.hist, d.content...)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/enc_best.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"github.com/klauspost/compress\"\n)\n\nconst (\n\tbestLongTableBits = 22                     // Bits used in the long match table\n\tbestLongTableSize = 1 << bestLongTableBits // Size of the table\n\tbestLongLen       = 8                      // Bytes used for table hash\n\n\t// Note: Increasing the short table bits or making the hash shorter\n\t// can actually lead to compression degradation since it will 'steal' more from the\n\t// long match table and match offsets are quite big.\n\t// This greatly depends on the type of input.\n\tbestShortTableBits = 18                      // Bits used in the short match table\n\tbestShortTableSize = 1 << bestShortTableBits // Size of the table\n\tbestShortLen       = 4                       // Bytes used for table hash\n\n)\n\ntype match struct {\n\toffset int32\n\ts      int32\n\tlength int32\n\trep    int32\n\test    int32\n}\n\nconst highScore = maxMatchLen * 8\n\n// estBits will estimate output bits from predefined tables.\nfunc (m *match) estBits(bitsPerByte int32) {\n\tmlc := mlCode(uint32(m.length - zstdMinMatch))\n\tvar ofc uint8\n\tif m.rep < 0 {\n\t\tofc = ofCode(uint32(m.s-m.offset) + 3)\n\t} else {\n\t\tofc = ofCode(uint32(m.rep) & 3)\n\t}\n\t// Cost, excluding\n\tofTT, mlTT := fsePredefEnc[tableOffsets].ct.symbolTT[ofc], fsePredefEnc[tableMatchLengths].ct.symbolTT[mlc]\n\n\t// Add cost of match encoding...\n\tm.est = int32(ofTT.outBits + mlTT.outBits)\n\tm.est += int32(ofTT.deltaNbBits>>16 + mlTT.deltaNbBits>>16)\n\t// Subtract savings compared to literal encoding...\n\tm.est -= (m.length * bitsPerByte) >> 10\n\tif m.est > 0 {\n\t\t// Unlikely gain..\n\t\tm.length = 0\n\t\tm.est = highScore\n\t}\n}\n\n// bestFastEncoder uses 2 tables, one for short matches (5 bytes) and one for long matches.\n// The long match table contains the previous entry with the same hash,\n// effectively making it a \"chain\" of length 2.\n// When we find a long match we choose between the two values and select the longest.\n// When we find a short match, after checking the long, we check if we can find a long at n+1\n// and that it is longer (lazy matching).\ntype bestFastEncoder struct {\n\tfastBase\n\ttable         [bestShortTableSize]prevEntry\n\tlongTable     [bestLongTableSize]prevEntry\n\tdictTable     []prevEntry\n\tdictLongTable []prevEntry\n}\n\n// Encode improves compression...\nfunc (e *bestFastEncoder) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 4\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\te.table = [bestShortTableSize]prevEntry{}\n\t\t\te.longTable = [bestLongTableSize]prevEntry{}\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tv2 := e.table[i].prev\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t\tv2 = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t\tif v2 < minOff {\n\t\t\t\t\tv2 = 0\n\t\t\t\t} else {\n\t\t\t\t\tv2 = v2 - e.cur + e.maxMatchOff\n\t\t\t\t}\n\t\t\t}\n\t\t\te.table[i] = prevEntry{\n\t\t\t\toffset: v,\n\t\t\t\tprev:   v2,\n\t\t\t}\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\tv := e.longTable[i].offset\n\t\t\tv2 := e.longTable[i].prev\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t\tv2 = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t\tif v2 < minOff {\n\t\t\t\t\tv2 = 0\n\t\t\t\t} else {\n\t\t\t\t\tv2 = v2 - e.cur + e.maxMatchOff\n\t\t\t\t}\n\t\t\t}\n\t\t\te.longTable[i] = prevEntry{\n\t\t\t\toffset: v,\n\t\t\t\tprev:   v2,\n\t\t\t}\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\t// Add block to history\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\n\t// Check RLE first\n\tif len(src) > zstdMinMatch {\n\t\tml := matchLen(src[1:], src)\n\t\tif ml == len(src)-1 {\n\t\t\tblk.literals = append(blk.literals, src[0])\n\t\t\tblk.sequences = append(blk.sequences, seq{litLen: 1, matchLen: uint32(len(src)-1) - zstdMinMatch, offset: 1 + 3})\n\t\t\treturn\n\t\t}\n\t}\n\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Use this to estimate literal cost.\n\t// Scaled by 10 bits.\n\tbitsPerByte := max(\n\t\t// Huffman can never go < 1 bit/byte\n\t\tint32((compress.ShannonEntropyBits(src)*1024)/len(src)), 1024)\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\tconst kSearchStrength = 10\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\toffset3 := int32(blk.recentOffsets[2])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\t// We allow the encoder to optionally turn off repeat offsets across blocks\n\t\tcanRepeat := len(blk.sequences) > 2\n\n\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\tpanic(\"offset0 was 0\")\n\t\t}\n\n\t\tconst goodEnough = 250\n\n\t\tcv := load6432(src, s)\n\n\t\tnextHashL := hashLen(cv, bestLongTableBits, bestLongLen)\n\t\tnextHashS := hashLen(cv, bestShortTableBits, bestShortLen)\n\t\tcandidateL := e.longTable[nextHashL]\n\t\tcandidateS := e.table[nextHashS]\n\n\t\t// Set m to a match at offset if it looks like that will improve compression.\n\t\timprove := func(m *match, offset int32, s int32, first uint32, rep int32) {\n\t\t\tdelta := s - offset\n\t\t\tif delta >= e.maxMatchOff || delta <= 0 || load3232(src, offset) != first {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Try to quick reject if we already have a long match.\n\t\t\tif m.length > 16 {\n\t\t\t\tleft := len(src) - int(m.s+m.length)\n\t\t\t\t// If we are too close to the end, keep as is.\n\t\t\t\tif left <= 0 {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tcheckLen := m.length - (s - m.s) - 8\n\t\t\t\tif left > 2 && checkLen > 4 {\n\t\t\t\t\t// Check 4 bytes, 4 bytes from the end of the current match.\n\t\t\t\t\ta := load3232(src, offset+checkLen)\n\t\t\t\t\tb := load3232(src, s+checkLen)\n\t\t\t\t\tif a != b {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tl := 4 + e.matchlen(s+4, offset+4, src)\n\t\t\tif m.rep <= 0 {\n\t\t\t\t// Extend candidate match backwards as far as possible.\n\t\t\t\t// Do not extend repeats as we can assume they are optimal\n\t\t\t\t// and offsets change if s == nextEmit.\n\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\tfor offset > tMin && s > nextEmit && src[offset-1] == src[s-1] && l < maxMatchLength {\n\t\t\t\t\ts--\n\t\t\t\t\toffset--\n\t\t\t\t\tl++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif debugAsserts {\n\t\t\t\tif offset >= s {\n\t\t\t\t\tpanic(fmt.Sprintf(\"offset: %d - s:%d - rep: %d - cur :%d - max: %d\", offset, s, rep, e.cur, e.maxMatchOff))\n\t\t\t\t}\n\t\t\t\tif !bytes.Equal(src[s:s+l], src[offset:offset+l]) {\n\t\t\t\t\tpanic(fmt.Sprintf(\"second match mismatch: %v != %v, first: %08x\", src[s:s+4], src[offset:offset+4], first))\n\t\t\t\t}\n\t\t\t}\n\t\t\tcand := match{offset: offset, s: s, length: l, rep: rep}\n\t\t\tcand.estBits(bitsPerByte)\n\t\t\tif m.est >= highScore || cand.est-m.est+(cand.s-m.s)*bitsPerByte>>10 < 0 {\n\t\t\t\t*m = cand\n\t\t\t}\n\t\t}\n\n\t\tbest := match{s: s, est: highScore}\n\t\timprove(&best, candidateL.offset-e.cur, s, uint32(cv), -1)\n\t\timprove(&best, candidateL.prev-e.cur, s, uint32(cv), -1)\n\t\timprove(&best, candidateS.offset-e.cur, s, uint32(cv), -1)\n\t\timprove(&best, candidateS.prev-e.cur, s, uint32(cv), -1)\n\n\t\tif canRepeat && best.length < goodEnough {\n\t\t\tif s == nextEmit {\n\t\t\t\t// Check repeats straight after a match.\n\t\t\t\timprove(&best, s-offset2, s, uint32(cv), 1|4)\n\t\t\t\timprove(&best, s-offset3, s, uint32(cv), 2|4)\n\t\t\t\tif offset1 > 1 {\n\t\t\t\t\timprove(&best, s-(offset1-1), s, uint32(cv), 3|4)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If either no match or a non-repeat match, check at + 1\n\t\t\tif best.rep <= 0 {\n\t\t\t\tcv32 := uint32(cv >> 8)\n\t\t\t\tspp := s + 1\n\t\t\t\timprove(&best, spp-offset1, spp, cv32, 1)\n\t\t\t\timprove(&best, spp-offset2, spp, cv32, 2)\n\t\t\t\timprove(&best, spp-offset3, spp, cv32, 3)\n\t\t\t\tif best.rep < 0 {\n\t\t\t\t\tcv32 = uint32(cv >> 24)\n\t\t\t\t\tspp += 2\n\t\t\t\t\timprove(&best, spp-offset1, spp, cv32, 1)\n\t\t\t\t\timprove(&best, spp-offset2, spp, cv32, 2)\n\t\t\t\t\timprove(&best, spp-offset3, spp, cv32, 3)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Load next and check...\n\t\te.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: candidateL.offset}\n\t\te.table[nextHashS] = prevEntry{offset: s + e.cur, prev: candidateS.offset}\n\t\tindex0 := s + 1\n\n\t\t// Look far ahead, unless we have a really long match already...\n\t\tif best.length < goodEnough {\n\t\t\t// No match found, move forward on input, no need to check forward...\n\t\t\tif best.length < 4 {\n\t\t\t\ts += 1 + (s-nextEmit)>>(kSearchStrength-1)\n\t\t\t\tif s >= sLimit {\n\t\t\t\t\tbreak encodeLoop\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcandidateS = e.table[hashLen(cv>>8, bestShortTableBits, bestShortLen)]\n\t\t\tcv = load6432(src, s+1)\n\t\t\tcv2 := load6432(src, s+2)\n\t\t\tcandidateL = e.longTable[hashLen(cv, bestLongTableBits, bestLongLen)]\n\t\t\tcandidateL2 := e.longTable[hashLen(cv2, bestLongTableBits, bestLongLen)]\n\n\t\t\t// Short at s+1\n\t\t\timprove(&best, candidateS.offset-e.cur, s+1, uint32(cv), -1)\n\t\t\t// Long at s+1, s+2\n\t\t\timprove(&best, candidateL.offset-e.cur, s+1, uint32(cv), -1)\n\t\t\timprove(&best, candidateL.prev-e.cur, s+1, uint32(cv), -1)\n\t\t\timprove(&best, candidateL2.offset-e.cur, s+2, uint32(cv2), -1)\n\t\t\timprove(&best, candidateL2.prev-e.cur, s+2, uint32(cv2), -1)\n\t\t\tif false {\n\t\t\t\t// Short at s+3.\n\t\t\t\t// Too often worse...\n\t\t\t\timprove(&best, e.table[hashLen(cv2>>8, bestShortTableBits, bestShortLen)].offset-e.cur, s+3, uint32(cv2>>8), -1)\n\t\t\t}\n\n\t\t\t// Start check at a fixed offset to allow for a few mismatches.\n\t\t\t// For this compression level 2 yields the best results.\n\t\t\t// We cannot do this if we have already indexed this position.\n\t\t\tconst skipBeginning = 2\n\t\t\tif best.s > s-skipBeginning {\n\t\t\t\t// See if we can find a better match by checking where the current best ends.\n\t\t\t\t// Use that offset to see if we can find a better full match.\n\t\t\t\tif sAt := best.s + best.length; sAt < sLimit {\n\t\t\t\t\tnextHashL := hashLen(load6432(src, sAt), bestLongTableBits, bestLongLen)\n\t\t\t\t\tcandidateEnd := e.longTable[nextHashL]\n\n\t\t\t\t\tif off := candidateEnd.offset - e.cur - best.length + skipBeginning; off >= 0 {\n\t\t\t\t\t\timprove(&best, off, best.s+skipBeginning, load3232(src, best.s+skipBeginning), -1)\n\t\t\t\t\t\tif off := candidateEnd.prev - e.cur - best.length + skipBeginning; off >= 0 {\n\t\t\t\t\t\t\timprove(&best, off, best.s+skipBeginning, load3232(src, best.s+skipBeginning), -1)\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\tif debugAsserts {\n\t\t\tif best.offset >= best.s {\n\t\t\t\tpanic(fmt.Sprintf(\"best.offset > s: %d >= %d\", best.offset, best.s))\n\t\t\t}\n\t\t\tif best.s < nextEmit {\n\t\t\t\tpanic(fmt.Sprintf(\"s %d < nextEmit %d\", best.s, nextEmit))\n\t\t\t}\n\t\t\tif best.offset < s-e.maxMatchOff {\n\t\t\t\tpanic(fmt.Sprintf(\"best.offset < s-e.maxMatchOff: %d < %d\", best.offset, s-e.maxMatchOff))\n\t\t\t}\n\t\t\tif !bytes.Equal(src[best.s:best.s+best.length], src[best.offset:best.offset+best.length]) {\n\t\t\t\tpanic(fmt.Sprintf(\"match mismatch: %v != %v\", src[best.s:best.s+best.length], src[best.offset:best.offset+best.length]))\n\t\t\t}\n\t\t}\n\n\t\t// We have a match, we can store the forward value\n\t\ts = best.s\n\t\tif best.rep > 0 {\n\t\t\tvar seq seq\n\t\t\tseq.matchLen = uint32(best.length - zstdMinMatch)\n\t\t\taddLiterals(&seq, best.s)\n\n\t\t\t// Repeat. If bit 4 is set, this is a non-lit repeat.\n\t\t\tseq.offset = uint32(best.rep & 3)\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", best.s, \"off:\", best.s-best.offset)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Index old s + 1 -> s - 1\n\t\t\ts = best.s + best.length\n\t\t\tnextEmit = s\n\n\t\t\t// Index skipped...\n\t\t\tend := min(s, sLimit+4)\n\t\t\toff := index0 + e.cur\n\t\t\tfor index0 < end {\n\t\t\t\tcv0 := load6432(src, index0)\n\t\t\t\th0 := hashLen(cv0, bestLongTableBits, bestLongLen)\n\t\t\t\th1 := hashLen(cv0, bestShortTableBits, bestShortLen)\n\t\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\t\te.table[h1] = prevEntry{offset: off, prev: e.table[h1].offset}\n\t\t\t\toff++\n\t\t\t\tindex0++\n\t\t\t}\n\n\t\t\tswitch best.rep {\n\t\t\tcase 2, 4 | 1:\n\t\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tcase 3, 4 | 2:\n\t\t\t\toffset1, offset2, offset3 = offset3, offset1, offset2\n\t\t\tcase 4 | 3:\n\t\t\t\toffset1, offset2, offset3 = offset1-1, offset1, offset2\n\t\t\t}\n\t\t\tif s >= sLimit {\n\t\t\t\tif debugEncoder {\n\t\t\t\t\tprintln(\"repeat ended\", s, best.length)\n\t\t\t\t}\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// A 4-byte match has been found. Update recent offsets.\n\t\t// We'll later see if more than 4 bytes.\n\t\tt := best.offset\n\t\toffset1, offset2, offset3 = s-t, offset1, offset2\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tl := best.length\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\n\t\t// Index old s + 1 -> s - 1 or sLimit\n\t\tend := min(s, sLimit-4)\n\n\t\toff := index0 + e.cur\n\t\tfor index0 < end {\n\t\t\tcv0 := load6432(src, index0)\n\t\t\th0 := hashLen(cv0, bestLongTableBits, bestLongLen)\n\t\t\th1 := hashLen(cv0, bestShortTableBits, bestShortLen)\n\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\te.table[h1] = prevEntry{offset: off, prev: e.table[h1].offset}\n\t\t\tindex0++\n\t\t\toff++\n\t\t}\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tblk.recentOffsets[2] = uint32(offset3)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// EncodeNoHist will encode a block with no history and no following blocks.\n// Most notable difference is that src will not be copied for history and\n// we do not need to check for max match length.\nfunc (e *bestFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) {\n\te.ensureHist(len(src))\n\te.Encode(blk, src)\n}\n\n// Reset will reset and set a dictionary if not nil\nfunc (e *bestFastEncoder) Reset(d *dict, singleBlock bool) {\n\te.resetBase(d, singleBlock)\n\tif d == nil {\n\t\treturn\n\t}\n\t// Init or copy dict table\n\tif len(e.dictTable) != len(e.table) || d.id != e.lastDictID {\n\t\tif len(e.dictTable) != len(e.table) {\n\t\t\te.dictTable = make([]prevEntry, len(e.table))\n\t\t}\n\t\tend := int32(len(d.content)) - 8 + e.maxMatchOff\n\t\tfor i := e.maxMatchOff; i < end; i += 4 {\n\t\t\tconst hashLog = bestShortTableBits\n\n\t\t\tcv := load6432(d.content, i-e.maxMatchOff)\n\t\t\tnextHash := hashLen(cv, hashLog, bestShortLen)      // 0 -> 4\n\t\t\tnextHash1 := hashLen(cv>>8, hashLog, bestShortLen)  // 1 -> 5\n\t\t\tnextHash2 := hashLen(cv>>16, hashLog, bestShortLen) // 2 -> 6\n\t\t\tnextHash3 := hashLen(cv>>24, hashLog, bestShortLen) // 3 -> 7\n\t\t\te.dictTable[nextHash] = prevEntry{\n\t\t\t\tprev:   e.dictTable[nextHash].offset,\n\t\t\t\toffset: i,\n\t\t\t}\n\t\t\te.dictTable[nextHash1] = prevEntry{\n\t\t\t\tprev:   e.dictTable[nextHash1].offset,\n\t\t\t\toffset: i + 1,\n\t\t\t}\n\t\t\te.dictTable[nextHash2] = prevEntry{\n\t\t\t\tprev:   e.dictTable[nextHash2].offset,\n\t\t\t\toffset: i + 2,\n\t\t\t}\n\t\t\te.dictTable[nextHash3] = prevEntry{\n\t\t\t\tprev:   e.dictTable[nextHash3].offset,\n\t\t\t\toffset: i + 3,\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t}\n\n\t// Init or copy dict table\n\tif len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID {\n\t\tif len(e.dictLongTable) != len(e.longTable) {\n\t\t\te.dictLongTable = make([]prevEntry, len(e.longTable))\n\t\t}\n\t\tif len(d.content) >= 8 {\n\t\t\tcv := load6432(d.content, 0)\n\t\t\th := hashLen(cv, bestLongTableBits, bestLongLen)\n\t\t\te.dictLongTable[h] = prevEntry{\n\t\t\t\toffset: e.maxMatchOff,\n\t\t\t\tprev:   e.dictLongTable[h].offset,\n\t\t\t}\n\n\t\t\tend := int32(len(d.content)) - 8 + e.maxMatchOff\n\t\t\toff := 8 // First to read\n\t\t\tfor i := e.maxMatchOff + 1; i < end; i++ {\n\t\t\t\tcv = cv>>8 | (uint64(d.content[off]) << 56)\n\t\t\t\th := hashLen(cv, bestLongTableBits, bestLongLen)\n\t\t\t\te.dictLongTable[h] = prevEntry{\n\t\t\t\t\toffset: i,\n\t\t\t\t\tprev:   e.dictLongTable[h].offset,\n\t\t\t\t}\n\t\t\t\toff++\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t}\n\t// Reset table to initial state\n\tcopy(e.longTable[:], e.dictLongTable)\n\n\te.cur = e.maxMatchOff\n\t// Reset table to initial state\n\tcopy(e.table[:], e.dictTable)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/enc_better.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport \"fmt\"\n\nconst (\n\tbetterLongTableBits = 19                       // Bits used in the long match table\n\tbetterLongTableSize = 1 << betterLongTableBits // Size of the table\n\tbetterLongLen       = 8                        // Bytes used for table hash\n\n\t// Note: Increasing the short table bits or making the hash shorter\n\t// can actually lead to compression degradation since it will 'steal' more from the\n\t// long match table and match offsets are quite big.\n\t// This greatly depends on the type of input.\n\tbetterShortTableBits = 13                        // Bits used in the short match table\n\tbetterShortTableSize = 1 << betterShortTableBits // Size of the table\n\tbetterShortLen       = 5                         // Bytes used for table hash\n\n\tbetterLongTableShardCnt  = 1 << (betterLongTableBits - dictShardBits)    // Number of shards in the table\n\tbetterLongTableShardSize = betterLongTableSize / betterLongTableShardCnt // Size of an individual shard\n\n\tbetterShortTableShardCnt  = 1 << (betterShortTableBits - dictShardBits)     // Number of shards in the table\n\tbetterShortTableShardSize = betterShortTableSize / betterShortTableShardCnt // Size of an individual shard\n)\n\ntype prevEntry struct {\n\toffset int32\n\tprev   int32\n}\n\n// betterFastEncoder uses 2 tables, one for short matches (5 bytes) and one for long matches.\n// The long match table contains the previous entry with the same hash,\n// effectively making it a \"chain\" of length 2.\n// When we find a long match we choose between the two values and select the longest.\n// When we find a short match, after checking the long, we check if we can find a long at n+1\n// and that it is longer (lazy matching).\ntype betterFastEncoder struct {\n\tfastBase\n\ttable     [betterShortTableSize]tableEntry\n\tlongTable [betterLongTableSize]prevEntry\n}\n\ntype betterFastEncoderDict struct {\n\tbetterFastEncoder\n\tdictTable            []tableEntry\n\tdictLongTable        []prevEntry\n\tshortTableShardDirty [betterShortTableShardCnt]bool\n\tlongTableShardDirty  [betterLongTableShardCnt]bool\n\tallDirty             bool\n}\n\n// Encode improves compression...\nfunc (e *betterFastEncoder) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 2\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\te.table = [betterShortTableSize]tableEntry{}\n\t\t\te.longTable = [betterLongTableSize]prevEntry{}\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\tv := e.longTable[i].offset\n\t\t\tv2 := e.longTable[i].prev\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t\tv2 = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t\tif v2 < minOff {\n\t\t\t\t\tv2 = 0\n\t\t\t\t} else {\n\t\t\t\t\tv2 = v2 - e.cur + e.maxMatchOff\n\t\t\t\t}\n\t\t\t}\n\t\t\te.longTable[i] = prevEntry{\n\t\t\t\toffset: v,\n\t\t\t\tprev:   v2,\n\t\t\t}\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\t// Add block to history\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\n\t// Check RLE first\n\tif len(src) > zstdMinMatch {\n\t\tml := matchLen(src[1:], src)\n\t\tif ml == len(src)-1 {\n\t\t\tblk.literals = append(blk.literals, src[0])\n\t\t\tblk.sequences = append(blk.sequences, seq{litLen: 1, matchLen: uint32(len(src)-1) - zstdMinMatch, offset: 1 + 3})\n\t\t\treturn\n\t\t}\n\t}\n\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 1.\n\tconst stepSize = 1\n\n\tconst kSearchStrength = 9\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\tvar t int32\n\t\t// We allow the encoder to optionally turn off repeat offsets across blocks\n\t\tcanRepeat := len(blk.sequences) > 2\n\t\tvar matched, index0 int32\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHashL := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\tnextHashS := hashLen(cv, betterShortTableBits, betterShortLen)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcandidateS := e.table[nextHashS]\n\n\t\t\tconst repOff = 1\n\t\t\trepIndex := s - offset1 + repOff\n\t\t\toff := s + e.cur\n\t\t\te.longTable[nextHashL] = prevEntry{offset: off, prev: candidateL.offset}\n\t\t\te.table[nextHashS] = tableEntry{offset: off, val: uint32(cv)}\n\t\t\tindex0 = s + 1\n\n\t\t\tif canRepeat {\n\t\t\t\tif repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 4 + e.matchlen(s+4+repOff, repIndex+4, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 0\n\t\t\t\t\tseq.offset = 1\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t\t\t// Index match start+1 (long) -> s - 1\n\t\t\t\t\tindex0 := s + repOff\n\t\t\t\t\ts += length + repOff\n\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\t\t\t\t\t// Index skipped...\n\t\t\t\t\tfor index0 < s-1 {\n\t\t\t\t\t\tcv0 := load6432(src, index0)\n\t\t\t\t\t\tcv1 := cv0 >> 8\n\t\t\t\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\t\t\t\toff := index0 + e.cur\n\t\t\t\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\t\t\t\te.table[hashLen(cv1, betterShortTableBits, betterShortLen)] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\t\t\t\tindex0 += 2\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst repOff2 = 1\n\n\t\t\t\t// We deviate from the reference encoder and also check offset 2.\n\t\t\t\t// Still slower and not much better, so disabled.\n\t\t\t\t// repIndex = s - offset2 + repOff2\n\t\t\t\tif false && repIndex >= 0 && load6432(src, repIndex) == load6432(src, s+repOff) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 8 + e.matchlen(s+8+repOff2, repIndex+8, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff2\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 2\n\t\t\t\t\tseq.offset = 2\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence 2\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t\t\ts += length + repOff2\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\n\t\t\t\t\t// Index skipped...\n\t\t\t\t\tfor index0 < s-1 {\n\t\t\t\t\t\tcv0 := load6432(src, index0)\n\t\t\t\t\t\tcv1 := cv0 >> 8\n\t\t\t\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\t\t\t\toff := index0 + e.cur\n\t\t\t\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\t\t\t\te.table[hashLen(cv1, betterShortTableBits, betterShortLen)] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\t\t\t\tindex0 += 2\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\t// Swap offsets\n\t\t\t\t\toffset1, offset2 = offset2, offset1\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the offsets of our two matches.\n\t\t\tcoffsetL := candidateL.offset - e.cur\n\t\t\tcoffsetLP := candidateL.prev - e.cur\n\n\t\t\t// Check if we have a long match.\n\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\tmatched = e.matchlen(s+8, coffsetL+8, src) + 8\n\t\t\t\tt = coffsetL\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\n\t\t\t\tif s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tprevMatch := e.matchlen(s+8, coffsetLP+8, src) + 8\n\t\t\t\t\tif prevMatch > matched {\n\t\t\t\t\t\tmatched = prevMatch\n\t\t\t\t\t\tt = coffsetLP\n\t\t\t\t\t}\n\t\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t\t}\n\t\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t\t}\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we have a long match on prev.\n\t\t\tif s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) {\n\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\tmatched = e.matchlen(s+8, coffsetLP+8, src) + 8\n\t\t\t\tt = coffsetLP\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcoffsetS := candidateS.offset - e.cur\n\n\t\t\t// Check if we have a short match.\n\t\t\tif s-coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val {\n\t\t\t\t// found a regular match\n\t\t\t\tmatched = e.matchlen(s+4, coffsetS+4, src) + 4\n\n\t\t\t\t// See if we can find a long match at s+1\n\t\t\t\tconst checkAt = 1\n\t\t\t\tcv := load6432(src, s+checkAt)\n\t\t\t\tnextHashL = hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\t\tcandidateL = e.longTable[nextHashL]\n\t\t\t\tcoffsetL = candidateL.offset - e.cur\n\n\t\t\t\t// We can store it, since we have at least a 4 byte match.\n\t\t\t\te.longTable[nextHashL] = prevEntry{offset: s + checkAt + e.cur, prev: candidateL.offset}\n\t\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\ts += checkAt\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"long match (after short)\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check prev long...\n\t\t\t\tcoffsetL = candidateL.prev - e.cur\n\t\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\ts += checkAt\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"prev long match (after short)\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt = coffsetS\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"short match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// No match found, move forward in input.\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\n\t\t// Try to find a better match by searching for a long match at the end of the current best match\n\t\tif s+matched < sLimit {\n\t\t\t// Allow some bytes at the beginning to mismatch.\n\t\t\t// Sweet spot is around 3 bytes, but depends on input.\n\t\t\t// The skipped bytes are tested in Extend backwards,\n\t\t\t// and still picked up as part of the match if they do.\n\t\t\tconst skipBeginning = 3\n\n\t\t\tnextHashL := hashLen(load6432(src, s+matched), betterLongTableBits, betterLongLen)\n\t\t\ts2 := s + skipBeginning\n\t\t\tcv := load3232(src, s2)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcoffsetL := candidateL.offset - e.cur - matched + skipBeginning\n\t\t\tif coffsetL >= 0 && coffsetL < s2 && s2-coffsetL < e.maxMatchOff && cv == load3232(src, coffsetL) {\n\t\t\t\t// Found a long match, at least 4 bytes.\n\t\t\t\tmatchedNext := e.matchlen(s2+4, coffsetL+4, src) + 4\n\t\t\t\tif matchedNext > matched {\n\t\t\t\t\tt = coffsetL\n\t\t\t\t\ts = s2\n\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match at end-of-match\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check prev long...\n\t\t\tif true {\n\t\t\t\tcoffsetL = candidateL.prev - e.cur - matched + skipBeginning\n\t\t\t\tif coffsetL >= 0 && coffsetL < s2 && s2-coffsetL < e.maxMatchOff && cv == load3232(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 4 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s2+4, coffsetL+4, src) + 4\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\ts = s2\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"prev long match at end-of-match\")\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\t\t// A match has been found. Update recent offsets.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the n-byte match as long as possible.\n\t\tl := matched\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\n\t\t// Index match start+1 (long) -> s - 1\n\t\toff := index0 + e.cur\n\t\tfor index0 < s-1 {\n\t\t\tcv0 := load6432(src, index0)\n\t\t\tcv1 := cv0 >> 8\n\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\te.table[hashLen(cv1, betterShortTableBits, betterShortLen)] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\tindex0 += 2\n\t\t\toff += 2\n\t\t}\n\n\t\tcv = load6432(src, s)\n\t\tif !canRepeat {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check offset 2\n\t\tfor {\n\t\t\to2 := s - offset2\n\t\t\tif load3232(src, o2) != uint32(cv) {\n\t\t\t\t// Do regular search\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHashL := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\tnextHashS := hashLen(cv, betterShortTableBits, betterShortLen)\n\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\te.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: e.longTable[nextHashL].offset}\n\t\t\te.table[nextHashS] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\t// Finished\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// EncodeNoHist will encode a block with no history and no following blocks.\n// Most notable difference is that src will not be copied for history and\n// we do not need to check for max match length.\nfunc (e *betterFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) {\n\te.ensureHist(len(src))\n\te.Encode(blk, src)\n}\n\n// Encode improves compression...\nfunc (e *betterFastEncoderDict) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 2\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\tfor i := range e.table[:] {\n\t\t\t\te.table[i] = tableEntry{}\n\t\t\t}\n\t\t\tfor i := range e.longTable[:] {\n\t\t\t\te.longTable[i] = prevEntry{}\n\t\t\t}\n\t\t\te.cur = e.maxMatchOff\n\t\t\te.allDirty = true\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\tv := e.longTable[i].offset\n\t\t\tv2 := e.longTable[i].prev\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t\tv2 = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t\tif v2 < minOff {\n\t\t\t\t\tv2 = 0\n\t\t\t\t} else {\n\t\t\t\t\tv2 = v2 - e.cur + e.maxMatchOff\n\t\t\t\t}\n\t\t\t}\n\t\t\te.longTable[i] = prevEntry{\n\t\t\t\toffset: v,\n\t\t\t\tprev:   v2,\n\t\t\t}\n\t\t}\n\t\te.allDirty = true\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 1.\n\tconst stepSize = 1\n\n\tconst kSearchStrength = 9\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\tvar t int32\n\t\t// We allow the encoder to optionally turn off repeat offsets across blocks\n\t\tcanRepeat := len(blk.sequences) > 2\n\t\tvar matched, index0 int32\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHashL := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\tnextHashS := hashLen(cv, betterShortTableBits, betterShortLen)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcandidateS := e.table[nextHashS]\n\n\t\t\tconst repOff = 1\n\t\t\trepIndex := s - offset1 + repOff\n\t\t\toff := s + e.cur\n\t\t\te.longTable[nextHashL] = prevEntry{offset: off, prev: candidateL.offset}\n\t\t\te.markLongShardDirty(nextHashL)\n\t\t\te.table[nextHashS] = tableEntry{offset: off, val: uint32(cv)}\n\t\t\te.markShortShardDirty(nextHashS)\n\t\t\tindex0 = s + 1\n\n\t\t\tif canRepeat {\n\t\t\t\tif repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 4 + e.matchlen(s+4+repOff, repIndex+4, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 0\n\t\t\t\t\tseq.offset = 1\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t\t\t// Index match start+1 (long) -> s - 1\n\t\t\t\t\ts += length + repOff\n\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\t\t\t\t\t// Index skipped...\n\t\t\t\t\tfor index0 < s-1 {\n\t\t\t\t\t\tcv0 := load6432(src, index0)\n\t\t\t\t\t\tcv1 := cv0 >> 8\n\t\t\t\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\t\t\t\toff := index0 + e.cur\n\t\t\t\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\t\t\t\te.markLongShardDirty(h0)\n\t\t\t\t\t\th1 := hashLen(cv1, betterShortTableBits, betterShortLen)\n\t\t\t\t\t\te.table[h1] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\t\t\t\te.markShortShardDirty(h1)\n\t\t\t\t\t\tindex0 += 2\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst repOff2 = 1\n\n\t\t\t\t// We deviate from the reference encoder and also check offset 2.\n\t\t\t\t// Still slower and not much better, so disabled.\n\t\t\t\t// repIndex = s - offset2 + repOff2\n\t\t\t\tif false && repIndex >= 0 && load6432(src, repIndex) == load6432(src, s+repOff) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 8 + e.matchlen(s+8+repOff2, repIndex+8, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff2\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 2\n\t\t\t\t\tseq.offset = 2\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence 2\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t\t\ts += length + repOff2\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\n\t\t\t\t\t// Index skipped...\n\t\t\t\t\tfor index0 < s-1 {\n\t\t\t\t\t\tcv0 := load6432(src, index0)\n\t\t\t\t\t\tcv1 := cv0 >> 8\n\t\t\t\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\t\t\t\toff := index0 + e.cur\n\t\t\t\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\t\t\t\te.markLongShardDirty(h0)\n\t\t\t\t\t\th1 := hashLen(cv1, betterShortTableBits, betterShortLen)\n\t\t\t\t\t\te.table[h1] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\t\t\t\te.markShortShardDirty(h1)\n\t\t\t\t\t\tindex0 += 2\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\t// Swap offsets\n\t\t\t\t\toffset1, offset2 = offset2, offset1\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the offsets of our two matches.\n\t\t\tcoffsetL := candidateL.offset - e.cur\n\t\t\tcoffsetLP := candidateL.prev - e.cur\n\n\t\t\t// Check if we have a long match.\n\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\tmatched = e.matchlen(s+8, coffsetL+8, src) + 8\n\t\t\t\tt = coffsetL\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\n\t\t\t\tif s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tprevMatch := e.matchlen(s+8, coffsetLP+8, src) + 8\n\t\t\t\t\tif prevMatch > matched {\n\t\t\t\t\t\tmatched = prevMatch\n\t\t\t\t\t\tt = coffsetLP\n\t\t\t\t\t}\n\t\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t\t}\n\t\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t\t}\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we have a long match on prev.\n\t\t\tif s-coffsetLP < e.maxMatchOff && cv == load6432(src, coffsetLP) {\n\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\tmatched = e.matchlen(s+8, coffsetLP+8, src) + 8\n\t\t\t\tt = coffsetLP\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcoffsetS := candidateS.offset - e.cur\n\n\t\t\t// Check if we have a short match.\n\t\t\tif s-coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val {\n\t\t\t\t// found a regular match\n\t\t\t\tmatched = e.matchlen(s+4, coffsetS+4, src) + 4\n\n\t\t\t\t// See if we can find a long match at s+1\n\t\t\t\tconst checkAt = 1\n\t\t\t\tcv := load6432(src, s+checkAt)\n\t\t\t\tnextHashL = hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\t\tcandidateL = e.longTable[nextHashL]\n\t\t\t\tcoffsetL = candidateL.offset - e.cur\n\n\t\t\t\t// We can store it, since we have at least a 4 byte match.\n\t\t\t\te.longTable[nextHashL] = prevEntry{offset: s + checkAt + e.cur, prev: candidateL.offset}\n\t\t\t\te.markLongShardDirty(nextHashL)\n\t\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\ts += checkAt\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"long match (after short)\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check prev long...\n\t\t\t\tcoffsetL = candidateL.prev - e.cur\n\t\t\t\tif s-coffsetL < e.maxMatchOff && cv == load6432(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 8 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s+8+checkAt, coffsetL+8, src) + 8\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\ts += checkAt\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"prev long match (after short)\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt = coffsetS\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"short match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// No match found, move forward in input.\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t\t// Try to find a better match by searching for a long match at the end of the current best match\n\t\tif s+matched < sLimit {\n\t\t\tnextHashL := hashLen(load6432(src, s+matched), betterLongTableBits, betterLongLen)\n\t\t\tcv := load3232(src, s)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcoffsetL := candidateL.offset - e.cur - matched\n\t\t\tif coffsetL >= 0 && coffsetL < s && s-coffsetL < e.maxMatchOff && cv == load3232(src, coffsetL) {\n\t\t\t\t// Found a long match, at least 4 bytes.\n\t\t\t\tmatchedNext := e.matchlen(s+4, coffsetL+4, src) + 4\n\t\t\t\tif matchedNext > matched {\n\t\t\t\t\tt = coffsetL\n\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match at end-of-match\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check prev long...\n\t\t\tif true {\n\t\t\t\tcoffsetL = candidateL.prev - e.cur - matched\n\t\t\t\tif coffsetL >= 0 && coffsetL < s && s-coffsetL < e.maxMatchOff && cv == load3232(src, coffsetL) {\n\t\t\t\t\t// Found a long match, at least 4 bytes.\n\t\t\t\t\tmatchedNext := e.matchlen(s+4, coffsetL+4, src) + 4\n\t\t\t\t\tif matchedNext > matched {\n\t\t\t\t\t\tt = coffsetL\n\t\t\t\t\t\tmatched = matchedNext\n\t\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\t\tprintln(\"prev long match at end-of-match\")\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\t\t// A match has been found. Update recent offsets.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the n-byte match as long as possible.\n\t\tl := matched\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\n\t\t// Index match start+1 (long) -> s - 1\n\t\toff := index0 + e.cur\n\t\tfor index0 < s-1 {\n\t\t\tcv0 := load6432(src, index0)\n\t\t\tcv1 := cv0 >> 8\n\t\t\th0 := hashLen(cv0, betterLongTableBits, betterLongLen)\n\t\t\te.longTable[h0] = prevEntry{offset: off, prev: e.longTable[h0].offset}\n\t\t\te.markLongShardDirty(h0)\n\t\t\th1 := hashLen(cv1, betterShortTableBits, betterShortLen)\n\t\t\te.table[h1] = tableEntry{offset: off + 1, val: uint32(cv1)}\n\t\t\te.markShortShardDirty(h1)\n\t\t\tindex0 += 2\n\t\t\toff += 2\n\t\t}\n\n\t\tcv = load6432(src, s)\n\t\tif !canRepeat {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check offset 2\n\t\tfor {\n\t\t\to2 := s - offset2\n\t\t\tif load3232(src, o2) != uint32(cv) {\n\t\t\t\t// Do regular search\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHashL := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\tnextHashS := hashLen(cv, betterShortTableBits, betterShortLen)\n\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\te.longTable[nextHashL] = prevEntry{offset: s + e.cur, prev: e.longTable[nextHashL].offset}\n\t\t\te.markLongShardDirty(nextHashL)\n\t\t\te.table[nextHashS] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.markShortShardDirty(nextHashS)\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\t// Finished\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *betterFastEncoder) Reset(d *dict, singleBlock bool) {\n\te.resetBase(d, singleBlock)\n\tif d != nil {\n\t\tpanic(\"betterFastEncoder: Reset with dict\")\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *betterFastEncoderDict) Reset(d *dict, singleBlock bool) {\n\te.resetBase(d, singleBlock)\n\tif d == nil {\n\t\treturn\n\t}\n\t// Init or copy dict table\n\tif len(e.dictTable) != len(e.table) || d.id != e.lastDictID {\n\t\tif len(e.dictTable) != len(e.table) {\n\t\t\te.dictTable = make([]tableEntry, len(e.table))\n\t\t}\n\t\tend := int32(len(d.content)) - 8 + e.maxMatchOff\n\t\tfor i := e.maxMatchOff; i < end; i += 4 {\n\t\t\tconst hashLog = betterShortTableBits\n\n\t\t\tcv := load6432(d.content, i-e.maxMatchOff)\n\t\t\tnextHash := hashLen(cv, hashLog, betterShortLen)      // 0 -> 4\n\t\t\tnextHash1 := hashLen(cv>>8, hashLog, betterShortLen)  // 1 -> 5\n\t\t\tnextHash2 := hashLen(cv>>16, hashLog, betterShortLen) // 2 -> 6\n\t\t\tnextHash3 := hashLen(cv>>24, hashLog, betterShortLen) // 3 -> 7\n\t\t\te.dictTable[nextHash] = tableEntry{\n\t\t\t\tval:    uint32(cv),\n\t\t\t\toffset: i,\n\t\t\t}\n\t\t\te.dictTable[nextHash1] = tableEntry{\n\t\t\t\tval:    uint32(cv >> 8),\n\t\t\t\toffset: i + 1,\n\t\t\t}\n\t\t\te.dictTable[nextHash2] = tableEntry{\n\t\t\t\tval:    uint32(cv >> 16),\n\t\t\t\toffset: i + 2,\n\t\t\t}\n\t\t\te.dictTable[nextHash3] = tableEntry{\n\t\t\t\tval:    uint32(cv >> 24),\n\t\t\t\toffset: i + 3,\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t\te.allDirty = true\n\t}\n\n\t// Init or copy dict table\n\tif len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID {\n\t\tif len(e.dictLongTable) != len(e.longTable) {\n\t\t\te.dictLongTable = make([]prevEntry, len(e.longTable))\n\t\t}\n\t\tif len(d.content) >= 8 {\n\t\t\tcv := load6432(d.content, 0)\n\t\t\th := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\te.dictLongTable[h] = prevEntry{\n\t\t\t\toffset: e.maxMatchOff,\n\t\t\t\tprev:   e.dictLongTable[h].offset,\n\t\t\t}\n\n\t\t\tend := int32(len(d.content)) - 8 + e.maxMatchOff\n\t\t\toff := 8 // First to read\n\t\t\tfor i := e.maxMatchOff + 1; i < end; i++ {\n\t\t\t\tcv = cv>>8 | (uint64(d.content[off]) << 56)\n\t\t\t\th := hashLen(cv, betterLongTableBits, betterLongLen)\n\t\t\t\te.dictLongTable[h] = prevEntry{\n\t\t\t\t\toffset: i,\n\t\t\t\t\tprev:   e.dictLongTable[h].offset,\n\t\t\t\t}\n\t\t\t\toff++\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t\te.allDirty = true\n\t}\n\n\t// Reset table to initial state\n\t{\n\t\tdirtyShardCnt := 0\n\t\tif !e.allDirty {\n\t\t\tfor i := range e.shortTableShardDirty {\n\t\t\t\tif e.shortTableShardDirty[i] {\n\t\t\t\t\tdirtyShardCnt++\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst shardCnt = betterShortTableShardCnt\n\t\tconst shardSize = betterShortTableShardSize\n\t\tif e.allDirty || dirtyShardCnt > shardCnt*4/6 {\n\t\t\tcopy(e.table[:], e.dictTable)\n\t\t\tfor i := range e.shortTableShardDirty {\n\t\t\t\te.shortTableShardDirty[i] = false\n\t\t\t}\n\t\t} else {\n\t\t\tfor i := range e.shortTableShardDirty {\n\t\t\t\tif !e.shortTableShardDirty[i] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tcopy(e.table[i*shardSize:(i+1)*shardSize], e.dictTable[i*shardSize:(i+1)*shardSize])\n\t\t\t\te.shortTableShardDirty[i] = false\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tdirtyShardCnt := 0\n\t\tif !e.allDirty {\n\t\t\tfor i := range e.shortTableShardDirty {\n\t\t\t\tif e.shortTableShardDirty[i] {\n\t\t\t\t\tdirtyShardCnt++\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst shardCnt = betterLongTableShardCnt\n\t\tconst shardSize = betterLongTableShardSize\n\t\tif e.allDirty || dirtyShardCnt > shardCnt*4/6 {\n\t\t\tcopy(e.longTable[:], e.dictLongTable)\n\t\t\tfor i := range e.longTableShardDirty {\n\t\t\t\te.longTableShardDirty[i] = false\n\t\t\t}\n\t\t} else {\n\t\t\tfor i := range e.longTableShardDirty {\n\t\t\t\tif !e.longTableShardDirty[i] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tcopy(e.longTable[i*shardSize:(i+1)*shardSize], e.dictLongTable[i*shardSize:(i+1)*shardSize])\n\t\t\t\te.longTableShardDirty[i] = false\n\t\t\t}\n\t\t}\n\t}\n\te.cur = e.maxMatchOff\n\te.allDirty = false\n}\n\nfunc (e *betterFastEncoderDict) markLongShardDirty(entryNum uint32) {\n\te.longTableShardDirty[entryNum/betterLongTableShardSize] = true\n}\n\nfunc (e *betterFastEncoderDict) markShortShardDirty(entryNum uint32) {\n\te.shortTableShardDirty[entryNum/betterShortTableShardSize] = true\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/enc_dfast.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport \"fmt\"\n\nconst (\n\tdFastLongTableBits = 17                      // Bits used in the long match table\n\tdFastLongTableSize = 1 << dFastLongTableBits // Size of the table\n\tdFastLongTableMask = dFastLongTableSize - 1  // Mask for table indices. Redundant, but can eliminate bounds checks.\n\tdFastLongLen       = 8                       // Bytes used for table hash\n\n\tdLongTableShardCnt  = 1 << (dFastLongTableBits - dictShardBits) // Number of shards in the table\n\tdLongTableShardSize = dFastLongTableSize / dLongTableShardCnt   // Size of an individual shard\n\n\tdFastShortTableBits = tableBits                // Bits used in the short match table\n\tdFastShortTableSize = 1 << dFastShortTableBits // Size of the table\n\tdFastShortTableMask = dFastShortTableSize - 1  // Mask for table indices. Redundant, but can eliminate bounds checks.\n\tdFastShortLen       = 5                        // Bytes used for table hash\n\n)\n\ntype doubleFastEncoder struct {\n\tfastEncoder\n\tlongTable [dFastLongTableSize]tableEntry\n}\n\ntype doubleFastEncoderDict struct {\n\tfastEncoderDict\n\tlongTable           [dFastLongTableSize]tableEntry\n\tdictLongTable       []tableEntry\n\tlongTableShardDirty [dLongTableShardCnt]bool\n}\n\n// Encode mimmics functionality in zstd_dfast.c\nfunc (e *doubleFastEncoder) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 2\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\te.table = [dFastShortTableSize]tableEntry{}\n\t\t\te.longTable = [dFastLongTableSize]tableEntry{}\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\tv := e.longTable[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.longTable[i].offset = v\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 1.\n\tconst stepSize = 1\n\n\tconst kSearchStrength = 8\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\tvar t int32\n\t\t// We allow the encoder to optionally turn off repeat offsets across blocks\n\t\tcanRepeat := len(blk.sequences) > 2\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\tnextHashS := hashLen(cv, dFastShortTableBits, dFastShortLen)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcandidateS := e.table[nextHashS]\n\n\t\t\tconst repOff = 1\n\t\t\trepIndex := s - offset1 + repOff\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.table[nextHashS] = entry\n\n\t\t\tif canRepeat {\n\t\t\t\tif repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 4 + e.matchlen(s+4+repOff, repIndex+4, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 0\n\t\t\t\t\tseq.offset = 1\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\t\ts += length + repOff\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the offsets of our two matches.\n\t\t\tcoffsetL := s - (candidateL.offset - e.cur)\n\t\t\tcoffsetS := s - (candidateS.offset - e.cur)\n\n\t\t\t// Check if we have a long match.\n\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we have a short match.\n\t\t\tif coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val {\n\t\t\t\t// found a regular match\n\t\t\t\t// See if we can find a long match at s+1\n\t\t\t\tconst checkAt = 1\n\t\t\t\tcv := load6432(src, s+checkAt)\n\t\t\t\tnextHashL = hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\t\tcandidateL = e.longTable[nextHashL]\n\t\t\t\tcoffsetL = s - (candidateL.offset - e.cur) + checkAt\n\n\t\t\t\t// We can store it, since we have at least a 4 byte match.\n\t\t\t\te.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)}\n\t\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\t\ts += checkAt\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match (after short)\")\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tt = candidateS.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"short match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// No match found, move forward in input.\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\n\t\t// A 4-byte match has been found. Update recent offsets.\n\t\t// We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the 4-byte match as long as possible.\n\t\tl := e.matchlen(s+4, t+4, src) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\n\t\t// Index match start+1 (long) and start+2 (short)\n\t\tindex0 := s - l + 1\n\t\t// Index match end-2 (long) and end-1 (short)\n\t\tindex1 := s - 2\n\n\t\tcv0 := load6432(src, index0)\n\t\tcv1 := load6432(src, index1)\n\t\tte0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)}\n\t\tte1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)}\n\t\te.longTable[hashLen(cv0, dFastLongTableBits, dFastLongLen)] = te0\n\t\te.longTable[hashLen(cv1, dFastLongTableBits, dFastLongLen)] = te1\n\t\tcv0 >>= 8\n\t\tcv1 >>= 8\n\t\tte0.offset++\n\t\tte1.offset++\n\t\tte0.val = uint32(cv0)\n\t\tte1.val = uint32(cv1)\n\t\te.table[hashLen(cv0, dFastShortTableBits, dFastShortLen)] = te0\n\t\te.table[hashLen(cv1, dFastShortTableBits, dFastShortLen)] = te1\n\n\t\tcv = load6432(src, s)\n\n\t\tif !canRepeat {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check offset 2\n\t\tfor {\n\t\t\to2 := s - offset2\n\t\t\tif load3232(src, o2) != uint32(cv) {\n\t\t\t\t// Do regular search\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHashS := hashLen(cv, dFastShortTableBits, dFastShortLen)\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.table[nextHashS] = entry\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\t// Finished\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// EncodeNoHist will encode a block with no history and no following blocks.\n// Most notable difference is that src will not be copied for history and\n// we do not need to check for max match length.\nfunc (e *doubleFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 2\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tif e.cur >= e.bufferReset {\n\t\tfor i := range e.table[:] {\n\t\t\te.table[i] = tableEntry{}\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\te.longTable[i] = tableEntry{}\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t}\n\n\ts := int32(0)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 1.\n\tconst stepSize = 1\n\n\tconst kSearchStrength = 8\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\tvar t int32\n\t\tfor {\n\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\tnextHashS := hashLen(cv, dFastShortTableBits, dFastShortLen)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcandidateS := e.table[nextHashS]\n\n\t\t\tconst repOff = 1\n\t\t\trepIndex := s - offset1 + repOff\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.table[nextHashS] = entry\n\n\t\t\tif len(blk.sequences) > 2 {\n\t\t\t\tif load3232(src, repIndex) == uint32(cv>>(repOff*8)) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\t//length := 4 + e.matchlen(s+4+repOff, repIndex+4, src)\n\t\t\t\t\tlength := 4 + int32(matchLen(src[s+4+repOff:], src[repIndex+4:]))\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 0\n\t\t\t\t\tseq.offset = 1\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\t\ts += length + repOff\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the offsets of our two matches.\n\t\t\tcoffsetL := s - (candidateL.offset - e.cur)\n\t\t\tcoffsetS := s - (candidateS.offset - e.cur)\n\n\t\t\t// Check if we have a long match.\n\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d). cur: %d\", s, t, e.cur))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we have a short match.\n\t\t\tif coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val {\n\t\t\t\t// found a regular match\n\t\t\t\t// See if we can find a long match at s+1\n\t\t\t\tconst checkAt = 1\n\t\t\t\tcv := load6432(src, s+checkAt)\n\t\t\t\tnextHashL = hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\t\tcandidateL = e.longTable[nextHashL]\n\t\t\t\tcoffsetL = s - (candidateL.offset - e.cur) + checkAt\n\n\t\t\t\t// We can store it, since we have at least a 4 byte match.\n\t\t\t\te.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)}\n\t\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\t\ts += checkAt\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match (after short)\")\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tt = candidateS.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"short match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// No match found, move forward in input.\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\n\t\t// A 4-byte match has been found. Update recent offsets.\n\t\t// We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\t// Extend the 4-byte match as long as possible.\n\t\t//l := e.matchlen(s+4, t+4, src) + 4\n\t\tl := int32(matchLen(src[s+4:], src[t+4:])) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\n\t\t// Index match start+1 (long) and start+2 (short)\n\t\tindex0 := s - l + 1\n\t\t// Index match end-2 (long) and end-1 (short)\n\t\tindex1 := s - 2\n\n\t\tcv0 := load6432(src, index0)\n\t\tcv1 := load6432(src, index1)\n\t\tte0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)}\n\t\tte1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)}\n\t\te.longTable[hashLen(cv0, dFastLongTableBits, dFastLongLen)] = te0\n\t\te.longTable[hashLen(cv1, dFastLongTableBits, dFastLongLen)] = te1\n\t\tcv0 >>= 8\n\t\tcv1 >>= 8\n\t\tte0.offset++\n\t\tte1.offset++\n\t\tte0.val = uint32(cv0)\n\t\tte1.val = uint32(cv1)\n\t\te.table[hashLen(cv0, dFastShortTableBits, dFastShortLen)] = te0\n\t\te.table[hashLen(cv1, dFastShortTableBits, dFastShortLen)] = te1\n\n\t\tcv = load6432(src, s)\n\n\t\tif len(blk.sequences) <= 2 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check offset 2\n\t\tfor {\n\t\t\to2 := s - offset2\n\t\t\tif load3232(src, o2) != uint32(cv) {\n\t\t\t\t// Do regular search\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHashS := hashLen(cv1>>8, dFastShortTableBits, dFastShortLen)\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\t//l := 4 + e.matchlen(s+4, o2+4, src)\n\t\t\tl := 4 + int32(matchLen(src[s+4:], src[o2+4:]))\n\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.table[nextHashS] = entry\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\t// Finished\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n\n\t// We do not store history, so we must offset e.cur to avoid false matches for next user.\n\tif e.cur < e.bufferReset {\n\t\te.cur += int32(len(src))\n\t}\n}\n\n// Encode will encode the content, with a dictionary if initialized for it.\nfunc (e *doubleFastEncoderDict) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\t// Input margin is the number of bytes we read (8)\n\t\t// and the maximum we will read ahead (2)\n\t\tinputMargin            = 8 + 2\n\t\tminNonLiteralBlockSize = 16\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\tfor i := range e.table[:] {\n\t\t\t\te.table[i] = tableEntry{}\n\t\t\t}\n\t\t\tfor i := range e.longTable[:] {\n\t\t\t\te.longTable[i] = tableEntry{}\n\t\t\t}\n\t\t\te.markAllShardsDirty()\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\tfor i := range e.longTable[:] {\n\t\t\tv := e.longTable[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.longTable[i].offset = v\n\t\t}\n\t\te.markAllShardsDirty()\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 1.\n\tconst stepSize = 1\n\n\tconst kSearchStrength = 8\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\tvar t int32\n\t\t// We allow the encoder to optionally turn off repeat offsets across blocks\n\t\tcanRepeat := len(blk.sequences) > 2\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\tnextHashS := hashLen(cv, dFastShortTableBits, dFastShortLen)\n\t\t\tcandidateL := e.longTable[nextHashL]\n\t\t\tcandidateS := e.table[nextHashS]\n\n\t\t\tconst repOff = 1\n\t\t\trepIndex := s - offset1 + repOff\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.markLongShardDirty(nextHashL)\n\t\t\te.table[nextHashS] = entry\n\t\t\te.markShardDirty(nextHashS)\n\n\t\t\tif canRepeat {\n\t\t\t\tif repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>(repOff*8)) {\n\t\t\t\t\t// Consider history as well.\n\t\t\t\t\tvar seq seq\n\t\t\t\t\tlength := 4 + e.matchlen(s+4+repOff, repIndex+4, src)\n\n\t\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t\t// We might be able to match backwards.\n\t\t\t\t\t// Extend as long as we can.\n\t\t\t\t\tstart := s + repOff\n\t\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t\t// and have to do special offset treatment.\n\t\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\t\t\t\tfor repIndex > tMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch-1 {\n\t\t\t\t\t\trepIndex--\n\t\t\t\t\t\tstart--\n\t\t\t\t\t\tseq.matchLen++\n\t\t\t\t\t}\n\t\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t\t// rep 0\n\t\t\t\t\tseq.offset = 1\n\t\t\t\t\tif debugSequences {\n\t\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t\t}\n\t\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\t\ts += length + repOff\n\t\t\t\t\tnextEmit = s\n\t\t\t\t\tif s >= sLimit {\n\t\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak encodeLoop\n\t\t\t\t\t}\n\t\t\t\t\tcv = load6432(src, s)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the offsets of our two matches.\n\t\t\tcoffsetL := s - (candidateL.offset - e.cur)\n\t\t\tcoffsetS := s - (candidateS.offset - e.cur)\n\n\t\t\t// Check if we have a long match.\n\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"long match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we have a short match.\n\t\t\tif coffsetS < e.maxMatchOff && uint32(cv) == candidateS.val {\n\t\t\t\t// found a regular match\n\t\t\t\t// See if we can find a long match at s+1\n\t\t\t\tconst checkAt = 1\n\t\t\t\tcv := load6432(src, s+checkAt)\n\t\t\t\tnextHashL = hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\t\tcandidateL = e.longTable[nextHashL]\n\t\t\t\tcoffsetL = s - (candidateL.offset - e.cur) + checkAt\n\n\t\t\t\t// We can store it, since we have at least a 4 byte match.\n\t\t\t\te.longTable[nextHashL] = tableEntry{offset: s + checkAt + e.cur, val: uint32(cv)}\n\t\t\t\te.markLongShardDirty(nextHashL)\n\t\t\t\tif coffsetL < e.maxMatchOff && uint32(cv) == candidateL.val {\n\t\t\t\t\t// Found a long match, likely at least 8 bytes.\n\t\t\t\t\t// Reference encoder checks all 8 bytes, we only check 4,\n\t\t\t\t\t// but the likelihood of both the first 4 bytes and the hash matching should be enough.\n\t\t\t\t\tt = candidateL.offset - e.cur\n\t\t\t\t\ts += checkAt\n\t\t\t\t\tif debugMatches {\n\t\t\t\t\t\tprintln(\"long match (after short)\")\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tt = candidateS.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tif debugMatches {\n\t\t\t\t\tprintln(\"short match\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// No match found, move forward in input.\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\n\t\t// A 4-byte match has been found. Update recent offsets.\n\t\t// We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the 4-byte match as long as possible.\n\t\tl := e.matchlen(s+4, t+4, src) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\n\t\t// Index match start+1 (long) and start+2 (short)\n\t\tindex0 := s - l + 1\n\t\t// Index match end-2 (long) and end-1 (short)\n\t\tindex1 := s - 2\n\n\t\tcv0 := load6432(src, index0)\n\t\tcv1 := load6432(src, index1)\n\t\tte0 := tableEntry{offset: index0 + e.cur, val: uint32(cv0)}\n\t\tte1 := tableEntry{offset: index1 + e.cur, val: uint32(cv1)}\n\t\tlongHash1 := hashLen(cv0, dFastLongTableBits, dFastLongLen)\n\t\tlongHash2 := hashLen(cv1, dFastLongTableBits, dFastLongLen)\n\t\te.longTable[longHash1] = te0\n\t\te.longTable[longHash2] = te1\n\t\te.markLongShardDirty(longHash1)\n\t\te.markLongShardDirty(longHash2)\n\t\tcv0 >>= 8\n\t\tcv1 >>= 8\n\t\tte0.offset++\n\t\tte1.offset++\n\t\tte0.val = uint32(cv0)\n\t\tte1.val = uint32(cv1)\n\t\thashVal1 := hashLen(cv0, dFastShortTableBits, dFastShortLen)\n\t\thashVal2 := hashLen(cv1, dFastShortTableBits, dFastShortLen)\n\t\te.table[hashVal1] = te0\n\t\te.markShardDirty(hashVal1)\n\t\te.table[hashVal2] = te1\n\t\te.markShardDirty(hashVal2)\n\n\t\tcv = load6432(src, s)\n\n\t\tif !canRepeat {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check offset 2\n\t\tfor {\n\t\t\to2 := s - offset2\n\t\t\tif load3232(src, o2) != uint32(cv) {\n\t\t\t\t// Do regular search\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHashL := hashLen(cv, dFastLongTableBits, dFastLongLen)\n\t\t\tnextHashS := hashLen(cv, dFastShortTableBits, dFastShortLen)\n\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\tentry := tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.longTable[nextHashL] = entry\n\t\t\te.markLongShardDirty(nextHashL)\n\t\t\te.table[nextHashS] = entry\n\t\t\te.markShardDirty(nextHashS)\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\t// Finished\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n\t// If we encoded more than 64K mark all dirty.\n\tif len(src) > 64<<10 {\n\t\te.markAllShardsDirty()\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *doubleFastEncoder) Reset(d *dict, singleBlock bool) {\n\te.fastEncoder.Reset(d, singleBlock)\n\tif d != nil {\n\t\tpanic(\"doubleFastEncoder: Reset with dict not supported\")\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *doubleFastEncoderDict) Reset(d *dict, singleBlock bool) {\n\tallDirty := e.allDirty\n\te.fastEncoderDict.Reset(d, singleBlock)\n\tif d == nil {\n\t\treturn\n\t}\n\n\t// Init or copy dict table\n\tif len(e.dictLongTable) != len(e.longTable) || d.id != e.lastDictID {\n\t\tif len(e.dictLongTable) != len(e.longTable) {\n\t\t\te.dictLongTable = make([]tableEntry, len(e.longTable))\n\t\t}\n\t\tif len(d.content) >= 8 {\n\t\t\tcv := load6432(d.content, 0)\n\t\t\te.dictLongTable[hashLen(cv, dFastLongTableBits, dFastLongLen)] = tableEntry{\n\t\t\t\tval:    uint32(cv),\n\t\t\t\toffset: e.maxMatchOff,\n\t\t\t}\n\t\t\tend := int32(len(d.content)) - 8 + e.maxMatchOff\n\t\t\tfor i := e.maxMatchOff + 1; i < end; i++ {\n\t\t\t\tcv = cv>>8 | (uint64(d.content[i-e.maxMatchOff+7]) << 56)\n\t\t\t\te.dictLongTable[hashLen(cv, dFastLongTableBits, dFastLongLen)] = tableEntry{\n\t\t\t\t\tval:    uint32(cv),\n\t\t\t\t\toffset: i,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t\tallDirty = true\n\t}\n\t// Reset table to initial state\n\te.cur = e.maxMatchOff\n\n\tdirtyShardCnt := 0\n\tif !allDirty {\n\t\tfor i := range e.longTableShardDirty {\n\t\t\tif e.longTableShardDirty[i] {\n\t\t\t\tdirtyShardCnt++\n\t\t\t}\n\t\t}\n\t}\n\n\tif allDirty || dirtyShardCnt > dLongTableShardCnt/2 {\n\t\t//copy(e.longTable[:], e.dictLongTable)\n\t\te.longTable = *(*[dFastLongTableSize]tableEntry)(e.dictLongTable)\n\t\tfor i := range e.longTableShardDirty {\n\t\t\te.longTableShardDirty[i] = false\n\t\t}\n\t\treturn\n\t}\n\tfor i := range e.longTableShardDirty {\n\t\tif !e.longTableShardDirty[i] {\n\t\t\tcontinue\n\t\t}\n\n\t\t// copy(e.longTable[i*dLongTableShardSize:(i+1)*dLongTableShardSize], e.dictLongTable[i*dLongTableShardSize:(i+1)*dLongTableShardSize])\n\t\t*(*[dLongTableShardSize]tableEntry)(e.longTable[i*dLongTableShardSize:]) = *(*[dLongTableShardSize]tableEntry)(e.dictLongTable[i*dLongTableShardSize:])\n\n\t\te.longTableShardDirty[i] = false\n\t}\n}\n\nfunc (e *doubleFastEncoderDict) markLongShardDirty(entryNum uint32) {\n\te.longTableShardDirty[entryNum/dLongTableShardSize] = true\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/enc_fast.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"fmt\"\n)\n\nconst (\n\ttableBits        = 15                               // Bits used in the table\n\ttableSize        = 1 << tableBits                   // Size of the table\n\ttableShardCnt    = 1 << (tableBits - dictShardBits) // Number of shards in the table\n\ttableShardSize   = tableSize / tableShardCnt        // Size of an individual shard\n\ttableFastHashLen = 6\n\ttableMask        = tableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks.\n\tmaxMatchLength   = 131074\n)\n\ntype tableEntry struct {\n\tval    uint32\n\toffset int32\n}\n\ntype fastEncoder struct {\n\tfastBase\n\ttable [tableSize]tableEntry\n}\n\ntype fastEncoderDict struct {\n\tfastEncoder\n\tdictTable       []tableEntry\n\ttableShardDirty [tableShardCnt]bool\n\tallDirty        bool\n}\n\n// Encode mimmics functionality in zstd_fast.c\nfunc (e *fastEncoder) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\tinputMargin            = 8\n\t\tminNonLiteralBlockSize = 1 + 1 + inputMargin\n\t)\n\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\tfor i := range e.table[:] {\n\t\t\t\te.table[i] = tableEntry{}\n\t\t\t}\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 2.\n\tconst stepSize = 2\n\n\t// TEMPLATE\n\tconst hashLog = tableBits\n\t// seems global, but would be nice to tweak.\n\tconst kSearchStrength = 6\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\t// t will contain the match offset when we find one.\n\t\t// When existing the search loop, we have already checked 4 bytes.\n\t\tvar t int32\n\n\t\t// We will not use repeat offsets across blocks.\n\t\t// By not using them for the first 3 matches\n\t\tcanRepeat := len(blk.sequences) > 2\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\tnextHash2 := hashLen(cv>>8, hashLog, tableFastHashLen)\n\t\t\tcandidate := e.table[nextHash]\n\t\t\tcandidate2 := e.table[nextHash2]\n\t\t\trepIndex := s - offset1 + 2\n\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)}\n\n\t\t\tif canRepeat && repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>16) {\n\t\t\t\t// Consider history as well.\n\t\t\t\tvar seq seq\n\t\t\t\tlength := 4 + e.matchlen(s+6, repIndex+4, src)\n\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t// We might be able to match backwards.\n\t\t\t\t// Extend as long as we can.\n\t\t\t\tstart := s + 2\n\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t// and have to do special offset treatment.\n\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\tsMin := max(s-e.maxMatchOff, 0)\n\t\t\t\tfor repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch {\n\t\t\t\t\trepIndex--\n\t\t\t\t\tstart--\n\t\t\t\t\tseq.matchLen++\n\t\t\t\t}\n\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t// rep 0\n\t\t\t\tseq.offset = 1\n\t\t\t\tif debugSequences {\n\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t}\n\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\ts += length + 2\n\t\t\t\tnextEmit = s\n\t\t\t\tif s >= sLimit {\n\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t}\n\t\t\t\t\tbreak encodeLoop\n\t\t\t\t}\n\t\t\t\tcv = load6432(src, s)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcoffset0 := s - (candidate.offset - e.cur)\n\t\t\tcoffset1 := s - (candidate2.offset - e.cur) + 1\n\t\t\tif coffset0 < e.maxMatchOff && uint32(cv) == candidate.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate2.offset - e.cur\n\t\t\t\ts++\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t\t// A 4-byte match has been found. We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the 4-byte match as long as possible.\n\t\tl := e.matchlen(s+4, t+4, src) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence.\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\t// Don't use repeat offsets\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\t\tcv = load6432(src, s)\n\n\t\t// Check offset 2\n\t\tif o2 := s - offset2; canRepeat && load3232(src, o2) == uint32(cv) {\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\t// Prepare next loop.\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// EncodeNoHist will encode a block with no history and no following blocks.\n// Most notable difference is that src will not be copied for history and\n// we do not need to check for max match length.\nfunc (e *fastEncoder) EncodeNoHist(blk *blockEnc, src []byte) {\n\tconst (\n\t\tinputMargin            = 8\n\t\tminNonLiteralBlockSize = 1 + 1 + inputMargin\n\t)\n\tif debugEncoder {\n\t\tif len(src) > maxCompressedBlockSize {\n\t\t\tpanic(\"src too big\")\n\t\t}\n\t}\n\n\t// Protect against e.cur wraparound.\n\tif e.cur >= e.bufferReset {\n\t\tfor i := range e.table[:] {\n\t\t\te.table[i] = tableEntry{}\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t}\n\n\ts := int32(0)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 2.\n\tconst stepSize = 2\n\n\t// TEMPLATE\n\tconst hashLog = tableBits\n\t// seems global, but would be nice to tweak.\n\tconst kSearchStrength = 6\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\t// t will contain the match offset when we find one.\n\t\t// When existing the search loop, we have already checked 4 bytes.\n\t\tvar t int32\n\n\t\t// We will not use repeat offsets across blocks.\n\t\t// By not using them for the first 3 matches\n\n\t\tfor {\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\tnextHash2 := hashLen(cv>>8, hashLog, tableFastHashLen)\n\t\t\tcandidate := e.table[nextHash]\n\t\t\tcandidate2 := e.table[nextHash2]\n\t\t\trepIndex := s - offset1 + 2\n\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)}\n\n\t\t\tif len(blk.sequences) > 2 && load3232(src, repIndex) == uint32(cv>>16) {\n\t\t\t\t// Consider history as well.\n\t\t\t\tvar seq seq\n\t\t\t\tlength := 4 + e.matchlen(s+6, repIndex+4, src)\n\n\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t// We might be able to match backwards.\n\t\t\t\t// Extend as long as we can.\n\t\t\t\tstart := s + 2\n\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t// and have to do special offset treatment.\n\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\tsMin := max(s-e.maxMatchOff, 0)\n\t\t\t\tfor repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] {\n\t\t\t\t\trepIndex--\n\t\t\t\t\tstart--\n\t\t\t\t\tseq.matchLen++\n\t\t\t\t}\n\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t// rep 0\n\t\t\t\tseq.offset = 1\n\t\t\t\tif debugSequences {\n\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t}\n\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\ts += length + 2\n\t\t\t\tnextEmit = s\n\t\t\t\tif s >= sLimit {\n\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t}\n\t\t\t\t\tbreak encodeLoop\n\t\t\t\t}\n\t\t\t\tcv = load6432(src, s)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcoffset0 := s - (candidate.offset - e.cur)\n\t\t\tcoffset1 := s - (candidate2.offset - e.cur) + 1\n\t\t\tif coffset0 < e.maxMatchOff && uint32(cv) == candidate.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(fmt.Sprintf(\"t (%d) < 0, candidate.offset: %d, e.cur: %d, coffset0: %d, e.maxMatchOff: %d\", t, candidate.offset, e.cur, coffset0, e.maxMatchOff))\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate2.offset - e.cur\n\t\t\t\ts++\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t\t// A 4-byte match has been found. We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && t < 0 {\n\t\t\tpanic(fmt.Sprintf(\"t (%d) < 0 \", t))\n\t\t}\n\t\t// Extend the 4-byte match as long as possible.\n\t\tl := e.matchlen(s+4, t+4, src) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence.\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\t// Don't use repeat offsets\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\t\tcv = load6432(src, s)\n\n\t\t// Check offset 2\n\t\tif o2 := s - offset2; len(blk.sequences) > 2 && load3232(src, o2) == uint32(cv) {\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\t// Prepare next loop.\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n\t// We do not store history, so we must offset e.cur to avoid false matches for next user.\n\tif e.cur < e.bufferReset {\n\t\te.cur += int32(len(src))\n\t}\n}\n\n// Encode will encode the content, with a dictionary if initialized for it.\nfunc (e *fastEncoderDict) Encode(blk *blockEnc, src []byte) {\n\tconst (\n\t\tinputMargin            = 8\n\t\tminNonLiteralBlockSize = 1 + 1 + inputMargin\n\t)\n\tif e.allDirty || len(src) > 32<<10 {\n\t\te.fastEncoder.Encode(blk, src)\n\t\te.allDirty = true\n\t\treturn\n\t}\n\t// Protect against e.cur wraparound.\n\tfor e.cur >= e.bufferReset-int32(len(e.hist)) {\n\t\tif len(e.hist) == 0 {\n\t\t\te.table = [tableSize]tableEntry{}\n\t\t\te.cur = e.maxMatchOff\n\t\t\tbreak\n\t\t}\n\t\t// Shift down everything in the table that isn't already too far away.\n\t\tminOff := e.cur + int32(len(e.hist)) - e.maxMatchOff\n\t\tfor i := range e.table[:] {\n\t\t\tv := e.table[i].offset\n\t\t\tif v < minOff {\n\t\t\t\tv = 0\n\t\t\t} else {\n\t\t\t\tv = v - e.cur + e.maxMatchOff\n\t\t\t}\n\t\t\te.table[i].offset = v\n\t\t}\n\t\te.cur = e.maxMatchOff\n\t\tbreak\n\t}\n\n\ts := e.addBlock(src)\n\tblk.size = len(src)\n\tif len(src) < minNonLiteralBlockSize {\n\t\tblk.extraLits = len(src)\n\t\tblk.literals = blk.literals[:len(src)]\n\t\tcopy(blk.literals, src)\n\t\treturn\n\t}\n\n\t// Override src\n\tsrc = e.hist\n\tsLimit := int32(len(src)) - inputMargin\n\t// stepSize is the number of bytes to skip on every main loop iteration.\n\t// It should be >= 2.\n\tconst stepSize = 2\n\n\t// TEMPLATE\n\tconst hashLog = tableBits\n\t// seems global, but would be nice to tweak.\n\tconst kSearchStrength = 7\n\n\t// nextEmit is where in src the next emitLiteral should start from.\n\tnextEmit := s\n\tcv := load6432(src, s)\n\n\t// Relative offsets\n\toffset1 := int32(blk.recentOffsets[0])\n\toffset2 := int32(blk.recentOffsets[1])\n\n\taddLiterals := func(s *seq, until int32) {\n\t\tif until == nextEmit {\n\t\t\treturn\n\t\t}\n\t\tblk.literals = append(blk.literals, src[nextEmit:until]...)\n\t\ts.litLen = uint32(until - nextEmit)\n\t}\n\tif debugEncoder {\n\t\tprintln(\"recent offsets:\", blk.recentOffsets)\n\t}\n\nencodeLoop:\n\tfor {\n\t\t// t will contain the match offset when we find one.\n\t\t// When existing the search loop, we have already checked 4 bytes.\n\t\tvar t int32\n\n\t\t// We will not use repeat offsets across blocks.\n\t\t// By not using them for the first 3 matches\n\t\tcanRepeat := len(blk.sequences) > 2\n\n\t\tfor {\n\t\t\tif debugAsserts && canRepeat && offset1 == 0 {\n\t\t\t\tpanic(\"offset0 was 0\")\n\t\t\t}\n\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\tnextHash2 := hashLen(cv>>8, hashLog, tableFastHashLen)\n\t\t\tcandidate := e.table[nextHash]\n\t\t\tcandidate2 := e.table[nextHash2]\n\t\t\trepIndex := s - offset1 + 2\n\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.markShardDirty(nextHash)\n\t\t\te.table[nextHash2] = tableEntry{offset: s + e.cur + 1, val: uint32(cv >> 8)}\n\t\t\te.markShardDirty(nextHash2)\n\n\t\t\tif canRepeat && repIndex >= 0 && load3232(src, repIndex) == uint32(cv>>16) {\n\t\t\t\t// Consider history as well.\n\t\t\t\tvar seq seq\n\t\t\t\tlength := 4 + e.matchlen(s+6, repIndex+4, src)\n\n\t\t\t\tseq.matchLen = uint32(length - zstdMinMatch)\n\n\t\t\t\t// We might be able to match backwards.\n\t\t\t\t// Extend as long as we can.\n\t\t\t\tstart := s + 2\n\t\t\t\t// We end the search early, so we don't risk 0 literals\n\t\t\t\t// and have to do special offset treatment.\n\t\t\t\tstartLimit := nextEmit + 1\n\n\t\t\t\tsMin := max(s-e.maxMatchOff, 0)\n\t\t\t\tfor repIndex > sMin && start > startLimit && src[repIndex-1] == src[start-1] && seq.matchLen < maxMatchLength-zstdMinMatch {\n\t\t\t\t\trepIndex--\n\t\t\t\t\tstart--\n\t\t\t\t\tseq.matchLen++\n\t\t\t\t}\n\t\t\t\taddLiterals(&seq, start)\n\n\t\t\t\t// rep 0\n\t\t\t\tseq.offset = 1\n\t\t\t\tif debugSequences {\n\t\t\t\t\tprintln(\"repeat sequence\", seq, \"next s:\", s)\n\t\t\t\t}\n\t\t\t\tblk.sequences = append(blk.sequences, seq)\n\t\t\t\ts += length + 2\n\t\t\t\tnextEmit = s\n\t\t\t\tif s >= sLimit {\n\t\t\t\t\tif debugEncoder {\n\t\t\t\t\t\tprintln(\"repeat ended\", s, length)\n\n\t\t\t\t\t}\n\t\t\t\t\tbreak encodeLoop\n\t\t\t\t}\n\t\t\t\tcv = load6432(src, s)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcoffset0 := s - (candidate.offset - e.cur)\n\t\t\tcoffset1 := s - (candidate2.offset - e.cur) + 1\n\t\t\tif coffset0 < e.maxMatchOff && uint32(cv) == candidate.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate.offset - e.cur\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif coffset1 < e.maxMatchOff && uint32(cv>>8) == candidate2.val {\n\t\t\t\t// found a regular match\n\t\t\t\tt = candidate2.offset - e.cur\n\t\t\t\ts++\n\t\t\t\tif debugAsserts && s <= t {\n\t\t\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t\t\t}\n\t\t\t\tif debugAsserts && s-t > e.maxMatchOff {\n\t\t\t\t\tpanic(\"s - t >e.maxMatchOff\")\n\t\t\t\t}\n\t\t\t\tif debugAsserts && t < 0 {\n\t\t\t\t\tpanic(\"t<0\")\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ts += stepSize + ((s - nextEmit) >> (kSearchStrength - 1))\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t\t// A 4-byte match has been found. We'll later see if more than 4 bytes.\n\t\toffset2 = offset1\n\t\toffset1 = s - t\n\n\t\tif debugAsserts && s <= t {\n\t\t\tpanic(fmt.Sprintf(\"s (%d) <= t (%d)\", s, t))\n\t\t}\n\n\t\tif debugAsserts && canRepeat && int(offset1) > len(src) {\n\t\t\tpanic(\"invalid offset\")\n\t\t}\n\n\t\t// Extend the 4-byte match as long as possible.\n\t\tl := e.matchlen(s+4, t+4, src) + 4\n\n\t\t// Extend backwards\n\t\ttMin := max(s-e.maxMatchOff, 0)\n\t\tfor t > tMin && s > nextEmit && src[t-1] == src[s-1] && l < maxMatchLength {\n\t\t\ts--\n\t\t\tt--\n\t\t\tl++\n\t\t}\n\n\t\t// Write our sequence.\n\t\tvar seq seq\n\t\tseq.litLen = uint32(s - nextEmit)\n\t\tseq.matchLen = uint32(l - zstdMinMatch)\n\t\tif seq.litLen > 0 {\n\t\t\tblk.literals = append(blk.literals, src[nextEmit:s]...)\n\t\t}\n\t\t// Don't use repeat offsets\n\t\tseq.offset = uint32(s-t) + 3\n\t\ts += l\n\t\tif debugSequences {\n\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t}\n\t\tblk.sequences = append(blk.sequences, seq)\n\t\tnextEmit = s\n\t\tif s >= sLimit {\n\t\t\tbreak encodeLoop\n\t\t}\n\t\tcv = load6432(src, s)\n\n\t\t// Check offset 2\n\t\tif o2 := s - offset2; canRepeat && load3232(src, o2) == uint32(cv) {\n\t\t\t// We have at least 4 byte match.\n\t\t\t// No need to check backwards. We come straight from a match\n\t\t\tl := 4 + e.matchlen(s+4, o2+4, src)\n\n\t\t\t// Store this, since we have it.\n\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)\n\t\t\te.table[nextHash] = tableEntry{offset: s + e.cur, val: uint32(cv)}\n\t\t\te.markShardDirty(nextHash)\n\t\t\tseq.matchLen = uint32(l) - zstdMinMatch\n\t\t\tseq.litLen = 0\n\t\t\t// Since litlen is always 0, this is offset 1.\n\t\t\tseq.offset = 1\n\t\t\ts += l\n\t\t\tnextEmit = s\n\t\t\tif debugSequences {\n\t\t\t\tprintln(\"sequence\", seq, \"next s:\", s)\n\t\t\t}\n\t\t\tblk.sequences = append(blk.sequences, seq)\n\n\t\t\t// Swap offset 1 and 2.\n\t\t\toffset1, offset2 = offset2, offset1\n\t\t\tif s >= sLimit {\n\t\t\t\tbreak encodeLoop\n\t\t\t}\n\t\t\t// Prepare next loop.\n\t\t\tcv = load6432(src, s)\n\t\t}\n\t}\n\n\tif int(nextEmit) < len(src) {\n\t\tblk.literals = append(blk.literals, src[nextEmit:]...)\n\t\tblk.extraLits = len(src) - int(nextEmit)\n\t}\n\tblk.recentOffsets[0] = uint32(offset1)\n\tblk.recentOffsets[1] = uint32(offset2)\n\tif debugEncoder {\n\t\tprintln(\"returning, recent offsets:\", blk.recentOffsets, \"extra literals:\", blk.extraLits)\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *fastEncoder) Reset(d *dict, singleBlock bool) {\n\te.resetBase(d, singleBlock)\n\tif d != nil {\n\t\tpanic(\"fastEncoder: Reset with dict\")\n\t}\n}\n\n// ResetDict will reset and set a dictionary if not nil\nfunc (e *fastEncoderDict) Reset(d *dict, singleBlock bool) {\n\te.resetBase(d, singleBlock)\n\tif d == nil {\n\t\treturn\n\t}\n\n\t// Init or copy dict table\n\tif len(e.dictTable) != len(e.table) || d.id != e.lastDictID {\n\t\tif len(e.dictTable) != len(e.table) {\n\t\t\te.dictTable = make([]tableEntry, len(e.table))\n\t\t}\n\t\tif true {\n\t\t\tend := e.maxMatchOff + int32(len(d.content)) - 8\n\t\t\tfor i := e.maxMatchOff; i < end; i += 2 {\n\t\t\t\tconst hashLog = tableBits\n\n\t\t\t\tcv := load6432(d.content, i-e.maxMatchOff)\n\t\t\t\tnextHash := hashLen(cv, hashLog, tableFastHashLen)     // 0 -> 6\n\t\t\t\tnextHash1 := hashLen(cv>>8, hashLog, tableFastHashLen) // 1 -> 7\n\t\t\t\te.dictTable[nextHash] = tableEntry{\n\t\t\t\t\tval:    uint32(cv),\n\t\t\t\t\toffset: i,\n\t\t\t\t}\n\t\t\t\te.dictTable[nextHash1] = tableEntry{\n\t\t\t\t\tval:    uint32(cv >> 8),\n\t\t\t\t\toffset: i + 1,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\te.lastDictID = d.id\n\t\te.allDirty = true\n\t}\n\n\te.cur = e.maxMatchOff\n\tdirtyShardCnt := 0\n\tif !e.allDirty {\n\t\tfor i := range e.tableShardDirty {\n\t\t\tif e.tableShardDirty[i] {\n\t\t\t\tdirtyShardCnt++\n\t\t\t}\n\t\t}\n\t}\n\n\tconst shardCnt = tableShardCnt\n\tconst shardSize = tableShardSize\n\tif e.allDirty || dirtyShardCnt > shardCnt*4/6 {\n\t\t//copy(e.table[:], e.dictTable)\n\t\te.table = *(*[tableSize]tableEntry)(e.dictTable)\n\t\tfor i := range e.tableShardDirty {\n\t\t\te.tableShardDirty[i] = false\n\t\t}\n\t\te.allDirty = false\n\t\treturn\n\t}\n\tfor i := range e.tableShardDirty {\n\t\tif !e.tableShardDirty[i] {\n\t\t\tcontinue\n\t\t}\n\n\t\t//copy(e.table[i*shardSize:(i+1)*shardSize], e.dictTable[i*shardSize:(i+1)*shardSize])\n\t\t*(*[shardSize]tableEntry)(e.table[i*shardSize:]) = *(*[shardSize]tableEntry)(e.dictTable[i*shardSize:])\n\t\te.tableShardDirty[i] = false\n\t}\n\te.allDirty = false\n}\n\nfunc (e *fastEncoderDict) markAllShardsDirty() {\n\te.allDirty = true\n}\n\nfunc (e *fastEncoderDict) markShardDirty(entryNum uint32) {\n\te.tableShardDirty[entryNum/tableShardSize] = true\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/encoder.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"crypto/rand\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\trdebug \"runtime/debug\"\n\t\"sync\"\n\n\t\"github.com/klauspost/compress/zstd/internal/xxhash\"\n)\n\n// Encoder provides encoding to Zstandard.\n// An Encoder can be used for either compressing a stream via the\n// io.WriteCloser interface supported by the Encoder or as multiple independent\n// tasks via the EncodeAll function.\n// Smaller encodes are encouraged to use the EncodeAll function.\n// Use NewWriter to create a new instance.\ntype Encoder struct {\n\to        encoderOptions\n\tencoders chan encoder\n\tstate    encoderState\n\tinit     sync.Once\n}\n\ntype encoder interface {\n\tEncode(blk *blockEnc, src []byte)\n\tEncodeNoHist(blk *blockEnc, src []byte)\n\tBlock() *blockEnc\n\tCRC() *xxhash.Digest\n\tAppendCRC([]byte) []byte\n\tWindowSize(size int64) int32\n\tUseBlock(*blockEnc)\n\tReset(d *dict, singleBlock bool)\n}\n\ntype encoderState struct {\n\tw                io.Writer\n\tfilling          []byte\n\tcurrent          []byte\n\tprevious         []byte\n\tencoder          encoder\n\twriting          *blockEnc\n\terr              error\n\twriteErr         error\n\tnWritten         int64\n\tnInput           int64\n\tframeContentSize int64\n\theaderWritten    bool\n\teofWritten       bool\n\tfullFrameWritten bool\n\n\t// This waitgroup indicates an encode is running.\n\twg sync.WaitGroup\n\t// This waitgroup indicates we have a block encoding/writing.\n\twWg sync.WaitGroup\n}\n\n// NewWriter will create a new Zstandard encoder.\n// If the encoder will be used for encoding blocks a nil writer can be used.\nfunc NewWriter(w io.Writer, opts ...EOption) (*Encoder, error) {\n\tinitPredefined()\n\tvar e Encoder\n\te.o.setDefault()\n\tfor _, o := range opts {\n\t\terr := o(&e.o)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif w != nil {\n\t\te.Reset(w)\n\t}\n\treturn &e, nil\n}\n\nfunc (e *Encoder) initialize() {\n\tif e.o.concurrent == 0 {\n\t\te.o.setDefault()\n\t}\n\te.encoders = make(chan encoder, e.o.concurrent)\n\tfor i := 0; i < e.o.concurrent; i++ {\n\t\tenc := e.o.encoder()\n\t\te.encoders <- enc\n\t}\n}\n\n// Reset will re-initialize the writer and new writes will encode to the supplied writer\n// as a new, independent stream.\nfunc (e *Encoder) Reset(w io.Writer) {\n\ts := &e.state\n\ts.wg.Wait()\n\ts.wWg.Wait()\n\tif cap(s.filling) == 0 {\n\t\ts.filling = make([]byte, 0, e.o.blockSize)\n\t}\n\tif e.o.concurrent > 1 {\n\t\tif cap(s.current) == 0 {\n\t\t\ts.current = make([]byte, 0, e.o.blockSize)\n\t\t}\n\t\tif cap(s.previous) == 0 {\n\t\t\ts.previous = make([]byte, 0, e.o.blockSize)\n\t\t}\n\t\ts.current = s.current[:0]\n\t\ts.previous = s.previous[:0]\n\t\tif s.writing == nil {\n\t\t\ts.writing = &blockEnc{lowMem: e.o.lowMem}\n\t\t\ts.writing.init()\n\t\t}\n\t\ts.writing.initNewEncode()\n\t}\n\tif s.encoder == nil {\n\t\ts.encoder = e.o.encoder()\n\t}\n\ts.filling = s.filling[:0]\n\ts.encoder.Reset(e.o.dict, false)\n\ts.headerWritten = false\n\ts.eofWritten = false\n\ts.fullFrameWritten = false\n\ts.w = w\n\ts.err = nil\n\ts.nWritten = 0\n\ts.nInput = 0\n\ts.writeErr = nil\n\ts.frameContentSize = 0\n}\n\n// ResetWithOptions will re-initialize the writer and apply the given options\n// as a new, independent stream.\n// Options are applied on top of the existing options.\n// Some options cannot be changed on reset and will return an error.\nfunc (e *Encoder) ResetWithOptions(w io.Writer, opts ...EOption) error {\n\te.o.resetOpt = true\n\tdefer func() { e.o.resetOpt = false }()\n\tfor _, o := range opts {\n\t\tif err := o(&e.o); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\te.Reset(w)\n\treturn nil\n}\n\n// ResetContentSize will reset and set a content size for the next stream.\n// If the bytes written does not match the size given an error will be returned\n// when calling Close().\n// This is removed when Reset is called.\n// Sizes <= 0 results in no content size set.\nfunc (e *Encoder) ResetContentSize(w io.Writer, size int64) {\n\te.Reset(w)\n\tif size >= 0 {\n\t\te.state.frameContentSize = size\n\t}\n}\n\n// Write data to the encoder.\n// Input data will be buffered and as the buffer fills up\n// content will be compressed and written to the output.\n// When done writing, use Close to flush the remaining output\n// and write CRC if requested.\nfunc (e *Encoder) Write(p []byte) (n int, err error) {\n\ts := &e.state\n\tif s.eofWritten {\n\t\treturn 0, ErrEncoderClosed\n\t}\n\tfor len(p) > 0 {\n\t\tif len(p)+len(s.filling) < e.o.blockSize {\n\t\t\tif e.o.crc {\n\t\t\t\t_, _ = s.encoder.CRC().Write(p)\n\t\t\t}\n\t\t\ts.filling = append(s.filling, p...)\n\t\t\treturn n + len(p), nil\n\t\t}\n\t\tadd := p\n\t\tif len(p)+len(s.filling) > e.o.blockSize {\n\t\t\tadd = add[:e.o.blockSize-len(s.filling)]\n\t\t}\n\t\tif e.o.crc {\n\t\t\t_, _ = s.encoder.CRC().Write(add)\n\t\t}\n\t\ts.filling = append(s.filling, add...)\n\t\tp = p[len(add):]\n\t\tn += len(add)\n\t\tif len(s.filling) < e.o.blockSize {\n\t\t\treturn n, nil\n\t\t}\n\t\terr := e.nextBlock(false)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tif debugAsserts && len(s.filling) > 0 {\n\t\t\tpanic(len(s.filling))\n\t\t}\n\t}\n\treturn n, nil\n}\n\n// nextBlock will synchronize and start compressing input in e.state.filling.\n// If an error has occurred during encoding it will be returned.\nfunc (e *Encoder) nextBlock(final bool) error {\n\ts := &e.state\n\t// Wait for current block.\n\ts.wg.Wait()\n\tif s.err != nil {\n\t\treturn s.err\n\t}\n\tif len(s.filling) > e.o.blockSize {\n\t\treturn fmt.Errorf(\"block > maxStoreBlockSize\")\n\t}\n\tif !s.headerWritten {\n\t\t// If we have a single block encode, do a sync compression.\n\t\tif final && len(s.filling) == 0 && !e.o.fullZero {\n\t\t\ts.headerWritten = true\n\t\t\ts.fullFrameWritten = true\n\t\t\ts.eofWritten = true\n\t\t\treturn nil\n\t\t}\n\t\tif final && len(s.filling) > 0 {\n\t\t\ts.current = e.encodeAll(s.encoder, s.filling, s.current[:0])\n\t\t\tvar n2 int\n\t\t\tn2, s.err = s.w.Write(s.current)\n\t\t\tif s.err != nil {\n\t\t\t\treturn s.err\n\t\t\t}\n\t\t\ts.nWritten += int64(n2)\n\t\t\ts.nInput += int64(len(s.filling))\n\t\t\ts.current = s.current[:0]\n\t\t\ts.filling = s.filling[:0]\n\t\t\ts.headerWritten = true\n\t\t\ts.fullFrameWritten = true\n\t\t\ts.eofWritten = true\n\t\t\treturn nil\n\t\t}\n\n\t\tvar tmp [maxHeaderSize]byte\n\t\tfh := frameHeader{\n\t\t\tContentSize:   uint64(s.frameContentSize),\n\t\t\tWindowSize:    uint32(s.encoder.WindowSize(s.frameContentSize)),\n\t\t\tSingleSegment: false,\n\t\t\tChecksum:      e.o.crc,\n\t\t\tDictID:        e.o.dict.ID(),\n\t\t}\n\n\t\tdst := fh.appendTo(tmp[:0])\n\t\ts.headerWritten = true\n\t\ts.wWg.Wait()\n\t\tvar n2 int\n\t\tn2, s.err = s.w.Write(dst)\n\t\tif s.err != nil {\n\t\t\treturn s.err\n\t\t}\n\t\ts.nWritten += int64(n2)\n\t}\n\tif s.eofWritten {\n\t\t// Ensure we only write it once.\n\t\tfinal = false\n\t}\n\n\tif len(s.filling) == 0 {\n\t\t// Final block, but no data.\n\t\tif final {\n\t\t\tenc := s.encoder\n\t\t\tblk := enc.Block()\n\t\t\tblk.reset(nil)\n\t\t\tblk.last = true\n\t\t\tblk.encodeRaw(nil)\n\t\t\ts.wWg.Wait()\n\t\t\t_, s.err = s.w.Write(blk.output)\n\t\t\ts.nWritten += int64(len(blk.output))\n\t\t\ts.eofWritten = true\n\t\t}\n\t\treturn s.err\n\t}\n\n\t// SYNC:\n\tif e.o.concurrent == 1 {\n\t\tsrc := s.filling\n\t\ts.nInput += int64(len(s.filling))\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding sync block,\", len(src), \"bytes, final:\", final)\n\t\t}\n\t\tenc := s.encoder\n\t\tblk := enc.Block()\n\t\tblk.reset(nil)\n\t\tenc.Encode(blk, src)\n\t\tblk.last = final\n\t\tif final {\n\t\t\ts.eofWritten = true\n\t\t}\n\n\t\ts.err = blk.encode(src, e.o.noEntropy, !e.o.allLitEntropy)\n\t\tif s.err != nil {\n\t\t\treturn s.err\n\t\t}\n\t\t_, s.err = s.w.Write(blk.output)\n\t\ts.nWritten += int64(len(blk.output))\n\t\ts.filling = s.filling[:0]\n\t\treturn s.err\n\t}\n\n\t// Move blocks forward.\n\ts.filling, s.current, s.previous = s.previous[:0], s.filling, s.current\n\ts.nInput += int64(len(s.current))\n\ts.wg.Add(1)\n\tif final {\n\t\ts.eofWritten = true\n\t}\n\tgo func(src []byte) {\n\t\tif debugEncoder {\n\t\t\tprintln(\"Adding block,\", len(src), \"bytes, final:\", final)\n\t\t}\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\ts.err = fmt.Errorf(\"panic while encoding: %v\", r)\n\t\t\t\trdebug.PrintStack()\n\t\t\t}\n\t\t\ts.wg.Done()\n\t\t}()\n\t\tenc := s.encoder\n\t\tblk := enc.Block()\n\t\tenc.Encode(blk, src)\n\t\tblk.last = final\n\t\t// Wait for pending writes.\n\t\ts.wWg.Wait()\n\t\tif s.writeErr != nil {\n\t\t\ts.err = s.writeErr\n\t\t\treturn\n\t\t}\n\t\t// Transfer encoders from previous write block.\n\t\tblk.swapEncoders(s.writing)\n\t\t// Transfer recent offsets to next.\n\t\tenc.UseBlock(s.writing)\n\t\ts.writing = blk\n\t\ts.wWg.Add(1)\n\t\tgo func() {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\ts.writeErr = fmt.Errorf(\"panic while encoding/writing: %v\", r)\n\t\t\t\t\trdebug.PrintStack()\n\t\t\t\t}\n\t\t\t\ts.wWg.Done()\n\t\t\t}()\n\t\t\ts.writeErr = blk.encode(src, e.o.noEntropy, !e.o.allLitEntropy)\n\t\t\tif s.writeErr != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t_, s.writeErr = s.w.Write(blk.output)\n\t\t\ts.nWritten += int64(len(blk.output))\n\t\t}()\n\t}(s.current)\n\treturn nil\n}\n\n// ReadFrom reads data from r until EOF or error.\n// The return value n is the number of bytes read.\n// Any error except io.EOF encountered during the read is also returned.\n//\n// The Copy function uses ReaderFrom if available.\nfunc (e *Encoder) ReadFrom(r io.Reader) (n int64, err error) {\n\tif debugEncoder {\n\t\tprintln(\"Using ReadFrom\")\n\t}\n\n\t// Flush any current writes.\n\tif len(e.state.filling) > 0 {\n\t\tif err := e.nextBlock(false); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\te.state.filling = e.state.filling[:e.o.blockSize]\n\tsrc := e.state.filling\n\tfor {\n\t\tn2, err := r.Read(src)\n\t\tif e.o.crc {\n\t\t\t_, _ = e.state.encoder.CRC().Write(src[:n2])\n\t\t}\n\t\t// src is now the unfilled part...\n\t\tsrc = src[n2:]\n\t\tn += int64(n2)\n\t\tswitch err {\n\t\tcase io.EOF:\n\t\t\te.state.filling = e.state.filling[:len(e.state.filling)-len(src)]\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"ReadFrom: got EOF final block:\", len(e.state.filling))\n\t\t\t}\n\t\t\treturn n, nil\n\t\tcase nil:\n\t\tdefault:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"ReadFrom: got error:\", err)\n\t\t\t}\n\t\t\te.state.err = err\n\t\t\treturn n, err\n\t\t}\n\t\tif len(src) > 0 {\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"ReadFrom: got space left in source:\", len(src))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\terr = e.nextBlock(false)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\te.state.filling = e.state.filling[:e.o.blockSize]\n\t\tsrc = e.state.filling\n\t}\n}\n\n// Flush will send the currently written data to output\n// and block until everything has been written.\n// This should only be used on rare occasions where pushing the currently queued data is critical.\nfunc (e *Encoder) Flush() error {\n\ts := &e.state\n\tif len(s.filling) > 0 {\n\t\terr := e.nextBlock(false)\n\t\tif err != nil {\n\t\t\t// Ignore Flush after Close.\n\t\t\tif errors.Is(s.err, ErrEncoderClosed) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\ts.wg.Wait()\n\ts.wWg.Wait()\n\tif s.err != nil {\n\t\t// Ignore Flush after Close.\n\t\tif errors.Is(s.err, ErrEncoderClosed) {\n\t\t\treturn nil\n\t\t}\n\t\treturn s.err\n\t}\n\treturn s.writeErr\n}\n\n// Close will flush the final output and close the stream.\n// The function will block until everything has been written.\n// The Encoder can still be re-used after calling this.\nfunc (e *Encoder) Close() error {\n\ts := &e.state\n\tif s.encoder == nil {\n\t\treturn nil\n\t}\n\terr := e.nextBlock(true)\n\tif err != nil {\n\t\tif errors.Is(s.err, ErrEncoderClosed) {\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t}\n\tif s.frameContentSize > 0 {\n\t\tif s.nInput != s.frameContentSize {\n\t\t\treturn fmt.Errorf(\"frame content size %d given, but %d bytes was written\", s.frameContentSize, s.nInput)\n\t\t}\n\t}\n\tif e.state.fullFrameWritten {\n\t\treturn s.err\n\t}\n\ts.wg.Wait()\n\ts.wWg.Wait()\n\n\tif s.err != nil {\n\t\treturn s.err\n\t}\n\tif s.writeErr != nil {\n\t\treturn s.writeErr\n\t}\n\n\t// Write CRC\n\tif e.o.crc && s.err == nil {\n\t\t// heap alloc.\n\t\tvar tmp [4]byte\n\t\t_, s.err = s.w.Write(s.encoder.AppendCRC(tmp[:0]))\n\t\ts.nWritten += 4\n\t}\n\n\t// Add padding with content from crypto/rand.Reader\n\tif s.err == nil && e.o.pad > 0 {\n\t\tadd := calcSkippableFrame(s.nWritten, int64(e.o.pad))\n\t\tframe, err := skippableFrame(s.filling[:0], add, rand.Reader)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, s.err = s.w.Write(frame)\n\t}\n\tif s.err == nil {\n\t\ts.err = ErrEncoderClosed\n\t\treturn nil\n\t}\n\n\treturn s.err\n}\n\n// EncodeAll will encode all input in src and append it to dst.\n// This function can be called concurrently, but each call will only run on a single goroutine.\n// If empty input is given, nothing is returned, unless WithZeroFrames is specified.\n// Encoded blocks can be concatenated and the result will be the combined input stream.\n// Data compressed with EncodeAll can be decoded with the Decoder,\n// using either a stream or DecodeAll.\nfunc (e *Encoder) EncodeAll(src, dst []byte) []byte {\n\te.init.Do(e.initialize)\n\tenc := <-e.encoders\n\tdefer func() {\n\t\te.encoders <- enc\n\t}()\n\treturn e.encodeAll(enc, src, dst)\n}\n\nfunc (e *Encoder) encodeAll(enc encoder, src, dst []byte) []byte {\n\tif len(src) == 0 {\n\t\tif e.o.fullZero {\n\t\t\t// Add frame header.\n\t\t\tfh := frameHeader{\n\t\t\t\tContentSize:   0,\n\t\t\t\tWindowSize:    MinWindowSize,\n\t\t\t\tSingleSegment: true,\n\t\t\t\t// Adding a checksum would be a waste of space.\n\t\t\t\tChecksum: false,\n\t\t\t\tDictID:   0,\n\t\t\t}\n\t\t\tdst = fh.appendTo(dst)\n\n\t\t\t// Write raw block as last one only.\n\t\t\tvar blk blockHeader\n\t\t\tblk.setSize(0)\n\t\t\tblk.setType(blockTypeRaw)\n\t\t\tblk.setLast(true)\n\t\t\tdst = blk.appendTo(dst)\n\t\t}\n\t\treturn dst\n\t}\n\n\t// Use single segments when above minimum window and below window size.\n\tsingle := len(src) <= e.o.windowSize && len(src) > MinWindowSize\n\tif e.o.single != nil {\n\t\tsingle = *e.o.single\n\t}\n\tfh := frameHeader{\n\t\tContentSize:   uint64(len(src)),\n\t\tWindowSize:    uint32(enc.WindowSize(int64(len(src)))),\n\t\tSingleSegment: single,\n\t\tChecksum:      e.o.crc,\n\t\tDictID:        e.o.dict.ID(),\n\t}\n\n\t// If less than 1MB, allocate a buffer up front.\n\tif len(dst) == 0 && cap(dst) == 0 && len(src) < 1<<20 && !e.o.lowMem {\n\t\tdst = make([]byte, 0, len(src))\n\t}\n\tdst = fh.appendTo(dst)\n\n\t// If we can do everything in one block, prefer that.\n\tif len(src) <= e.o.blockSize {\n\t\tenc.Reset(e.o.dict, true)\n\t\t// Slightly faster with no history and everything in one block.\n\t\tif e.o.crc {\n\t\t\t_, _ = enc.CRC().Write(src)\n\t\t}\n\t\tblk := enc.Block()\n\t\tblk.last = true\n\t\tif e.o.dict == nil {\n\t\t\tenc.EncodeNoHist(blk, src)\n\t\t} else {\n\t\t\tenc.Encode(blk, src)\n\t\t}\n\n\t\t// If we got the exact same number of literals as input,\n\t\t// assume the literals cannot be compressed.\n\t\toldout := blk.output\n\t\t// Output directly to dst\n\t\tblk.output = dst\n\n\t\terr := blk.encode(src, e.o.noEntropy, !e.o.allLitEntropy)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tdst = blk.output\n\t\tblk.output = oldout\n\t} else {\n\t\tenc.Reset(e.o.dict, false)\n\t\tblk := enc.Block()\n\t\tfor len(src) > 0 {\n\t\t\ttodo := src\n\t\t\tif len(todo) > e.o.blockSize {\n\t\t\t\ttodo = todo[:e.o.blockSize]\n\t\t\t}\n\t\t\tsrc = src[len(todo):]\n\t\t\tif e.o.crc {\n\t\t\t\t_, _ = enc.CRC().Write(todo)\n\t\t\t}\n\t\t\tblk.pushOffsets()\n\t\t\tenc.Encode(blk, todo)\n\t\t\tif len(src) == 0 {\n\t\t\t\tblk.last = true\n\t\t\t}\n\t\t\terr := blk.encode(todo, e.o.noEntropy, !e.o.allLitEntropy)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tdst = append(dst, blk.output...)\n\t\t\tblk.reset(nil)\n\t\t}\n\t}\n\tif e.o.crc {\n\t\tdst = enc.AppendCRC(dst)\n\t}\n\t// Add padding with content from crypto/rand.Reader\n\tif e.o.pad > 0 {\n\t\tadd := calcSkippableFrame(int64(len(dst)), int64(e.o.pad))\n\t\tvar err error\n\t\tdst, err = skippableFrame(dst, add, rand.Reader)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\treturn dst\n}\n\n// MaxEncodedSize returns the expected maximum\n// size of an encoded block or stream.\nfunc (e *Encoder) MaxEncodedSize(size int) int {\n\tframeHeader := 4 + 2 // magic + frame header & window descriptor\n\tif e.o.dict != nil {\n\t\tframeHeader += 4\n\t}\n\t// Frame content size:\n\tif size < 256 {\n\t\tframeHeader++\n\t} else if size < 65536+256 {\n\t\tframeHeader += 2\n\t} else if size < math.MaxInt32 {\n\t\tframeHeader += 4\n\t} else {\n\t\tframeHeader += 8\n\t}\n\t// Final crc\n\tif e.o.crc {\n\t\tframeHeader += 4\n\t}\n\n\t// Max overhead is 3 bytes/block.\n\t// There cannot be 0 blocks.\n\tblocks := (size + e.o.blockSize) / e.o.blockSize\n\n\t// Combine, add padding.\n\tmaxSz := frameHeader + 3*blocks + size\n\tif e.o.pad > 1 {\n\t\tmaxSz += calcSkippableFrame(int64(maxSz), int64(e.o.pad))\n\t}\n\treturn maxSz\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/encoder_options.go",
    "content": "package zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/bits\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// EOption is an option for creating a encoder.\ntype EOption func(*encoderOptions) error\n\n// options retains accumulated state of multiple options.\ntype encoderOptions struct {\n\tresetOpt        bool\n\tconcurrent      int\n\tlevel           EncoderLevel\n\tsingle          *bool\n\tpad             int\n\tblockSize       int\n\twindowSize      int\n\tcrc             bool\n\tfullZero        bool\n\tnoEntropy       bool\n\tallLitEntropy   bool\n\tcustomWindow    bool\n\tcustomALEntropy bool\n\tcustomBlockSize bool\n\tlowMem          bool\n\tdict            *dict\n}\n\nfunc (o *encoderOptions) setDefault() {\n\t*o = encoderOptions{\n\t\tconcurrent:    runtime.GOMAXPROCS(0),\n\t\tcrc:           true,\n\t\tsingle:        nil,\n\t\tblockSize:     maxCompressedBlockSize,\n\t\twindowSize:    8 << 20,\n\t\tlevel:         SpeedDefault,\n\t\tallLitEntropy: false,\n\t\tlowMem:        false,\n\t}\n}\n\n// encoder returns an encoder with the selected options.\nfunc (o encoderOptions) encoder() encoder {\n\tswitch o.level {\n\tcase SpeedFastest:\n\t\tif o.dict != nil {\n\t\t\treturn &fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}}\n\t\t}\n\t\treturn &fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}\n\n\tcase SpeedDefault:\n\t\tif o.dict != nil {\n\t\t\treturn &doubleFastEncoderDict{fastEncoderDict: fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}}}\n\t\t}\n\t\treturn &doubleFastEncoder{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}}\n\tcase SpeedBetterCompression:\n\t\tif o.dict != nil {\n\t\t\treturn &betterFastEncoderDict{betterFastEncoder: betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}}\n\t\t}\n\t\treturn &betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}\n\tcase SpeedBestCompression:\n\t\treturn &bestFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}\n\t}\n\tpanic(\"unknown compression level\")\n}\n\n// WithEncoderCRC will add CRC value to output.\n// Output will be 4 bytes larger.\n// Can be changed with ResetWithOptions.\nfunc WithEncoderCRC(b bool) EOption {\n\treturn func(o *encoderOptions) error { o.crc = b; return nil }\n}\n\n// WithEncoderConcurrency will set the concurrency,\n// meaning the maximum number of encoders to run concurrently.\n// The value supplied must be at least 0.\n// When a value of 0 is provided GOMAXPROCS will be used.\n// For streams, setting a value of 1 will disable async compression.\n// By default this will be set to GOMAXPROCS.\n// Cannot be changed with ResetWithOptions.\nfunc WithEncoderConcurrency(n int) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tif n < 0 {\n\t\t\treturn errors.New(\"concurrency must at least 0\")\n\t\t}\n\t\tif n == 0 {\n\t\t\tn = runtime.GOMAXPROCS(0)\n\t\t}\n\t\tif o.resetOpt && n != o.concurrent {\n\t\t\treturn errors.New(\"WithEncoderConcurrency cannot be changed on Reset\")\n\t\t}\n\t\to.concurrent = n\n\t\treturn nil\n\t}\n}\n\n// WithWindowSize will set the maximum allowed back-reference distance.\n// The value must be a power of two between MinWindowSize and MaxWindowSize.\n// A larger value will enable better compression but allocate more memory and,\n// for above-default values, take considerably longer.\n// The default value is determined by the compression level and max 8MB.\n// Cannot be changed with ResetWithOptions.\nfunc WithWindowSize(n int) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tswitch {\n\t\tcase n < MinWindowSize:\n\t\t\treturn fmt.Errorf(\"window size must be at least %d\", MinWindowSize)\n\t\tcase n > MaxWindowSize:\n\t\t\treturn fmt.Errorf(\"window size must be at most %d\", MaxWindowSize)\n\t\tcase (n & (n - 1)) != 0:\n\t\t\treturn errors.New(\"window size must be a power of 2\")\n\t\t}\n\t\tif o.resetOpt && n != o.windowSize {\n\t\t\treturn errors.New(\"WithWindowSize cannot be changed on Reset\")\n\t\t}\n\n\t\to.windowSize = n\n\t\to.customWindow = true\n\t\tif o.blockSize > o.windowSize {\n\t\t\to.blockSize = o.windowSize\n\t\t\to.customBlockSize = true\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithEncoderPadding will add padding to all output so the size will be a multiple of n.\n// This can be used to obfuscate the exact output size or make blocks of a certain size.\n// The contents will be a skippable frame, so it will be invisible by the decoder.\n// n must be > 0 and <= 1GB, 1<<30 bytes.\n// The padded area will be filled with data from crypto/rand.Reader.\n// If `EncodeAll` is used with data already in the destination, the total size will be multiple of this.\n// Can be changed with ResetWithOptions.\nfunc WithEncoderPadding(n int) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tif n <= 0 {\n\t\t\treturn fmt.Errorf(\"padding must be at least 1\")\n\t\t}\n\t\t// No need to waste our time.\n\t\tif n == 1 {\n\t\t\tn = 0\n\t\t}\n\t\tif n > 1<<30 {\n\t\t\treturn fmt.Errorf(\"padding must less than 1GB (1<<30 bytes) \")\n\t\t}\n\t\to.pad = n\n\t\treturn nil\n\t}\n}\n\n// EncoderLevel predefines encoder compression levels.\n// Only use the constants made available, since the actual mapping\n// of these values are very likely to change and your compression could change\n// unpredictably when upgrading the library.\ntype EncoderLevel int\n\nconst (\n\tspeedNotSet EncoderLevel = iota\n\n\t// SpeedFastest will choose the fastest reasonable compression.\n\t// This is roughly equivalent to the fastest Zstandard mode.\n\tSpeedFastest\n\n\t// SpeedDefault is the default \"pretty fast\" compression option.\n\t// This is roughly equivalent to the default Zstandard mode (level 3).\n\tSpeedDefault\n\n\t// SpeedBetterCompression will yield better compression than the default.\n\t// Currently it is about zstd level 7-8 with ~ 2x-3x the default CPU usage.\n\t// By using this, notice that CPU usage may go up in the future.\n\tSpeedBetterCompression\n\n\t// SpeedBestCompression will choose the best available compression option.\n\t// This will offer the best compression no matter the CPU cost.\n\tSpeedBestCompression\n\n\t// speedLast should be kept as the last actual compression option.\n\t// The is not for external usage, but is used to keep track of the valid options.\n\tspeedLast\n)\n\n// EncoderLevelFromString will convert a string representation of an encoding level back\n// to a compression level. The compare is not case sensitive.\n// If the string wasn't recognized, (false, SpeedDefault) will be returned.\nfunc EncoderLevelFromString(s string) (bool, EncoderLevel) {\n\tfor l := speedNotSet + 1; l < speedLast; l++ {\n\t\tif strings.EqualFold(s, l.String()) {\n\t\t\treturn true, l\n\t\t}\n\t}\n\treturn false, SpeedDefault\n}\n\n// EncoderLevelFromZstd will return an encoder level that closest matches the compression\n// ratio of a specific zstd compression level.\n// Many input values will provide the same compression level.\nfunc EncoderLevelFromZstd(level int) EncoderLevel {\n\tswitch {\n\tcase level < 3:\n\t\treturn SpeedFastest\n\tcase level >= 3 && level < 6:\n\t\treturn SpeedDefault\n\tcase level >= 6 && level < 10:\n\t\treturn SpeedBetterCompression\n\tdefault:\n\t\treturn SpeedBestCompression\n\t}\n}\n\n// String provides a string representation of the compression level.\nfunc (e EncoderLevel) String() string {\n\tswitch e {\n\tcase SpeedFastest:\n\t\treturn \"fastest\"\n\tcase SpeedDefault:\n\t\treturn \"default\"\n\tcase SpeedBetterCompression:\n\t\treturn \"better\"\n\tcase SpeedBestCompression:\n\t\treturn \"best\"\n\tdefault:\n\t\treturn \"invalid\"\n\t}\n}\n\n// WithEncoderLevel specifies a predefined compression level.\n// Cannot be changed with ResetWithOptions.\nfunc WithEncoderLevel(l EncoderLevel) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tswitch {\n\t\tcase l <= speedNotSet || l >= speedLast:\n\t\t\treturn fmt.Errorf(\"unknown encoder level\")\n\t\t}\n\t\tif o.resetOpt && l != o.level {\n\t\t\treturn errors.New(\"WithEncoderLevel cannot be changed on Reset\")\n\t\t}\n\t\to.level = l\n\t\tif !o.customWindow {\n\t\t\tswitch o.level {\n\t\t\tcase SpeedFastest:\n\t\t\t\to.windowSize = 4 << 20\n\t\t\t\tif !o.customBlockSize {\n\t\t\t\t\to.blockSize = 1 << 16\n\t\t\t\t}\n\t\t\tcase SpeedDefault:\n\t\t\t\to.windowSize = 8 << 20\n\t\t\tcase SpeedBetterCompression:\n\t\t\t\to.windowSize = 8 << 20\n\t\t\tcase SpeedBestCompression:\n\t\t\t\to.windowSize = 8 << 20\n\t\t\t}\n\t\t}\n\t\tif !o.customALEntropy {\n\t\t\to.allLitEntropy = l > SpeedDefault\n\t\t}\n\n\t\treturn nil\n\t}\n}\n\n// WithZeroFrames will encode 0 length input as full frames.\n// This can be needed for compatibility with zstandard usage,\n// but is not needed for this package.\n// Can be changed with ResetWithOptions.\nfunc WithZeroFrames(b bool) EOption {\n\treturn func(o *encoderOptions) error {\n\t\to.fullZero = b\n\t\treturn nil\n\t}\n}\n\n// WithAllLitEntropyCompression will apply entropy compression if no matches are found.\n// Disabling this will skip incompressible data faster, but in cases with no matches but\n// skewed character distribution compression is lost.\n// Default value depends on the compression level selected.\n// Can be changed with ResetWithOptions.\nfunc WithAllLitEntropyCompression(b bool) EOption {\n\treturn func(o *encoderOptions) error {\n\t\to.customALEntropy = true\n\t\to.allLitEntropy = b\n\t\treturn nil\n\t}\n}\n\n// WithNoEntropyCompression will always skip entropy compression of literals.\n// This can be useful if content has matches, but unlikely to benefit from entropy\n// compression. Usually the slight speed improvement is not worth enabling this.\n// Can be changed with ResetWithOptions.\nfunc WithNoEntropyCompression(b bool) EOption {\n\treturn func(o *encoderOptions) error {\n\t\to.noEntropy = b\n\t\treturn nil\n\t}\n}\n\n// WithSingleSegment will set the \"single segment\" flag when EncodeAll is used.\n// If this flag is set, data must be regenerated within a single continuous memory segment.\n// In this case, Window_Descriptor byte is skipped, but Frame_Content_Size is necessarily present.\n// As a consequence, the decoder must allocate a memory segment of size equal or larger than size of your content.\n// In order to preserve the decoder from unreasonable memory requirements,\n// a decoder is allowed to reject a compressed frame which requests a memory size beyond decoder's authorized range.\n// For broader compatibility, decoders are recommended to support memory sizes of at least 8 MB.\n// This is only a recommendation, each decoder is free to support higher or lower limits, depending on local limitations.\n// If this is not specified, block encodes will automatically choose this based on the input size and the window size.\n// This setting has no effect on streamed encodes.\n// Can be changed with ResetWithOptions.\nfunc WithSingleSegment(b bool) EOption {\n\treturn func(o *encoderOptions) error {\n\t\to.single = &b\n\t\treturn nil\n\t}\n}\n\n// WithLowerEncoderMem will trade in some memory cases trade less memory usage for\n// slower encoding speed.\n// This will not change the window size which is the primary function for reducing\n// memory usage. See WithWindowSize.\n// Cannot be changed with ResetWithOptions.\nfunc WithLowerEncoderMem(b bool) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tif o.resetOpt && b != o.lowMem {\n\t\t\treturn errors.New(\"WithLowerEncoderMem cannot be changed on Reset\")\n\t\t}\n\t\to.lowMem = b\n\t\treturn nil\n\t}\n}\n\n// WithEncoderDict allows to register a dictionary that will be used for the encode.\n//\n// The slice dict must be in the [dictionary format] produced by\n// \"zstd --train\" from the Zstandard reference implementation.\n//\n// The encoder *may* choose to use no dictionary instead for certain payloads.\n// Can be changed with ResetWithOptions.\n//\n// [dictionary format]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format\nfunc WithEncoderDict(dict []byte) EOption {\n\treturn func(o *encoderOptions) error {\n\t\td, err := loadDict(dict)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\to.dict = d\n\t\treturn nil\n\t}\n}\n\n// WithEncoderDictRaw registers a dictionary that may be used by the encoder.\n//\n// The slice content may contain arbitrary data. It will be used as an initial\n// history.\n// Can be changed with ResetWithOptions.\nfunc WithEncoderDictRaw(id uint32, content []byte) EOption {\n\treturn func(o *encoderOptions) error {\n\t\tif bits.UintSize > 32 && uint(len(content)) > dictMaxLength {\n\t\t\treturn fmt.Errorf(\"dictionary of size %d > 2GiB too large\", len(content))\n\t\t}\n\t\to.dict = &dict{id: id, content: content, offsets: [3]int{1, 4, 8}}\n\t\treturn nil\n\t}\n}\n\n// WithEncoderDictDelete clears the dictionary, so no dictionary will be used.\n// Should be used with ResetWithOptions.\nfunc WithEncoderDictDelete() EOption {\n\treturn func(o *encoderOptions) error {\n\t\to.dict = nil\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/framedec.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"encoding/binary\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"io\"\n\n\t\"github.com/klauspost/compress/zstd/internal/xxhash\"\n)\n\ntype frameDec struct {\n\to   decoderOptions\n\tcrc *xxhash.Digest\n\n\tWindowSize uint64\n\n\t// Frame history passed between blocks\n\thistory history\n\n\trawInput byteBuffer\n\n\t// Byte buffer that can be reused for small input blocks.\n\tbBuf byteBuf\n\n\tFrameContentSize uint64\n\n\tDictionaryID  uint32\n\tHasCheckSum   bool\n\tSingleSegment bool\n}\n\nconst (\n\t// MinWindowSize is the minimum Window Size, which is 1 KB.\n\tMinWindowSize = 1 << 10\n\n\t// MaxWindowSize is the maximum encoder window size\n\t// and the default decoder maximum window size.\n\tMaxWindowSize = 1 << 29\n)\n\nconst (\n\tframeMagic          = \"\\x28\\xb5\\x2f\\xfd\"\n\tskippableFrameMagic = \"\\x2a\\x4d\\x18\"\n)\n\nfunc newFrameDec(o decoderOptions) *frameDec {\n\tif o.maxWindowSize > o.maxDecodedSize {\n\t\to.maxWindowSize = o.maxDecodedSize\n\t}\n\td := frameDec{\n\t\to: o,\n\t}\n\treturn &d\n}\n\n// reset will read the frame header and prepare for block decoding.\n// If nothing can be read from the input, io.EOF will be returned.\n// Any other error indicated that the stream contained data, but\n// there was a problem.\nfunc (d *frameDec) reset(br byteBuffer) error {\n\td.HasCheckSum = false\n\td.WindowSize = 0\n\tvar signature [4]byte\n\tfor {\n\t\tvar err error\n\t\t// Check if we can read more...\n\t\tb, err := br.readSmall(1)\n\t\tswitch err {\n\t\tcase io.EOF, io.ErrUnexpectedEOF:\n\t\t\treturn io.EOF\n\t\tcase nil:\n\t\t\tsignature[0] = b[0]\n\t\tdefault:\n\t\t\treturn err\n\t\t}\n\t\t// Read the rest, don't allow io.ErrUnexpectedEOF\n\t\tb, err = br.readSmall(3)\n\t\tswitch err {\n\t\tcase io.EOF:\n\t\t\treturn io.EOF\n\t\tcase nil:\n\t\t\tcopy(signature[1:], b)\n\t\tdefault:\n\t\t\treturn err\n\t\t}\n\n\t\tif string(signature[1:4]) != skippableFrameMagic || signature[0]&0xf0 != 0x50 {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"Not skippable\", hex.EncodeToString(signature[:]), hex.EncodeToString([]byte(skippableFrameMagic)))\n\t\t\t}\n\t\t\t// Break if not skippable frame.\n\t\t\tbreak\n\t\t}\n\t\t// Read size to skip\n\t\tb, err = br.readSmall(4)\n\t\tif err != nil {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"Reading Frame Size\", err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t\tn := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)\n\t\tprintln(\"Skipping frame with\", n, \"bytes.\")\n\t\terr = br.skipN(int64(n))\n\t\tif err != nil {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"Reading discarded frame\", err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\tif string(signature[:]) != frameMagic {\n\t\tif debugDecoder {\n\t\t\tprintln(\"Got magic numbers: \", signature, \"want:\", []byte(frameMagic))\n\t\t}\n\t\treturn ErrMagicMismatch\n\t}\n\n\t// Read Frame_Header_Descriptor\n\tfhd, err := br.readByte()\n\tif err != nil {\n\t\tif debugDecoder {\n\t\t\tprintln(\"Reading Frame_Header_Descriptor\", err)\n\t\t}\n\t\treturn err\n\t}\n\td.SingleSegment = fhd&(1<<5) != 0\n\n\tif fhd&(1<<3) != 0 {\n\t\treturn errors.New(\"reserved bit set on frame header\")\n\t}\n\n\t// Read Window_Descriptor\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#window_descriptor\n\td.WindowSize = 0\n\tif !d.SingleSegment {\n\t\twd, err := br.readByte()\n\t\tif err != nil {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"Reading Window_Descriptor\", err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintf(\"raw: %x, mantissa: %d, exponent: %d\\n\", wd, wd&7, wd>>3)\n\t\t}\n\t\twindowLog := 10 + (wd >> 3)\n\t\twindowBase := uint64(1) << windowLog\n\t\twindowAdd := (windowBase / 8) * uint64(wd&0x7)\n\t\td.WindowSize = windowBase + windowAdd\n\t}\n\n\t// Read Dictionary_ID\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id\n\td.DictionaryID = 0\n\tif size := fhd & 3; size != 0 {\n\t\tif size == 3 {\n\t\t\tsize = 4\n\t\t}\n\n\t\tb, err := br.readSmall(int(size))\n\t\tif err != nil {\n\t\t\tprintln(\"Reading Dictionary_ID\", err)\n\t\t\treturn err\n\t\t}\n\t\tvar id uint32\n\t\tswitch len(b) {\n\t\tcase 1:\n\t\t\tid = uint32(b[0])\n\t\tcase 2:\n\t\t\tid = uint32(b[0]) | (uint32(b[1]) << 8)\n\t\tcase 4:\n\t\t\tid = uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"Dict size\", size, \"ID:\", id)\n\t\t}\n\t\td.DictionaryID = id\n\t}\n\n\t// Read Frame_Content_Size\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#frame_content_size\n\tvar fcsSize int\n\tv := fhd >> 6\n\tswitch v {\n\tcase 0:\n\t\tif d.SingleSegment {\n\t\t\tfcsSize = 1\n\t\t}\n\tdefault:\n\t\tfcsSize = 1 << v\n\t}\n\td.FrameContentSize = fcsUnknown\n\tif fcsSize > 0 {\n\t\tb, err := br.readSmall(fcsSize)\n\t\tif err != nil {\n\t\t\tprintln(\"Reading Frame content\", err)\n\t\t\treturn err\n\t\t}\n\t\tswitch len(b) {\n\t\tcase 1:\n\t\t\td.FrameContentSize = uint64(b[0])\n\t\tcase 2:\n\t\t\t// When FCS_Field_Size is 2, the offset of 256 is added.\n\t\t\td.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256\n\t\tcase 4:\n\t\t\td.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24)\n\t\tcase 8:\n\t\t\td1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)\n\t\t\td2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24)\n\t\t\td.FrameContentSize = uint64(d1) | (uint64(d2) << 32)\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"Read FCS:\", d.FrameContentSize)\n\t\t}\n\t}\n\n\t// Move this to shared.\n\td.HasCheckSum = fhd&(1<<2) != 0\n\tif d.HasCheckSum {\n\t\tif d.crc == nil {\n\t\t\td.crc = xxhash.New()\n\t\t}\n\t\td.crc.Reset()\n\t}\n\n\tif d.WindowSize > d.o.maxWindowSize {\n\t\tif debugDecoder {\n\t\t\tprintf(\"window size %d > max %d\\n\", d.WindowSize, d.o.maxWindowSize)\n\t\t}\n\t\treturn ErrWindowSizeExceeded\n\t}\n\n\tif d.WindowSize == 0 && d.SingleSegment {\n\t\t// We may not need window in this case.\n\t\td.WindowSize = max(d.FrameContentSize, MinWindowSize)\n\t\tif d.WindowSize > d.o.maxDecodedSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintf(\"window size %d > max %d\\n\", d.WindowSize, d.o.maxWindowSize)\n\t\t\t}\n\t\t\treturn ErrDecoderSizeExceeded\n\t\t}\n\t}\n\n\t// The minimum Window_Size is 1 KB.\n\tif d.WindowSize < MinWindowSize {\n\t\tif debugDecoder {\n\t\t\tprintln(\"got window size: \", d.WindowSize)\n\t\t}\n\t\treturn ErrWindowSizeTooSmall\n\t}\n\td.history.windowSize = int(d.WindowSize)\n\tif !d.o.lowMem || d.history.windowSize < maxBlockSize {\n\t\t// Alloc 2x window size if not low-mem, or window size below 2MB.\n\t\td.history.allocFrameBuffer = d.history.windowSize * 2\n\t} else {\n\t\tif d.o.lowMem {\n\t\t\t// Alloc with 1MB extra.\n\t\t\td.history.allocFrameBuffer = d.history.windowSize + maxBlockSize/2\n\t\t} else {\n\t\t\t// Alloc with 2MB extra.\n\t\t\td.history.allocFrameBuffer = d.history.windowSize + maxBlockSize\n\t\t}\n\t}\n\n\tif debugDecoder {\n\t\tprintln(\"Frame: Dict:\", d.DictionaryID, \"FrameContentSize:\", d.FrameContentSize, \"singleseg:\", d.SingleSegment, \"window:\", d.WindowSize, \"crc:\", d.HasCheckSum)\n\t}\n\n\t// history contains input - maybe we do something\n\td.rawInput = br\n\treturn nil\n}\n\n// next will start decoding the next block from stream.\nfunc (d *frameDec) next(block *blockDec) error {\n\tif debugDecoder {\n\t\tprintln(\"decoding new block\")\n\t}\n\terr := block.reset(d.rawInput, d.WindowSize)\n\tif err != nil {\n\t\tprintln(\"block error:\", err)\n\t\t// Signal the frame decoder we have a problem.\n\t\tblock.sendErr(err)\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// checkCRC will check the checksum, assuming the frame has one.\n// Will return ErrCRCMismatch if crc check failed, otherwise nil.\nfunc (d *frameDec) checkCRC() error {\n\t// We can overwrite upper tmp now\n\tbuf, err := d.rawInput.readSmall(4)\n\tif err != nil {\n\t\tprintln(\"CRC missing?\", err)\n\t\treturn err\n\t}\n\n\twant := binary.LittleEndian.Uint32(buf[:4])\n\tgot := uint32(d.crc.Sum64())\n\n\tif got != want {\n\t\tif debugDecoder {\n\t\t\tprintf(\"CRC check failed: got %08x, want %08x\\n\", got, want)\n\t\t}\n\t\treturn ErrCRCMismatch\n\t}\n\tif debugDecoder {\n\t\tprintf(\"CRC ok %08x\\n\", got)\n\t}\n\treturn nil\n}\n\n// consumeCRC skips over the checksum, assuming the frame has one.\nfunc (d *frameDec) consumeCRC() error {\n\t_, err := d.rawInput.readSmall(4)\n\tif err != nil {\n\t\tprintln(\"CRC missing?\", err)\n\t}\n\treturn err\n}\n\n// runDecoder will run the decoder for the remainder of the frame.\nfunc (d *frameDec) runDecoder(dst []byte, dec *blockDec) ([]byte, error) {\n\tsaved := d.history.b\n\n\t// We use the history for output to avoid copying it.\n\td.history.b = dst\n\td.history.ignoreBuffer = len(dst)\n\t// Store input length, so we only check new data.\n\tcrcStart := len(dst)\n\td.history.decoders.maxSyncLen = 0\n\tif d.o.limitToCap {\n\t\td.history.decoders.maxSyncLen = uint64(cap(dst) - len(dst))\n\t}\n\tif d.FrameContentSize != fcsUnknown {\n\t\tif !d.o.limitToCap || d.FrameContentSize+uint64(len(dst)) < d.history.decoders.maxSyncLen {\n\t\t\td.history.decoders.maxSyncLen = d.FrameContentSize + uint64(len(dst))\n\t\t}\n\t\tif d.history.decoders.maxSyncLen > d.o.maxDecodedSize {\n\t\t\tif debugDecoder {\n\t\t\t\tprintln(\"maxSyncLen:\", d.history.decoders.maxSyncLen, \"> maxDecodedSize:\", d.o.maxDecodedSize)\n\t\t\t}\n\t\t\treturn dst, ErrDecoderSizeExceeded\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"maxSyncLen:\", d.history.decoders.maxSyncLen)\n\t\t}\n\t\tif !d.o.limitToCap && uint64(cap(dst)) < d.history.decoders.maxSyncLen {\n\t\t\t// Alloc for output\n\t\t\tdst2 := make([]byte, len(dst), d.history.decoders.maxSyncLen+compressedBlockOverAlloc)\n\t\t\tcopy(dst2, dst)\n\t\t\tdst = dst2\n\t\t}\n\t}\n\tvar err error\n\tfor {\n\t\terr = dec.reset(d.rawInput, d.WindowSize)\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"next block:\", dec)\n\t\t}\n\t\terr = dec.decodeBuf(&d.history)\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif uint64(len(d.history.b)-crcStart) > d.o.maxDecodedSize {\n\t\t\tprintln(\"runDecoder: maxDecodedSize exceeded\", uint64(len(d.history.b)-crcStart), \">\", d.o.maxDecodedSize)\n\t\t\terr = ErrDecoderSizeExceeded\n\t\t\tbreak\n\t\t}\n\t\tif d.o.limitToCap && len(d.history.b) > cap(dst) {\n\t\t\tprintln(\"runDecoder: cap exceeded\", uint64(len(d.history.b)), \">\", cap(dst))\n\t\t\terr = ErrDecoderSizeExceeded\n\t\t\tbreak\n\t\t}\n\t\tif uint64(len(d.history.b)-crcStart) > d.FrameContentSize {\n\t\t\tprintln(\"runDecoder: FrameContentSize exceeded\", uint64(len(d.history.b)-crcStart), \">\", d.FrameContentSize)\n\t\t\terr = ErrFrameSizeExceeded\n\t\t\tbreak\n\t\t}\n\t\tif dec.Last {\n\t\t\tbreak\n\t\t}\n\t\tif debugDecoder {\n\t\t\tprintln(\"runDecoder: FrameContentSize\", uint64(len(d.history.b)-crcStart), \"<=\", d.FrameContentSize)\n\t\t}\n\t}\n\tdst = d.history.b\n\tif err == nil {\n\t\tif d.FrameContentSize != fcsUnknown && uint64(len(d.history.b)-crcStart) != d.FrameContentSize {\n\t\t\terr = ErrFrameSizeMismatch\n\t\t} else if d.HasCheckSum {\n\t\t\tif d.o.ignoreChecksum {\n\t\t\t\terr = d.consumeCRC()\n\t\t\t} else {\n\t\t\t\td.crc.Write(dst[crcStart:])\n\t\t\t\terr = d.checkCRC()\n\t\t\t}\n\t\t}\n\t}\n\td.history.b = saved\n\treturn dst, err\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/frameenc.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n)\n\ntype frameHeader struct {\n\tContentSize   uint64\n\tWindowSize    uint32\n\tSingleSegment bool\n\tChecksum      bool\n\tDictID        uint32\n}\n\nconst maxHeaderSize = 14\n\nfunc (f frameHeader) appendTo(dst []byte) []byte {\n\tdst = append(dst, frameMagic...)\n\tvar fhd uint8\n\tif f.Checksum {\n\t\tfhd |= 1 << 2\n\t}\n\tif f.SingleSegment {\n\t\tfhd |= 1 << 5\n\t}\n\n\tvar dictIDContent []byte\n\tif f.DictID > 0 {\n\t\tvar tmp [4]byte\n\t\tif f.DictID < 256 {\n\t\t\tfhd |= 1\n\t\t\ttmp[0] = uint8(f.DictID)\n\t\t\tdictIDContent = tmp[:1]\n\t\t} else if f.DictID < 1<<16 {\n\t\t\tfhd |= 2\n\t\t\tbinary.LittleEndian.PutUint16(tmp[:2], uint16(f.DictID))\n\t\t\tdictIDContent = tmp[:2]\n\t\t} else {\n\t\t\tfhd |= 3\n\t\t\tbinary.LittleEndian.PutUint32(tmp[:4], f.DictID)\n\t\t\tdictIDContent = tmp[:4]\n\t\t}\n\t}\n\tvar fcs uint8\n\tif f.ContentSize >= 256 {\n\t\tfcs++\n\t}\n\tif f.ContentSize >= 65536+256 {\n\t\tfcs++\n\t}\n\tif f.ContentSize >= 0xffffffff {\n\t\tfcs++\n\t}\n\n\tfhd |= fcs << 6\n\n\tdst = append(dst, fhd)\n\tif !f.SingleSegment {\n\t\tconst winLogMin = 10\n\t\twindowLog := (bits.Len32(f.WindowSize-1) - winLogMin) << 3\n\t\tdst = append(dst, uint8(windowLog))\n\t}\n\tif f.DictID > 0 {\n\t\tdst = append(dst, dictIDContent...)\n\t}\n\tswitch fcs {\n\tcase 0:\n\t\tif f.SingleSegment {\n\t\t\tdst = append(dst, uint8(f.ContentSize))\n\t\t}\n\t\t// Unless SingleSegment is set, framessizes < 256 are not stored.\n\tcase 1:\n\t\tf.ContentSize -= 256\n\t\tdst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8))\n\tcase 2:\n\t\tdst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24))\n\tcase 3:\n\t\tdst = append(dst, uint8(f.ContentSize), uint8(f.ContentSize>>8), uint8(f.ContentSize>>16), uint8(f.ContentSize>>24),\n\t\t\tuint8(f.ContentSize>>32), uint8(f.ContentSize>>40), uint8(f.ContentSize>>48), uint8(f.ContentSize>>56))\n\tdefault:\n\t\tpanic(\"invalid fcs\")\n\t}\n\treturn dst\n}\n\nconst skippableFrameHeader = 4 + 4\n\n// calcSkippableFrame will return a total size to be added for written\n// to be divisible by multiple.\n// The value will always be > skippableFrameHeader.\n// The function will panic if written < 0 or wantMultiple <= 0.\nfunc calcSkippableFrame(written, wantMultiple int64) int {\n\tif wantMultiple <= 0 {\n\t\tpanic(\"wantMultiple <= 0\")\n\t}\n\tif written < 0 {\n\t\tpanic(\"written < 0\")\n\t}\n\tleftOver := written % wantMultiple\n\tif leftOver == 0 {\n\t\treturn 0\n\t}\n\ttoAdd := wantMultiple - leftOver\n\tfor toAdd < skippableFrameHeader {\n\t\ttoAdd += wantMultiple\n\t}\n\treturn int(toAdd)\n}\n\n// skippableFrame will add a skippable frame with a total size of bytes.\n// total should be >= skippableFrameHeader and < math.MaxUint32.\nfunc skippableFrame(dst []byte, total int, r io.Reader) ([]byte, error) {\n\tif total == 0 {\n\t\treturn dst, nil\n\t}\n\tif total < skippableFrameHeader {\n\t\treturn dst, fmt.Errorf(\"requested skippable frame (%d) < 8\", total)\n\t}\n\tif int64(total) > math.MaxUint32 {\n\t\treturn dst, fmt.Errorf(\"requested skippable frame (%d) > max uint32\", total)\n\t}\n\tdst = append(dst, 0x50, 0x2a, 0x4d, 0x18)\n\tf := uint32(total - skippableFrameHeader)\n\tdst = append(dst, uint8(f), uint8(f>>8), uint8(f>>16), uint8(f>>24))\n\tstart := len(dst)\n\tdst = append(dst, make([]byte, f)...)\n\t_, err := io.ReadFull(r, dst[start:])\n\treturn dst, err\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_decoder.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n)\n\nconst (\n\ttablelogAbsoluteMax = 9\n)\n\nconst (\n\t/*!MEMORY_USAGE :\n\t *  Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.)\n\t *  Increasing memory usage improves compression ratio\n\t *  Reduced memory usage can improve speed, due to cache effect\n\t *  Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */\n\tmaxMemoryUsage = tablelogAbsoluteMax + 2\n\n\tmaxTableLog    = maxMemoryUsage - 2\n\tmaxTablesize   = 1 << maxTableLog\n\tmaxTableMask   = (1 << maxTableLog) - 1\n\tminTablelog    = 5\n\tmaxSymbolValue = 255\n)\n\n// fseDecoder provides temporary storage for compression and decompression.\ntype fseDecoder struct {\n\tdt             [maxTablesize]decSymbol // Decompression table.\n\tsymbolLen      uint16                  // Length of active part of the symbol table.\n\tactualTableLog uint8                   // Selected tablelog.\n\tmaxBits        uint8                   // Maximum number of additional bits\n\n\t// used for table creation to avoid allocations.\n\tstateTable [256]uint16\n\tnorm       [maxSymbolValue + 1]int16\n\tpreDefined bool\n}\n\n// tableStep returns the next table index.\nfunc tableStep(tableSize uint32) uint32 {\n\treturn (tableSize >> 1) + (tableSize >> 3) + 3\n}\n\n// readNCount will read the symbol distribution so decoding tables can be constructed.\nfunc (s *fseDecoder) readNCount(b *byteReader, maxSymbol uint16) error {\n\tvar (\n\t\tcharnum   uint16\n\t\tprevious0 bool\n\t)\n\tif b.remain() < 4 {\n\t\treturn errors.New(\"input too small\")\n\t}\n\tbitStream := b.Uint32NC()\n\tnbBits := uint((bitStream & 0xF) + minTablelog) // extract tableLog\n\tif nbBits > tablelogAbsoluteMax {\n\t\tprintln(\"Invalid tablelog:\", nbBits)\n\t\treturn errors.New(\"tableLog too large\")\n\t}\n\tbitStream >>= 4\n\tbitCount := uint(4)\n\n\ts.actualTableLog = uint8(nbBits)\n\tremaining := int32((1 << nbBits) + 1)\n\tthreshold := int32(1 << nbBits)\n\tgotTotal := int32(0)\n\tnbBits++\n\n\tfor remaining > 1 && charnum <= maxSymbol {\n\t\tif previous0 {\n\t\t\t//println(\"prev0\")\n\t\t\tn0 := charnum\n\t\t\tfor (bitStream & 0xFFFF) == 0xFFFF {\n\t\t\t\t//println(\"24 x 0\")\n\t\t\t\tn0 += 24\n\t\t\t\tif r := b.remain(); r > 5 {\n\t\t\t\t\tb.advance(2)\n\t\t\t\t\t// The check above should make sure we can read 32 bits\n\t\t\t\t\tbitStream = b.Uint32NC() >> bitCount\n\t\t\t\t} else {\n\t\t\t\t\t// end of bit stream\n\t\t\t\t\tbitStream >>= 16\n\t\t\t\t\tbitCount += 16\n\t\t\t\t}\n\t\t\t}\n\t\t\t//printf(\"bitstream: %d, 0b%b\", bitStream&3, bitStream)\n\t\t\tfor (bitStream & 3) == 3 {\n\t\t\t\tn0 += 3\n\t\t\t\tbitStream >>= 2\n\t\t\t\tbitCount += 2\n\t\t\t}\n\t\t\tn0 += uint16(bitStream & 3)\n\t\t\tbitCount += 2\n\n\t\t\tif n0 > maxSymbolValue {\n\t\t\t\treturn errors.New(\"maxSymbolValue too small\")\n\t\t\t}\n\t\t\t//println(\"inserting \", n0-charnum, \"zeroes from idx\", charnum, \"ending before\", n0)\n\t\t\tfor charnum < n0 {\n\t\t\t\ts.norm[uint8(charnum)] = 0\n\t\t\t\tcharnum++\n\t\t\t}\n\n\t\t\tif r := b.remain(); r >= 7 || r-int(bitCount>>3) >= 4 {\n\t\t\t\tb.advance(bitCount >> 3)\n\t\t\t\tbitCount &= 7\n\t\t\t\t// The check above should make sure we can read 32 bits\n\t\t\t\tbitStream = b.Uint32NC() >> bitCount\n\t\t\t} else {\n\t\t\t\tbitStream >>= 2\n\t\t\t}\n\t\t}\n\n\t\tmax := (2*threshold - 1) - remaining\n\t\tvar count int32\n\n\t\tif int32(bitStream)&(threshold-1) < max {\n\t\t\tcount = int32(bitStream) & (threshold - 1)\n\t\t\tif debugAsserts && nbBits < 1 {\n\t\t\t\tpanic(\"nbBits underflow\")\n\t\t\t}\n\t\t\tbitCount += nbBits - 1\n\t\t} else {\n\t\t\tcount = int32(bitStream) & (2*threshold - 1)\n\t\t\tif count >= threshold {\n\t\t\t\tcount -= max\n\t\t\t}\n\t\t\tbitCount += nbBits\n\t\t}\n\n\t\t// extra accuracy\n\t\tcount--\n\t\tif count < 0 {\n\t\t\t// -1 means +1\n\t\t\tremaining += count\n\t\t\tgotTotal -= count\n\t\t} else {\n\t\t\tremaining -= count\n\t\t\tgotTotal += count\n\t\t}\n\t\ts.norm[charnum&0xff] = int16(count)\n\t\tcharnum++\n\t\tprevious0 = count == 0\n\t\tfor remaining < threshold {\n\t\t\tnbBits--\n\t\t\tthreshold >>= 1\n\t\t}\n\n\t\tif r := b.remain(); r >= 7 || r-int(bitCount>>3) >= 4 {\n\t\t\tb.advance(bitCount >> 3)\n\t\t\tbitCount &= 7\n\t\t\t// The check above should make sure we can read 32 bits\n\t\t\tbitStream = b.Uint32NC() >> (bitCount & 31)\n\t\t} else {\n\t\t\tbitCount -= (uint)(8 * (len(b.b) - 4 - b.off))\n\t\t\tb.off = len(b.b) - 4\n\t\t\tbitStream = b.Uint32() >> (bitCount & 31)\n\t\t}\n\t}\n\ts.symbolLen = charnum\n\tif s.symbolLen <= 1 {\n\t\treturn fmt.Errorf(\"symbolLen (%d) too small\", s.symbolLen)\n\t}\n\tif s.symbolLen > maxSymbolValue+1 {\n\t\treturn fmt.Errorf(\"symbolLen (%d) too big\", s.symbolLen)\n\t}\n\tif remaining != 1 {\n\t\treturn fmt.Errorf(\"corruption detected (remaining %d != 1)\", remaining)\n\t}\n\tif bitCount > 32 {\n\t\treturn fmt.Errorf(\"corruption detected (bitCount %d > 32)\", bitCount)\n\t}\n\tif gotTotal != 1<<s.actualTableLog {\n\t\treturn fmt.Errorf(\"corruption detected (total %d != %d)\", gotTotal, 1<<s.actualTableLog)\n\t}\n\tb.advance((bitCount + 7) >> 3)\n\treturn s.buildDtable()\n}\n\nfunc (s *fseDecoder) mustReadFrom(r io.Reader) {\n\tfatalErr := func(err error) {\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\t// \tdt             [maxTablesize]decSymbol // Decompression table.\n\t//\tsymbolLen      uint16                  // Length of active part of the symbol table.\n\t//\tactualTableLog uint8                   // Selected tablelog.\n\t//\tmaxBits        uint8                   // Maximum number of additional bits\n\t//\t// used for table creation to avoid allocations.\n\t//\tstateTable [256]uint16\n\t//\tnorm       [maxSymbolValue + 1]int16\n\t//\tpreDefined bool\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.dt))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.symbolLen))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.actualTableLog))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.maxBits))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.stateTable))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.norm))\n\tfatalErr(binary.Read(r, binary.LittleEndian, &s.preDefined))\n}\n\n// decSymbol contains information about a state entry,\n// Including the state offset base, the output symbol and\n// the number of bits to read for the low part of the destination state.\n// Using a composite uint64 is faster than a struct with separate members.\ntype decSymbol uint64\n\nfunc newDecSymbol(nbits, addBits uint8, newState uint16, baseline uint32) decSymbol {\n\treturn decSymbol(nbits) | (decSymbol(addBits) << 8) | (decSymbol(newState) << 16) | (decSymbol(baseline) << 32)\n}\n\nfunc (d decSymbol) nbBits() uint8 {\n\treturn uint8(d)\n}\n\nfunc (d decSymbol) addBits() uint8 {\n\treturn uint8(d >> 8)\n}\n\nfunc (d decSymbol) newState() uint16 {\n\treturn uint16(d >> 16)\n}\n\nfunc (d decSymbol) baselineInt() int {\n\treturn int(d >> 32)\n}\n\nfunc (d *decSymbol) setNBits(nBits uint8) {\n\tconst mask = 0xffffffffffffff00\n\t*d = (*d & mask) | decSymbol(nBits)\n}\n\nfunc (d *decSymbol) setAddBits(addBits uint8) {\n\tconst mask = 0xffffffffffff00ff\n\t*d = (*d & mask) | (decSymbol(addBits) << 8)\n}\n\nfunc (d *decSymbol) setNewState(state uint16) {\n\tconst mask = 0xffffffff0000ffff\n\t*d = (*d & mask) | decSymbol(state)<<16\n}\n\nfunc (d *decSymbol) setExt(addBits uint8, baseline uint32) {\n\tconst mask = 0xffff00ff\n\t*d = (*d & mask) | (decSymbol(addBits) << 8) | (decSymbol(baseline) << 32)\n}\n\n// decSymbolValue returns the transformed decSymbol for the given symbol.\nfunc decSymbolValue(symb uint8, t []baseOffset) (decSymbol, error) {\n\tif int(symb) >= len(t) {\n\t\treturn 0, fmt.Errorf(\"rle symbol %d >= max %d\", symb, len(t))\n\t}\n\tlu := t[symb]\n\treturn newDecSymbol(0, lu.addBits, 0, lu.baseLine), nil\n}\n\n// setRLE will set the decoder til RLE mode.\nfunc (s *fseDecoder) setRLE(symbol decSymbol) {\n\ts.actualTableLog = 0\n\ts.maxBits = symbol.addBits()\n\ts.dt[0] = symbol\n}\n\n// transform will transform the decoder table into a table usable for\n// decoding without having to apply the transformation while decoding.\n// The state will contain the base value and the number of bits to read.\nfunc (s *fseDecoder) transform(t []baseOffset) error {\n\ttableSize := uint16(1 << s.actualTableLog)\n\ts.maxBits = 0\n\tfor i, v := range s.dt[:tableSize] {\n\t\tadd := v.addBits()\n\t\tif int(add) >= len(t) {\n\t\t\treturn fmt.Errorf(\"invalid decoding table entry %d, symbol %d >= max (%d)\", i, v.addBits(), len(t))\n\t\t}\n\t\tlu := t[add]\n\t\tif lu.addBits > s.maxBits {\n\t\t\ts.maxBits = lu.addBits\n\t\t}\n\t\tv.setExt(lu.addBits, lu.baseLine)\n\t\ts.dt[i] = v\n\t}\n\treturn nil\n}\n\ntype fseState struct {\n\tdt    []decSymbol\n\tstate decSymbol\n}\n\n// Initialize and decodeAsync first state and symbol.\nfunc (s *fseState) init(br *bitReader, tableLog uint8, dt []decSymbol) {\n\ts.dt = dt\n\tbr.fill()\n\ts.state = dt[br.getBits(tableLog)]\n}\n\n// final returns the current state symbol without decoding the next.\nfunc (s decSymbol) final() (int, uint8) {\n\treturn s.baselineInt(), s.addBits()\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.go",
    "content": "//go:build amd64 && !appengine && !noasm && gc\n// +build amd64,!appengine,!noasm,gc\n\npackage zstd\n\nimport (\n\t\"fmt\"\n)\n\ntype buildDtableAsmContext struct {\n\t// inputs\n\tstateTable *uint16\n\tnorm       *int16\n\tdt         *uint64\n\n\t// outputs --- set by the procedure in the case of error;\n\t// for interpretation please see the error handling part below\n\terrParam1 uint64\n\terrParam2 uint64\n}\n\n// buildDtable_asm is an x86 assembly implementation of fseDecoder.buildDtable.\n// Function returns non-zero exit code on error.\n//\n//go:noescape\nfunc buildDtable_asm(s *fseDecoder, ctx *buildDtableAsmContext) int\n\n// please keep in sync with _generate/gen_fse.go\nconst (\n\terrorCorruptedNormalizedCounter = 1\n\terrorNewStateTooBig             = 2\n\terrorNewStateNoBits             = 3\n)\n\n// buildDtable will build the decoding table.\nfunc (s *fseDecoder) buildDtable() error {\n\tctx := buildDtableAsmContext{\n\t\tstateTable: &s.stateTable[0],\n\t\tnorm:       &s.norm[0],\n\t\tdt:         (*uint64)(&s.dt[0]),\n\t}\n\tcode := buildDtable_asm(s, &ctx)\n\n\tif code != 0 {\n\t\tswitch code {\n\t\tcase errorCorruptedNormalizedCounter:\n\t\t\tposition := ctx.errParam1\n\t\t\treturn fmt.Errorf(\"corrupted input (position=%d, expected 0)\", position)\n\n\t\tcase errorNewStateTooBig:\n\t\t\tnewState := decSymbol(ctx.errParam1)\n\t\t\tsize := ctx.errParam2\n\t\t\treturn fmt.Errorf(\"newState (%d) outside table size (%d)\", newState, size)\n\n\t\tcase errorNewStateNoBits:\n\t\t\tnewState := decSymbol(ctx.errParam1)\n\t\t\toldState := decSymbol(ctx.errParam2)\n\t\t\treturn fmt.Errorf(\"newState (%d) == oldState (%d) and no bits\", newState, oldState)\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"buildDtable_asm returned unhandled nonzero code = %d\", code)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.s",
    "content": "// Code generated by command: go run gen_fse.go -out ../fse_decoder_amd64.s -pkg=zstd. DO NOT EDIT.\n\n//go:build !appengine && !noasm && gc && !noasm\n\n// func buildDtable_asm(s *fseDecoder, ctx *buildDtableAsmContext) int\nTEXT ·buildDtable_asm(SB), $0-24\n\tMOVQ ctx+8(FP), CX\n\tMOVQ s+0(FP), DI\n\n\t// Load values\n\tMOVBQZX 4098(DI), DX\n\tXORQ    AX, AX\n\tBTSQ    DX, AX\n\tMOVQ    (CX), BX\n\tMOVQ    16(CX), SI\n\tLEAQ    -1(AX), R8\n\tMOVQ    8(CX), CX\n\tMOVWQZX 4096(DI), DI\n\n\t// End load values\n\t// Init, lay down lowprob symbols\n\tXORQ R9, R9\n\tJMP  init_main_loop_condition\n\ninit_main_loop:\n\tMOVWQSX (CX)(R9*2), R10\n\tCMPW    R10, $-1\n\tJNE     do_not_update_high_threshold\n\tMOVB    R9, 1(SI)(R8*8)\n\tDECQ    R8\n\tMOVQ    $0x0000000000000001, R10\n\ndo_not_update_high_threshold:\n\tMOVW R10, (BX)(R9*2)\n\tINCQ R9\n\ninit_main_loop_condition:\n\tCMPQ R9, DI\n\tJL   init_main_loop\n\n\t// Spread symbols\n\t// Calculate table step\n\tMOVQ AX, R9\n\tSHRQ $0x01, R9\n\tMOVQ AX, R10\n\tSHRQ $0x03, R10\n\tLEAQ 3(R9)(R10*1), R9\n\n\t// Fill add bits values\n\tLEAQ -1(AX), R10\n\tXORQ R11, R11\n\tXORQ R12, R12\n\tJMP  spread_main_loop_condition\n\nspread_main_loop:\n\tXORQ    R13, R13\n\tMOVWQSX (CX)(R12*2), R14\n\tJMP     spread_inner_loop_condition\n\nspread_inner_loop:\n\tMOVB R12, 1(SI)(R11*8)\n\nadjust_position:\n\tADDQ R9, R11\n\tANDQ R10, R11\n\tCMPQ R11, R8\n\tJG   adjust_position\n\tINCQ R13\n\nspread_inner_loop_condition:\n\tCMPQ R13, R14\n\tJL   spread_inner_loop\n\tINCQ R12\n\nspread_main_loop_condition:\n\tCMPQ  R12, DI\n\tJL    spread_main_loop\n\tTESTQ R11, R11\n\tJZ    spread_check_ok\n\tMOVQ  ctx+8(FP), AX\n\tMOVQ  R11, 24(AX)\n\tMOVQ  $+1, ret+16(FP)\n\tRET\n\nspread_check_ok:\n\t// Build Decoding table\n\tXORQ DI, DI\n\nbuild_table_main_table:\n\tMOVBQZX 1(SI)(DI*8), CX\n\tMOVWQZX (BX)(CX*2), R8\n\tLEAQ    1(R8), R9\n\tMOVW    R9, (BX)(CX*2)\n\tMOVQ    R8, R9\n\tBSRQ    R9, R9\n\tMOVQ    DX, CX\n\tSUBQ    R9, CX\n\tSHLQ    CL, R8\n\tSUBQ    AX, R8\n\tMOVB    CL, (SI)(DI*8)\n\tMOVW    R8, 2(SI)(DI*8)\n\tCMPQ    R8, AX\n\tJLE     build_table_check1_ok\n\tMOVQ    ctx+8(FP), CX\n\tMOVQ    R8, 24(CX)\n\tMOVQ    AX, 32(CX)\n\tMOVQ    $+2, ret+16(FP)\n\tRET\n\nbuild_table_check1_ok:\n\tTESTB CL, CL\n\tJNZ   build_table_check2_ok\n\tCMPW  R8, DI\n\tJNE   build_table_check2_ok\n\tMOVQ  ctx+8(FP), AX\n\tMOVQ  R8, 24(AX)\n\tMOVQ  DI, 32(AX)\n\tMOVQ  $+3, ret+16(FP)\n\tRET\n\nbuild_table_check2_ok:\n\tINCQ DI\n\tCMPQ DI, AX\n\tJL   build_table_main_table\n\tMOVQ $+0, ret+16(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_decoder_generic.go",
    "content": "//go:build !amd64 || appengine || !gc || noasm\n// +build !amd64 appengine !gc noasm\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// buildDtable will build the decoding table.\nfunc (s *fseDecoder) buildDtable() error {\n\ttableSize := uint32(1 << s.actualTableLog)\n\thighThreshold := tableSize - 1\n\tsymbolNext := s.stateTable[:256]\n\n\t// Init, lay down lowprob symbols\n\t{\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tif v == -1 {\n\t\t\t\ts.dt[highThreshold].setAddBits(uint8(i))\n\t\t\t\thighThreshold--\n\t\t\t\tv = 1\n\t\t\t}\n\t\t\tsymbolNext[i] = uint16(v)\n\t\t}\n\t}\n\n\t// Spread symbols\n\t{\n\t\ttableMask := tableSize - 1\n\t\tstep := tableStep(tableSize)\n\t\tposition := uint32(0)\n\t\tfor ss, v := range s.norm[:s.symbolLen] {\n\t\t\tfor i := 0; i < int(v); i++ {\n\t\t\t\ts.dt[position].setAddBits(uint8(ss))\n\t\t\t\tfor {\n\t\t\t\t\t// lowprob area\n\t\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\t\tif position <= highThreshold {\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\t\tif position != 0 {\n\t\t\t// position must reach all cells once, otherwise normalizedCounter is incorrect\n\t\t\treturn errors.New(\"corrupted input (position != 0)\")\n\t\t}\n\t}\n\n\t// Build Decoding table\n\t{\n\t\ttableSize := uint16(1 << s.actualTableLog)\n\t\tfor u, v := range s.dt[:tableSize] {\n\t\t\tsymbol := v.addBits()\n\t\t\tnextState := symbolNext[symbol]\n\t\t\tsymbolNext[symbol] = nextState + 1\n\t\t\tnBits := s.actualTableLog - byte(highBits(uint32(nextState)))\n\t\t\ts.dt[u&maxTableMask].setNBits(nBits)\n\t\t\tnewState := (nextState << nBits) - tableSize\n\t\t\tif newState > tableSize {\n\t\t\t\treturn fmt.Errorf(\"newState (%d) outside table size (%d)\", newState, tableSize)\n\t\t\t}\n\t\t\tif newState == uint16(u) && nBits == 0 {\n\t\t\t\t// Seems weird that this is possible with nbits > 0.\n\t\t\t\treturn fmt.Errorf(\"newState (%d) == oldState (%d) and no bits\", newState, u)\n\t\t\t}\n\t\t\ts.dt[u&maxTableMask].setNewState(newState)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_encoder.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n)\n\nconst (\n\t// For encoding we only support up to\n\tmaxEncTableLog    = 8\n\tmaxEncTablesize   = 1 << maxTableLog\n\tmaxEncTableMask   = (1 << maxTableLog) - 1\n\tminEncTablelog    = 5\n\tmaxEncSymbolValue = maxMatchLengthSymbol\n)\n\n// Scratch provides temporary storage for compression and decompression.\ntype fseEncoder struct {\n\tsymbolLen      uint16 // Length of active part of the symbol table.\n\tactualTableLog uint8  // Selected tablelog.\n\tct             cTable // Compression tables.\n\tmaxCount       int    // count of the most probable symbol\n\tzeroBits       bool   // no bits has prob > 50%.\n\tclearCount     bool   // clear count\n\tuseRLE         bool   // This encoder is for RLE\n\tpreDefined     bool   // This encoder is predefined.\n\treUsed         bool   // Set to know when the encoder has been reused.\n\trleVal         uint8  // RLE Symbol\n\tmaxBits        uint8  // Maximum output bits after transform.\n\n\t// TODO: Technically zstd should be fine with 64 bytes.\n\tcount [256]uint32\n\tnorm  [256]int16\n}\n\n// cTable contains tables used for compression.\ntype cTable struct {\n\ttableSymbol []byte\n\tstateTable  []uint16\n\tsymbolTT    []symbolTransform\n}\n\n// symbolTransform contains the state transform for a symbol.\ntype symbolTransform struct {\n\tdeltaNbBits    uint32\n\tdeltaFindState int16\n\toutBits        uint8\n}\n\n// String prints values as a human readable string.\nfunc (s symbolTransform) String() string {\n\treturn fmt.Sprintf(\"{deltabits: %08x, findstate:%d outbits:%d}\", s.deltaNbBits, s.deltaFindState, s.outBits)\n}\n\n// Histogram allows to populate the histogram and skip that step in the compression,\n// It otherwise allows to inspect the histogram when compression is done.\n// To indicate that you have populated the histogram call HistogramFinished\n// with the value of the highest populated symbol, as well as the number of entries\n// in the most populated entry. These are accepted at face value.\nfunc (s *fseEncoder) Histogram() *[256]uint32 {\n\treturn &s.count\n}\n\n// HistogramFinished can be called to indicate that the histogram has been populated.\n// maxSymbol is the index of the highest set symbol of the next data segment.\n// maxCount is the number of entries in the most populated entry.\n// These are accepted at face value.\nfunc (s *fseEncoder) HistogramFinished(maxSymbol uint8, maxCount int) {\n\ts.maxCount = maxCount\n\ts.symbolLen = uint16(maxSymbol) + 1\n\ts.clearCount = maxCount != 0\n}\n\n// allocCtable will allocate tables needed for compression.\n// If existing tables a re big enough, they are simply re-used.\nfunc (s *fseEncoder) allocCtable() {\n\ttableSize := 1 << s.actualTableLog\n\t// get tableSymbol that is big enough.\n\tif cap(s.ct.tableSymbol) < tableSize {\n\t\ts.ct.tableSymbol = make([]byte, tableSize)\n\t}\n\ts.ct.tableSymbol = s.ct.tableSymbol[:tableSize]\n\n\tctSize := tableSize\n\tif cap(s.ct.stateTable) < ctSize {\n\t\ts.ct.stateTable = make([]uint16, ctSize)\n\t}\n\ts.ct.stateTable = s.ct.stateTable[:ctSize]\n\n\tif cap(s.ct.symbolTT) < 256 {\n\t\ts.ct.symbolTT = make([]symbolTransform, 256)\n\t}\n\ts.ct.symbolTT = s.ct.symbolTT[:256]\n}\n\n// buildCTable will populate the compression table so it is ready to be used.\nfunc (s *fseEncoder) buildCTable() error {\n\ttableSize := uint32(1 << s.actualTableLog)\n\thighThreshold := tableSize - 1\n\tvar cumul [256]int16\n\n\ts.allocCtable()\n\ttableSymbol := s.ct.tableSymbol[:tableSize]\n\t// symbol start positions\n\t{\n\t\tcumul[0] = 0\n\t\tfor ui, v := range s.norm[:s.symbolLen-1] {\n\t\t\tu := byte(ui) // one less than reference\n\t\t\tif v == -1 {\n\t\t\t\t// Low proba symbol\n\t\t\t\tcumul[u+1] = cumul[u] + 1\n\t\t\t\ttableSymbol[highThreshold] = u\n\t\t\t\thighThreshold--\n\t\t\t} else {\n\t\t\t\tcumul[u+1] = cumul[u] + v\n\t\t\t}\n\t\t}\n\t\t// Encode last symbol separately to avoid overflowing u\n\t\tu := int(s.symbolLen - 1)\n\t\tv := s.norm[s.symbolLen-1]\n\t\tif v == -1 {\n\t\t\t// Low proba symbol\n\t\t\tcumul[u+1] = cumul[u] + 1\n\t\t\ttableSymbol[highThreshold] = byte(u)\n\t\t\thighThreshold--\n\t\t} else {\n\t\t\tcumul[u+1] = cumul[u] + v\n\t\t}\n\t\tif uint32(cumul[s.symbolLen]) != tableSize {\n\t\t\treturn fmt.Errorf(\"internal error: expected cumul[s.symbolLen] (%d) == tableSize (%d)\", cumul[s.symbolLen], tableSize)\n\t\t}\n\t\tcumul[s.symbolLen] = int16(tableSize) + 1\n\t}\n\t// Spread symbols\n\ts.zeroBits = false\n\t{\n\t\tstep := tableStep(tableSize)\n\t\ttableMask := tableSize - 1\n\t\tvar position uint32\n\t\t// if any symbol > largeLimit, we may have 0 bits output.\n\t\tlargeLimit := int16(1 << (s.actualTableLog - 1))\n\t\tfor ui, v := range s.norm[:s.symbolLen] {\n\t\t\tsymbol := byte(ui)\n\t\t\tif v > largeLimit {\n\t\t\t\ts.zeroBits = true\n\t\t\t}\n\t\t\tfor range v {\n\t\t\t\ttableSymbol[position] = symbol\n\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\tfor position > highThreshold {\n\t\t\t\t\tposition = (position + step) & tableMask\n\t\t\t\t} /* Low proba area */\n\t\t\t}\n\t\t}\n\n\t\t// Check if we have gone through all positions\n\t\tif position != 0 {\n\t\t\treturn errors.New(\"position!=0\")\n\t\t}\n\t}\n\n\t// Build table\n\ttable := s.ct.stateTable\n\t{\n\t\ttsi := int(tableSize)\n\t\tfor u, v := range tableSymbol {\n\t\t\t// TableU16 : sorted by symbol order; gives next state value\n\t\t\ttable[cumul[v]] = uint16(tsi + u)\n\t\t\tcumul[v]++\n\t\t}\n\t}\n\n\t// Build Symbol Transformation Table\n\t{\n\t\ttotal := int16(0)\n\t\tsymbolTT := s.ct.symbolTT[:s.symbolLen]\n\t\ttableLog := s.actualTableLog\n\t\ttl := (uint32(tableLog) << 16) - (1 << tableLog)\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tswitch v {\n\t\t\tcase 0:\n\t\t\tcase -1, 1:\n\t\t\t\tsymbolTT[i].deltaNbBits = tl\n\t\t\t\tsymbolTT[i].deltaFindState = total - 1\n\t\t\t\ttotal++\n\t\t\tdefault:\n\t\t\t\tmaxBitsOut := uint32(tableLog) - highBit(uint32(v-1))\n\t\t\t\tminStatePlus := uint32(v) << maxBitsOut\n\t\t\t\tsymbolTT[i].deltaNbBits = (maxBitsOut << 16) - minStatePlus\n\t\t\t\tsymbolTT[i].deltaFindState = total - v\n\t\t\t\ttotal += v\n\t\t\t}\n\t\t}\n\t\tif total != int16(tableSize) {\n\t\t\treturn fmt.Errorf(\"total mismatch %d (got) != %d (want)\", total, tableSize)\n\t\t}\n\t}\n\treturn nil\n}\n\nvar rtbTable = [...]uint32{0, 473195, 504333, 520860, 550000, 700000, 750000, 830000}\n\nfunc (s *fseEncoder) setRLE(val byte) {\n\ts.allocCtable()\n\ts.actualTableLog = 0\n\ts.ct.stateTable = s.ct.stateTable[:1]\n\ts.ct.symbolTT[val] = symbolTransform{\n\t\tdeltaFindState: 0,\n\t\tdeltaNbBits:    0,\n\t}\n\tif debugEncoder {\n\t\tprintln(\"setRLE: val\", val, \"symbolTT\", s.ct.symbolTT[val])\n\t}\n\ts.rleVal = val\n\ts.useRLE = true\n}\n\n// setBits will set output bits for the transform.\n// if nil is provided, the number of bits is equal to the index.\nfunc (s *fseEncoder) setBits(transform []byte) {\n\tif s.reUsed || s.preDefined {\n\t\treturn\n\t}\n\tif s.useRLE {\n\t\tif transform == nil {\n\t\t\ts.ct.symbolTT[s.rleVal].outBits = s.rleVal\n\t\t\ts.maxBits = s.rleVal\n\t\t\treturn\n\t\t}\n\t\ts.maxBits = transform[s.rleVal]\n\t\ts.ct.symbolTT[s.rleVal].outBits = s.maxBits\n\t\treturn\n\t}\n\tif transform == nil {\n\t\tfor i := range s.ct.symbolTT[:s.symbolLen] {\n\t\t\ts.ct.symbolTT[i].outBits = uint8(i)\n\t\t}\n\t\ts.maxBits = uint8(s.symbolLen - 1)\n\t\treturn\n\t}\n\ts.maxBits = 0\n\tfor i, v := range transform[:s.symbolLen] {\n\t\ts.ct.symbolTT[i].outBits = v\n\t\tif v > s.maxBits {\n\t\t\t// We could assume bits always going up, but we play safe.\n\t\t\ts.maxBits = v\n\t\t}\n\t}\n}\n\n// normalizeCount will normalize the count of the symbols so\n// the total is equal to the table size.\n// If successful, compression tables will also be made ready.\nfunc (s *fseEncoder) normalizeCount(length int) error {\n\tif s.reUsed {\n\t\treturn nil\n\t}\n\ts.optimalTableLog(length)\n\tvar (\n\t\ttableLog          = s.actualTableLog\n\t\tscale             = 62 - uint64(tableLog)\n\t\tstep              = (1 << 62) / uint64(length)\n\t\tvStep             = uint64(1) << (scale - 20)\n\t\tstillToDistribute = int16(1 << tableLog)\n\t\tlargest           int\n\t\tlargestP          int16\n\t\tlowThreshold      = (uint32)(length >> tableLog)\n\t)\n\tif s.maxCount == length {\n\t\ts.useRLE = true\n\t\treturn nil\n\t}\n\ts.useRLE = false\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t// already handled\n\t\t// if (count[s] == s.length) return 0;   /* rle special case */\n\n\t\tif cnt == 0 {\n\t\t\ts.norm[i] = 0\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowThreshold {\n\t\t\ts.norm[i] = -1\n\t\t\tstillToDistribute--\n\t\t} else {\n\t\t\tproba := (int16)((uint64(cnt) * step) >> scale)\n\t\t\tif proba < 8 {\n\t\t\t\trestToBeat := vStep * uint64(rtbTable[proba])\n\t\t\t\tv := uint64(cnt)*step - (uint64(proba) << scale)\n\t\t\t\tif v > restToBeat {\n\t\t\t\t\tproba++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif proba > largestP {\n\t\t\t\tlargestP = proba\n\t\t\t\tlargest = i\n\t\t\t}\n\t\t\ts.norm[i] = proba\n\t\t\tstillToDistribute -= proba\n\t\t}\n\t}\n\n\tif -stillToDistribute >= (s.norm[largest] >> 1) {\n\t\t// corner case, need another normalization method\n\t\terr := s.normalizeCount2(length)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif debugAsserts {\n\t\t\terr = s.validateNorm()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn s.buildCTable()\n\t}\n\ts.norm[largest] += stillToDistribute\n\tif debugAsserts {\n\t\terr := s.validateNorm()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn s.buildCTable()\n}\n\n// Secondary normalization method.\n// To be used when primary method fails.\nfunc (s *fseEncoder) normalizeCount2(length int) error {\n\tconst notYetAssigned = -2\n\tvar (\n\t\tdistributed  uint32\n\t\ttotal        = uint32(length)\n\t\ttableLog     = s.actualTableLog\n\t\tlowThreshold = total >> tableLog\n\t\tlowOne       = (total * 3) >> (tableLog + 1)\n\t)\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\tif cnt == 0 {\n\t\t\ts.norm[i] = 0\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowThreshold {\n\t\t\ts.norm[i] = -1\n\t\t\tdistributed++\n\t\t\ttotal -= cnt\n\t\t\tcontinue\n\t\t}\n\t\tif cnt <= lowOne {\n\t\t\ts.norm[i] = 1\n\t\t\tdistributed++\n\t\t\ttotal -= cnt\n\t\t\tcontinue\n\t\t}\n\t\ts.norm[i] = notYetAssigned\n\t}\n\ttoDistribute := (1 << tableLog) - distributed\n\n\tif (total / toDistribute) > lowOne {\n\t\t// risk of rounding to zero\n\t\tlowOne = (total * 3) / (toDistribute * 2)\n\t\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t\tif (s.norm[i] == notYetAssigned) && (cnt <= lowOne) {\n\t\t\t\ts.norm[i] = 1\n\t\t\t\tdistributed++\n\t\t\t\ttotal -= cnt\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\ttoDistribute = (1 << tableLog) - distributed\n\t}\n\tif distributed == uint32(s.symbolLen)+1 {\n\t\t// all values are pretty poor;\n\t\t//   probably incompressible data (should have already been detected);\n\t\t//   find max, then give all remaining points to max\n\t\tvar maxV int\n\t\tvar maxC uint32\n\t\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\t\tif cnt > maxC {\n\t\t\t\tmaxV = i\n\t\t\t\tmaxC = cnt\n\t\t\t}\n\t\t}\n\t\ts.norm[maxV] += int16(toDistribute)\n\t\treturn nil\n\t}\n\n\tif total == 0 {\n\t\t// all of the symbols were low enough for the lowOne or lowThreshold\n\t\tfor i := uint32(0); toDistribute > 0; i = (i + 1) % (uint32(s.symbolLen)) {\n\t\t\tif s.norm[i] > 0 {\n\t\t\t\ttoDistribute--\n\t\t\t\ts.norm[i]++\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tvar (\n\t\tvStepLog = 62 - uint64(tableLog)\n\t\tmid      = uint64((1 << (vStepLog - 1)) - 1)\n\t\trStep    = (((1 << vStepLog) * uint64(toDistribute)) + mid) / uint64(total) // scale on remaining\n\t\ttmpTotal = mid\n\t)\n\tfor i, cnt := range s.count[:s.symbolLen] {\n\t\tif s.norm[i] == notYetAssigned {\n\t\t\tvar (\n\t\t\t\tend    = tmpTotal + uint64(cnt)*rStep\n\t\t\t\tsStart = uint32(tmpTotal >> vStepLog)\n\t\t\t\tsEnd   = uint32(end >> vStepLog)\n\t\t\t\tweight = sEnd - sStart\n\t\t\t)\n\t\t\tif weight < 1 {\n\t\t\t\treturn errors.New(\"weight < 1\")\n\t\t\t}\n\t\t\ts.norm[i] = int16(weight)\n\t\t\ttmpTotal = end\n\t\t}\n\t}\n\treturn nil\n}\n\n// optimalTableLog calculates and sets the optimal tableLog in s.actualTableLog\nfunc (s *fseEncoder) optimalTableLog(length int) {\n\ttableLog := uint8(maxEncTableLog)\n\tminBitsSrc := highBit(uint32(length)) + 1\n\tminBitsSymbols := highBit(uint32(s.symbolLen-1)) + 2\n\tminBits := uint8(minBitsSymbols)\n\tif minBitsSrc < minBitsSymbols {\n\t\tminBits = uint8(minBitsSrc)\n\t}\n\n\tmaxBitsSrc := uint8(highBit(uint32(length-1))) - 2\n\tif maxBitsSrc < tableLog {\n\t\t// Accuracy can be reduced\n\t\ttableLog = maxBitsSrc\n\t}\n\tif minBits > tableLog {\n\t\ttableLog = minBits\n\t}\n\t// Need a minimum to safely represent all symbol values\n\tif tableLog < minEncTablelog {\n\t\ttableLog = minEncTablelog\n\t}\n\tif tableLog > maxEncTableLog {\n\t\ttableLog = maxEncTableLog\n\t}\n\ts.actualTableLog = tableLog\n}\n\n// validateNorm validates the normalized histogram table.\nfunc (s *fseEncoder) validateNorm() (err error) {\n\tvar total int\n\tfor _, v := range s.norm[:s.symbolLen] {\n\t\tif v >= 0 {\n\t\t\ttotal += int(v)\n\t\t} else {\n\t\t\ttotal -= int(v)\n\t\t}\n\t}\n\tdefer func() {\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t\tfmt.Printf(\"selected TableLog: %d, Symbol length: %d\\n\", s.actualTableLog, s.symbolLen)\n\t\tfor i, v := range s.norm[:s.symbolLen] {\n\t\t\tfmt.Printf(\"%3d: %5d -> %4d \\n\", i, s.count[i], v)\n\t\t}\n\t}()\n\tif total != (1 << s.actualTableLog) {\n\t\treturn fmt.Errorf(\"warning: Total == %d != %d\", total, 1<<s.actualTableLog)\n\t}\n\tfor i, v := range s.count[s.symbolLen:] {\n\t\tif v != 0 {\n\t\t\treturn fmt.Errorf(\"warning: Found symbol out of range, %d after cut\", i)\n\t\t}\n\t}\n\treturn nil\n}\n\n// writeCount will write the normalized histogram count to header.\n// This is read back by readNCount.\nfunc (s *fseEncoder) writeCount(out []byte) ([]byte, error) {\n\tif s.useRLE {\n\t\treturn append(out, s.rleVal), nil\n\t}\n\tif s.preDefined || s.reUsed {\n\t\t// Never write predefined.\n\t\treturn out, nil\n\t}\n\n\tvar (\n\t\ttableLog  = s.actualTableLog\n\t\ttableSize = 1 << tableLog\n\t\tprevious0 bool\n\t\tcharnum   uint16\n\n\t\t// maximum header size plus 2 extra bytes for final output if bitCount == 0.\n\t\tmaxHeaderSize = ((int(s.symbolLen) * int(tableLog)) >> 3) + 3 + 2\n\n\t\t// Write Table Size\n\t\tbitStream = uint32(tableLog - minEncTablelog)\n\t\tbitCount  = uint(4)\n\t\tremaining = int16(tableSize + 1) /* +1 for extra accuracy */\n\t\tthreshold = int16(tableSize)\n\t\tnbBits    = uint(tableLog + 1)\n\t\toutP      = len(out)\n\t)\n\tif cap(out) < outP+maxHeaderSize {\n\t\tout = append(out, make([]byte, maxHeaderSize*3)...)\n\t\tout = out[:len(out)-maxHeaderSize*3]\n\t}\n\tout = out[:outP+maxHeaderSize]\n\n\t// stops at 1\n\tfor remaining > 1 {\n\t\tif previous0 {\n\t\t\tstart := charnum\n\t\t\tfor s.norm[charnum] == 0 {\n\t\t\t\tcharnum++\n\t\t\t}\n\t\t\tfor charnum >= start+24 {\n\t\t\t\tstart += 24\n\t\t\t\tbitStream += uint32(0xFFFF) << bitCount\n\t\t\t\tout[outP] = byte(bitStream)\n\t\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\t\toutP += 2\n\t\t\t\tbitStream >>= 16\n\t\t\t}\n\t\t\tfor charnum >= start+3 {\n\t\t\t\tstart += 3\n\t\t\t\tbitStream += 3 << bitCount\n\t\t\t\tbitCount += 2\n\t\t\t}\n\t\t\tbitStream += uint32(charnum-start) << bitCount\n\t\t\tbitCount += 2\n\t\t\tif bitCount > 16 {\n\t\t\t\tout[outP] = byte(bitStream)\n\t\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\t\toutP += 2\n\t\t\t\tbitStream >>= 16\n\t\t\t\tbitCount -= 16\n\t\t\t}\n\t\t}\n\n\t\tcount := s.norm[charnum]\n\t\tcharnum++\n\t\tmax := (2*threshold - 1) - remaining\n\t\tif count < 0 {\n\t\t\tremaining += count\n\t\t} else {\n\t\t\tremaining -= count\n\t\t}\n\t\tcount++ // +1 for extra accuracy\n\t\tif count >= threshold {\n\t\t\tcount += max // [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[\n\t\t}\n\t\tbitStream += uint32(count) << bitCount\n\t\tbitCount += nbBits\n\t\tif count < max {\n\t\t\tbitCount--\n\t\t}\n\n\t\tprevious0 = count == 1\n\t\tif remaining < 1 {\n\t\t\treturn nil, errors.New(\"internal error: remaining < 1\")\n\t\t}\n\t\tfor remaining < threshold {\n\t\t\tnbBits--\n\t\t\tthreshold >>= 1\n\t\t}\n\n\t\tif bitCount > 16 {\n\t\t\tout[outP] = byte(bitStream)\n\t\t\tout[outP+1] = byte(bitStream >> 8)\n\t\t\toutP += 2\n\t\t\tbitStream >>= 16\n\t\t\tbitCount -= 16\n\t\t}\n\t}\n\n\tif outP+2 > len(out) {\n\t\treturn nil, fmt.Errorf(\"internal error: %d > %d, maxheader: %d, sl: %d, tl: %d, normcount: %v\", outP+2, len(out), maxHeaderSize, s.symbolLen, int(tableLog), s.norm[:s.symbolLen])\n\t}\n\tout[outP] = byte(bitStream)\n\tout[outP+1] = byte(bitStream >> 8)\n\toutP += int((bitCount + 7) / 8)\n\n\tif charnum > s.symbolLen {\n\t\treturn nil, errors.New(\"internal error: charnum > s.symbolLen\")\n\t}\n\treturn out[:outP], nil\n}\n\n// Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits)\n// note 1 : assume symbolValue is valid (<= maxSymbolValue)\n// note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits *\nfunc (s *fseEncoder) bitCost(symbolValue uint8, accuracyLog uint32) uint32 {\n\tminNbBits := s.ct.symbolTT[symbolValue].deltaNbBits >> 16\n\tthreshold := (minNbBits + 1) << 16\n\tif debugAsserts {\n\t\tif !(s.actualTableLog < 16) {\n\t\t\tpanic(\"!s.actualTableLog < 16\")\n\t\t}\n\t\t// ensure enough room for renormalization double shift\n\t\tif !(uint8(accuracyLog) < 31-s.actualTableLog) {\n\t\t\tpanic(\"!uint8(accuracyLog) < 31-s.actualTableLog\")\n\t\t}\n\t}\n\ttableSize := uint32(1) << s.actualTableLog\n\tdeltaFromThreshold := threshold - (s.ct.symbolTT[symbolValue].deltaNbBits + tableSize)\n\t// linear interpolation (very approximate)\n\tnormalizedDeltaFromThreshold := (deltaFromThreshold << accuracyLog) >> s.actualTableLog\n\tbitMultiplier := uint32(1) << accuracyLog\n\tif debugAsserts {\n\t\tif s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold {\n\t\t\tpanic(\"s.ct.symbolTT[symbolValue].deltaNbBits+tableSize > threshold\")\n\t\t}\n\t\tif normalizedDeltaFromThreshold > bitMultiplier {\n\t\t\tpanic(\"normalizedDeltaFromThreshold > bitMultiplier\")\n\t\t}\n\t}\n\treturn (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold\n}\n\n// Returns the cost in bits of encoding the distribution in count using ctable.\n// Histogram should only be up to the last non-zero symbol.\n// Returns an -1 if ctable cannot represent all the symbols in count.\nfunc (s *fseEncoder) approxSize(hist []uint32) uint32 {\n\tif int(s.symbolLen) < len(hist) {\n\t\t// More symbols than we have.\n\t\treturn math.MaxUint32\n\t}\n\tif s.useRLE {\n\t\t// We will never reuse RLE encoders.\n\t\treturn math.MaxUint32\n\t}\n\tconst kAccuracyLog = 8\n\tbadCost := (uint32(s.actualTableLog) + 1) << kAccuracyLog\n\tvar cost uint32\n\tfor i, v := range hist {\n\t\tif v == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif s.norm[i] == 0 {\n\t\t\treturn math.MaxUint32\n\t\t}\n\t\tbitCost := s.bitCost(uint8(i), kAccuracyLog)\n\t\tif bitCost > badCost {\n\t\t\treturn math.MaxUint32\n\t\t}\n\t\tcost += v * bitCost\n\t}\n\treturn cost >> kAccuracyLog\n}\n\n// maxHeaderSize returns the maximum header size in bits.\n// This is not exact size, but we want a penalty for new tables anyway.\nfunc (s *fseEncoder) maxHeaderSize() uint32 {\n\tif s.preDefined {\n\t\treturn 0\n\t}\n\tif s.useRLE {\n\t\treturn 8\n\t}\n\treturn (((uint32(s.symbolLen) * uint32(s.actualTableLog)) >> 3) + 3) * 8\n}\n\n// cState contains the compression state of a stream.\ntype cState struct {\n\tbw         *bitWriter\n\tstateTable []uint16\n\tstate      uint16\n}\n\n// init will initialize the compression state to the first symbol of the stream.\nfunc (c *cState) init(bw *bitWriter, ct *cTable, first symbolTransform) {\n\tc.bw = bw\n\tc.stateTable = ct.stateTable\n\tif len(c.stateTable) == 1 {\n\t\t// RLE\n\t\tc.stateTable[0] = uint16(0)\n\t\tc.state = 0\n\t\treturn\n\t}\n\tnbBitsOut := (first.deltaNbBits + (1 << 15)) >> 16\n\tim := int32((nbBitsOut << 16) - first.deltaNbBits)\n\tlu := (im >> nbBitsOut) + int32(first.deltaFindState)\n\tc.state = c.stateTable[lu]\n}\n\n// flush will write the tablelog to the output and flush the remaining full bytes.\nfunc (c *cState) flush(tableLog uint8) {\n\tc.bw.flush32()\n\tc.bw.addBits16NC(c.state, tableLog)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/fse_predefined.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sync\"\n)\n\nvar (\n\t// fsePredef are the predefined fse tables as defined here:\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions\n\t// These values are already transformed.\n\tfsePredef [3]fseDecoder\n\n\t// fsePredefEnc are the predefined encoder based on fse tables as defined here:\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions\n\t// These values are already transformed.\n\tfsePredefEnc [3]fseEncoder\n\n\t// symbolTableX contain the transformations needed for each type as defined in\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets\n\tsymbolTableX [3][]baseOffset\n\n\t// maxTableSymbol is the biggest supported symbol for each table type\n\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#the-codes-for-literals-lengths-match-lengths-and-offsets\n\tmaxTableSymbol = [3]uint8{tableLiteralLengths: maxLiteralLengthSymbol, tableOffsets: maxOffsetLengthSymbol, tableMatchLengths: maxMatchLengthSymbol}\n\n\t// bitTables is the bits table for each table.\n\tbitTables = [3][]byte{tableLiteralLengths: llBitsTable[:], tableOffsets: nil, tableMatchLengths: mlBitsTable[:]}\n)\n\ntype tableIndex uint8\n\nconst (\n\t// indexes for fsePredef and symbolTableX\n\ttableLiteralLengths tableIndex = 0\n\ttableOffsets        tableIndex = 1\n\ttableMatchLengths   tableIndex = 2\n\n\tmaxLiteralLengthSymbol = 35\n\tmaxOffsetLengthSymbol  = 30\n\tmaxMatchLengthSymbol   = 52\n)\n\n// baseOffset is used for calculating transformations.\ntype baseOffset struct {\n\tbaseLine uint32\n\taddBits  uint8\n}\n\n// fillBase will precalculate base offsets with the given bit distributions.\nfunc fillBase(dst []baseOffset, base uint32, bits ...uint8) {\n\tif len(bits) != len(dst) {\n\t\tpanic(fmt.Sprintf(\"len(dst) (%d) != len(bits) (%d)\", len(dst), len(bits)))\n\t}\n\tfor i, bit := range bits {\n\t\tif base > math.MaxInt32 {\n\t\t\tpanic(\"invalid decoding table, base overflows int32\")\n\t\t}\n\n\t\tdst[i] = baseOffset{\n\t\t\tbaseLine: base,\n\t\t\taddBits:  bit,\n\t\t}\n\t\tbase += 1 << bit\n\t}\n}\n\nvar predef sync.Once\n\nfunc initPredefined() {\n\tpredef.Do(func() {\n\t\t// Literals length codes\n\t\ttmp := make([]baseOffset, 36)\n\t\tfor i := range tmp[:16] {\n\t\t\ttmp[i] = baseOffset{\n\t\t\t\tbaseLine: uint32(i),\n\t\t\t\taddBits:  0,\n\t\t\t}\n\t\t}\n\t\tfillBase(tmp[16:], 16, 1, 1, 1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)\n\t\tsymbolTableX[tableLiteralLengths] = tmp\n\n\t\t// Match length codes\n\t\ttmp = make([]baseOffset, 53)\n\t\tfor i := range tmp[:32] {\n\t\t\ttmp[i] = baseOffset{\n\t\t\t\t// The transformation adds the 3 length.\n\t\t\t\tbaseLine: uint32(i) + 3,\n\t\t\t\taddBits:  0,\n\t\t\t}\n\t\t}\n\t\tfillBase(tmp[32:], 35, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)\n\t\tsymbolTableX[tableMatchLengths] = tmp\n\n\t\t// Offset codes\n\t\ttmp = make([]baseOffset, maxOffsetBits+1)\n\t\ttmp[1] = baseOffset{\n\t\t\tbaseLine: 1,\n\t\t\taddBits:  1,\n\t\t}\n\t\tfillBase(tmp[2:], 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)\n\t\tsymbolTableX[tableOffsets] = tmp\n\n\t\t// Fill predefined tables and transform them.\n\t\t// https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#default-distributions\n\t\tfor i := range fsePredef[:] {\n\t\t\tf := &fsePredef[i]\n\t\t\tswitch tableIndex(i) {\n\t\t\tcase tableLiteralLengths:\n\t\t\t\t// https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L243\n\t\t\t\tf.actualTableLog = 6\n\t\t\t\tcopy(f.norm[:], []int16{4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,\n\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1,\n\t\t\t\t\t-1, -1, -1, -1})\n\t\t\t\tf.symbolLen = 36\n\t\t\tcase tableOffsets:\n\t\t\t\t// https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L281\n\t\t\t\tf.actualTableLog = 5\n\t\t\t\tcopy(f.norm[:], []int16{\n\t\t\t\t\t1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,\n\t\t\t\t\t1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1})\n\t\t\t\tf.symbolLen = 29\n\t\t\tcase tableMatchLengths:\n\t\t\t\t//https://github.com/facebook/zstd/blob/ededcfca57366461021c922720878c81a5854a0a/lib/decompress/zstd_decompress_block.c#L304\n\t\t\t\tf.actualTableLog = 6\n\t\t\t\tcopy(f.norm[:], []int16{\n\t\t\t\t\t1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,\n\t\t\t\t\t1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n\t\t\t\t\t1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1,\n\t\t\t\t\t-1, -1, -1, -1, -1})\n\t\t\t\tf.symbolLen = 53\n\t\t\t}\n\t\t\tif err := f.buildDtable(); err != nil {\n\t\t\t\tpanic(fmt.Errorf(\"building table %v: %v\", tableIndex(i), err))\n\t\t\t}\n\t\t\tif err := f.transform(symbolTableX[i]); err != nil {\n\t\t\t\tpanic(fmt.Errorf(\"building table %v: %v\", tableIndex(i), err))\n\t\t\t}\n\t\t\tf.preDefined = true\n\n\t\t\t// Create encoder as well\n\t\t\tenc := &fsePredefEnc[i]\n\t\t\tcopy(enc.norm[:], f.norm[:])\n\t\t\tenc.symbolLen = f.symbolLen\n\t\t\tenc.actualTableLog = f.actualTableLog\n\t\t\tif err := enc.buildCTable(); err != nil {\n\t\t\t\tpanic(fmt.Errorf(\"building encoding table %v: %v\", tableIndex(i), err))\n\t\t\t}\n\t\t\tenc.setBits(bitTables[i])\n\t\t\tenc.preDefined = true\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/hash.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nconst (\n\tprime3bytes = 506832829\n\tprime4bytes = 2654435761\n\tprime5bytes = 889523592379\n\tprime6bytes = 227718039650203\n\tprime7bytes = 58295818150454627\n\tprime8bytes = 0xcf1bbcdcb7a56463\n)\n\n// hashLen returns a hash of the lowest mls bytes of with length output bits.\n// mls must be >=3 and <=8. Any other value will return hash for 4 bytes.\n// length should always be < 32.\n// Preferably length and mls should be a constant for inlining.\nfunc hashLen(u uint64, length, mls uint8) uint32 {\n\tswitch mls {\n\tcase 3:\n\t\treturn (uint32(u<<8) * prime3bytes) >> (32 - length)\n\tcase 5:\n\t\treturn uint32(((u << (64 - 40)) * prime5bytes) >> (64 - length))\n\tcase 6:\n\t\treturn uint32(((u << (64 - 48)) * prime6bytes) >> (64 - length))\n\tcase 7:\n\t\treturn uint32(((u << (64 - 56)) * prime7bytes) >> (64 - length))\n\tcase 8:\n\t\treturn uint32((u * prime8bytes) >> (64 - length))\n\tdefault:\n\t\treturn (uint32(u) * prime4bytes) >> (32 - length)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/history.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"github.com/klauspost/compress/huff0\"\n)\n\n// history contains the information transferred between blocks.\ntype history struct {\n\t// Literal decompression\n\thuffTree *huff0.Scratch\n\n\t// Sequence decompression\n\tdecoders      sequenceDecs\n\trecentOffsets [3]int\n\n\t// History buffer...\n\tb []byte\n\n\t// ignoreBuffer is meant to ignore a number of bytes\n\t// when checking for matches in history\n\tignoreBuffer int\n\n\twindowSize       int\n\tallocFrameBuffer int // needed?\n\terror            bool\n\tdict             *dict\n}\n\n// reset will reset the history to initial state of a frame.\n// The history must already have been initialized to the desired size.\nfunc (h *history) reset() {\n\th.b = h.b[:0]\n\th.ignoreBuffer = 0\n\th.error = false\n\th.recentOffsets = [3]int{1, 4, 8}\n\th.decoders.freeDecoders()\n\th.decoders = sequenceDecs{br: h.decoders.br}\n\th.freeHuffDecoder()\n\th.huffTree = nil\n\th.dict = nil\n\t//printf(\"history created: %+v (l: %d, c: %d)\", *h, len(h.b), cap(h.b))\n}\n\nfunc (h *history) freeHuffDecoder() {\n\tif h.huffTree != nil {\n\t\tif h.dict == nil || h.dict.litEnc != h.huffTree {\n\t\t\thuffDecoderPool.Put(h.huffTree)\n\t\t\th.huffTree = nil\n\t\t}\n\t}\n}\n\nfunc (h *history) setDict(dict *dict) {\n\tif dict == nil {\n\t\treturn\n\t}\n\th.dict = dict\n\th.decoders.litLengths = dict.llDec\n\th.decoders.offsets = dict.ofDec\n\th.decoders.matchLengths = dict.mlDec\n\th.decoders.dict = dict.content\n\th.recentOffsets = dict.offsets\n\th.huffTree = dict.litEnc\n}\n\n// append bytes to history.\n// This function will make sure there is space for it,\n// if the buffer has been allocated with enough extra space.\nfunc (h *history) append(b []byte) {\n\tif len(b) >= h.windowSize {\n\t\t// Discard all history by simply overwriting\n\t\th.b = h.b[:h.windowSize]\n\t\tcopy(h.b, b[len(b)-h.windowSize:])\n\t\treturn\n\t}\n\n\t// If there is space, append it.\n\tif len(b) < cap(h.b)-len(h.b) {\n\t\th.b = append(h.b, b...)\n\t\treturn\n\t}\n\n\t// Move data down so we only have window size left.\n\t// We know we have less than window size in b at this point.\n\tdiscard := len(b) + len(h.b) - h.windowSize\n\tcopy(h.b, h.b[discard:])\n\th.b = h.b[:h.windowSize]\n\tcopy(h.b[h.windowSize-len(b):], b)\n}\n\n// ensureBlock will ensure there is space for at least one block...\nfunc (h *history) ensureBlock() {\n\tif cap(h.b) < h.allocFrameBuffer {\n\t\th.b = make([]byte, 0, h.allocFrameBuffer)\n\t\treturn\n\t}\n\n\tavail := cap(h.b) - len(h.b)\n\tif avail >= h.windowSize || avail > maxCompressedBlockSize {\n\t\treturn\n\t}\n\t// Move data down so we only have window size left.\n\t// We know we have less than window size in b at this point.\n\tdiscard := len(h.b) - h.windowSize\n\tcopy(h.b, h.b[discard:])\n\th.b = h.b[:h.windowSize]\n}\n\n// append bytes to history without ever discarding anything.\nfunc (h *history) appendKeep(b []byte) {\n\th.b = append(h.b, b...)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md",
    "content": "# xxhash\n\nVENDORED: Go to [github.com/cespare/xxhash](https://github.com/cespare/xxhash) for original package.\n\nxxhash is a Go implementation of the 64-bit [xxHash] algorithm, XXH64. This is a\nhigh-quality hashing algorithm that is much faster than anything in the Go\nstandard library.\n\nThis package provides a straightforward API:\n\n```\nfunc Sum64(b []byte) uint64\nfunc Sum64String(s string) uint64\ntype Digest struct{ ... }\n    func New() *Digest\n```\n\nThe `Digest` type implements hash.Hash64. Its key methods are:\n\n```\nfunc (*Digest) Write([]byte) (int, error)\nfunc (*Digest) WriteString(string) (int, error)\nfunc (*Digest) Sum64() uint64\n```\n\nThe package is written with optimized pure Go and also contains even faster\nassembly implementations for amd64 and arm64. If desired, the `purego` build tag\nopts into using the Go code even on those architectures.\n\n[xxHash]: http://cyan4973.github.io/xxHash/\n\n## Compatibility\n\nThis package is in a module and the latest code is in version 2 of the module.\nYou need a version of Go with at least \"minimal module compatibility\" to use\ngithub.com/cespare/xxhash/v2:\n\n* 1.9.7+ for Go 1.9\n* 1.10.3+ for Go 1.10\n* Go 1.11 or later\n\nI recommend using the latest release of Go.\n\n## Benchmarks\n\nHere are some quick benchmarks comparing the pure-Go and assembly\nimplementations of Sum64.\n\n| input size | purego    | asm       |\n| ---------- | --------- | --------- |\n| 4 B        |  1.3 GB/s |  1.2 GB/s |\n| 16 B       |  2.9 GB/s |  3.5 GB/s |\n| 100 B      |  6.9 GB/s |  8.1 GB/s |\n| 4 KB       | 11.7 GB/s | 16.7 GB/s |\n| 10 MB      | 12.0 GB/s | 17.3 GB/s |\n\nThese numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C\nCPU using the following commands under Go 1.19.2:\n\n```\nbenchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$')\nbenchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$')\n```\n\n## Projects using this package\n\n- [InfluxDB](https://github.com/influxdata/influxdb)\n- [Prometheus](https://github.com/prometheus/prometheus)\n- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)\n- [FreeCache](https://github.com/coocood/freecache)\n- [FastCache](https://github.com/VictoriaMetrics/fastcache)\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go",
    "content": "// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described\n// at http://cyan4973.github.io/xxHash/.\n// THIS IS VENDORED: Go to github.com/cespare/xxhash for original package.\n\npackage xxhash\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"math/bits\"\n)\n\nconst (\n\tprime1 uint64 = 11400714785074694791\n\tprime2 uint64 = 14029467366897019727\n\tprime3 uint64 = 1609587929392839161\n\tprime4 uint64 = 9650029242287828579\n\tprime5 uint64 = 2870177450012600261\n)\n\n// Store the primes in an array as well.\n//\n// The consts are used when possible in Go code to avoid MOVs but we need a\n// contiguous array of the assembly code.\nvar primes = [...]uint64{prime1, prime2, prime3, prime4, prime5}\n\n// Digest implements hash.Hash64.\ntype Digest struct {\n\tv1    uint64\n\tv2    uint64\n\tv3    uint64\n\tv4    uint64\n\ttotal uint64\n\tmem   [32]byte\n\tn     int // how much of mem is used\n}\n\n// New creates a new Digest that computes the 64-bit xxHash algorithm.\nfunc New() *Digest {\n\tvar d Digest\n\td.Reset()\n\treturn &d\n}\n\n// Reset clears the Digest's state so that it can be reused.\nfunc (d *Digest) Reset() {\n\td.v1 = primes[0] + prime2\n\td.v2 = prime2\n\td.v3 = 0\n\td.v4 = -primes[0]\n\td.total = 0\n\td.n = 0\n}\n\n// Size always returns 8 bytes.\nfunc (d *Digest) Size() int { return 8 }\n\n// BlockSize always returns 32 bytes.\nfunc (d *Digest) BlockSize() int { return 32 }\n\n// Write adds more data to d. It always returns len(b), nil.\nfunc (d *Digest) Write(b []byte) (n int, err error) {\n\tn = len(b)\n\td.total += uint64(n)\n\n\tmemleft := d.mem[d.n&(len(d.mem)-1):]\n\n\tif d.n+n < 32 {\n\t\t// This new data doesn't even fill the current block.\n\t\tcopy(memleft, b)\n\t\td.n += n\n\t\treturn\n\t}\n\n\tif d.n > 0 {\n\t\t// Finish off the partial block.\n\t\tc := copy(memleft, b)\n\t\td.v1 = round(d.v1, u64(d.mem[0:8]))\n\t\td.v2 = round(d.v2, u64(d.mem[8:16]))\n\t\td.v3 = round(d.v3, u64(d.mem[16:24]))\n\t\td.v4 = round(d.v4, u64(d.mem[24:32]))\n\t\tb = b[c:]\n\t\td.n = 0\n\t}\n\n\tif len(b) >= 32 {\n\t\t// One or more full blocks left.\n\t\tnw := writeBlocks(d, b)\n\t\tb = b[nw:]\n\t}\n\n\t// Store any remaining partial block.\n\tcopy(d.mem[:], b)\n\td.n = len(b)\n\n\treturn\n}\n\n// Sum appends the current hash to b and returns the resulting slice.\nfunc (d *Digest) Sum(b []byte) []byte {\n\ts := d.Sum64()\n\treturn append(\n\t\tb,\n\t\tbyte(s>>56),\n\t\tbyte(s>>48),\n\t\tbyte(s>>40),\n\t\tbyte(s>>32),\n\t\tbyte(s>>24),\n\t\tbyte(s>>16),\n\t\tbyte(s>>8),\n\t\tbyte(s),\n\t)\n}\n\n// Sum64 returns the current hash.\nfunc (d *Digest) Sum64() uint64 {\n\tvar h uint64\n\n\tif d.total >= 32 {\n\t\tv1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4\n\t\th = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)\n\t\th = mergeRound(h, v1)\n\t\th = mergeRound(h, v2)\n\t\th = mergeRound(h, v3)\n\t\th = mergeRound(h, v4)\n\t} else {\n\t\th = d.v3 + prime5\n\t}\n\n\th += d.total\n\n\tb := d.mem[:d.n&(len(d.mem)-1)]\n\tfor ; len(b) >= 8; b = b[8:] {\n\t\tk1 := round(0, u64(b[:8]))\n\t\th ^= k1\n\t\th = rol27(h)*prime1 + prime4\n\t}\n\tif len(b) >= 4 {\n\t\th ^= uint64(u32(b[:4])) * prime1\n\t\th = rol23(h)*prime2 + prime3\n\t\tb = b[4:]\n\t}\n\tfor ; len(b) > 0; b = b[1:] {\n\t\th ^= uint64(b[0]) * prime5\n\t\th = rol11(h) * prime1\n\t}\n\n\th ^= h >> 33\n\th *= prime2\n\th ^= h >> 29\n\th *= prime3\n\th ^= h >> 32\n\n\treturn h\n}\n\nconst (\n\tmagic         = \"xxh\\x06\"\n\tmarshaledSize = len(magic) + 8*5 + 32\n)\n\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (d *Digest) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 0, marshaledSize)\n\tb = append(b, magic...)\n\tb = appendUint64(b, d.v1)\n\tb = appendUint64(b, d.v2)\n\tb = appendUint64(b, d.v3)\n\tb = appendUint64(b, d.v4)\n\tb = appendUint64(b, d.total)\n\tb = append(b, d.mem[:d.n]...)\n\tb = b[:len(b)+len(d.mem)-d.n]\n\treturn b, nil\n}\n\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (d *Digest) UnmarshalBinary(b []byte) error {\n\tif len(b) < len(magic) || string(b[:len(magic)]) != magic {\n\t\treturn errors.New(\"xxhash: invalid hash state identifier\")\n\t}\n\tif len(b) != marshaledSize {\n\t\treturn errors.New(\"xxhash: invalid hash state size\")\n\t}\n\tb = b[len(magic):]\n\tb, d.v1 = consumeUint64(b)\n\tb, d.v2 = consumeUint64(b)\n\tb, d.v3 = consumeUint64(b)\n\tb, d.v4 = consumeUint64(b)\n\tb, d.total = consumeUint64(b)\n\tcopy(d.mem[:], b)\n\td.n = int(d.total % uint64(len(d.mem)))\n\treturn nil\n}\n\nfunc appendUint64(b []byte, x uint64) []byte {\n\tvar a [8]byte\n\tbinary.LittleEndian.PutUint64(a[:], x)\n\treturn append(b, a[:]...)\n}\n\nfunc consumeUint64(b []byte) ([]byte, uint64) {\n\tx := u64(b)\n\treturn b[8:], x\n}\n\nfunc u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) }\nfunc u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) }\n\nfunc round(acc, input uint64) uint64 {\n\tacc += input * prime2\n\tacc = rol31(acc)\n\tacc *= prime1\n\treturn acc\n}\n\nfunc mergeRound(acc, val uint64) uint64 {\n\tval = round(0, val)\n\tacc ^= val\n\tacc = acc*prime1 + prime4\n\treturn acc\n}\n\nfunc rol1(x uint64) uint64  { return bits.RotateLeft64(x, 1) }\nfunc rol7(x uint64) uint64  { return bits.RotateLeft64(x, 7) }\nfunc rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }\nfunc rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }\nfunc rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }\nfunc rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }\nfunc rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }\nfunc rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s",
    "content": "//go:build !appengine && gc && !purego && !noasm\n// +build !appengine\n// +build gc\n// +build !purego\n// +build !noasm\n\n#include \"textflag.h\"\n\n// Registers:\n#define h      AX\n#define d      AX\n#define p      SI // pointer to advance through b\n#define n      DX\n#define end    BX // loop end\n#define v1     R8\n#define v2     R9\n#define v3     R10\n#define v4     R11\n#define x      R12\n#define prime1 R13\n#define prime2 R14\n#define prime4 DI\n\n#define round(acc, x) \\\n\tIMULQ prime2, x   \\\n\tADDQ  x, acc      \\\n\tROLQ  $31, acc    \\\n\tIMULQ prime1, acc\n\n// round0 performs the operation x = round(0, x).\n#define round0(x) \\\n\tIMULQ prime2, x \\\n\tROLQ  $31, x    \\\n\tIMULQ prime1, x\n\n// mergeRound applies a merge round on the two registers acc and x.\n// It assumes that prime1, prime2, and prime4 have been loaded.\n#define mergeRound(acc, x) \\\n\tround0(x)         \\\n\tXORQ  x, acc      \\\n\tIMULQ prime1, acc \\\n\tADDQ  prime4, acc\n\n// blockLoop processes as many 32-byte blocks as possible,\n// updating v1, v2, v3, and v4. It assumes that there is at least one block\n// to process.\n#define blockLoop() \\\nloop:  \\\n\tMOVQ +0(p), x  \\\n\tround(v1, x)   \\\n\tMOVQ +8(p), x  \\\n\tround(v2, x)   \\\n\tMOVQ +16(p), x \\\n\tround(v3, x)   \\\n\tMOVQ +24(p), x \\\n\tround(v4, x)   \\\n\tADDQ $32, p    \\\n\tCMPQ p, end    \\\n\tJLE  loop\n\n// func Sum64(b []byte) uint64\nTEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32\n\t// Load fixed primes.\n\tMOVQ ·primes+0(SB), prime1\n\tMOVQ ·primes+8(SB), prime2\n\tMOVQ ·primes+24(SB), prime4\n\n\t// Load slice.\n\tMOVQ b_base+0(FP), p\n\tMOVQ b_len+8(FP), n\n\tLEAQ (p)(n*1), end\n\n\t// The first loop limit will be len(b)-32.\n\tSUBQ $32, end\n\n\t// Check whether we have at least one block.\n\tCMPQ n, $32\n\tJLT  noBlocks\n\n\t// Set up initial state (v1, v2, v3, v4).\n\tMOVQ prime1, v1\n\tADDQ prime2, v1\n\tMOVQ prime2, v2\n\tXORQ v3, v3\n\tXORQ v4, v4\n\tSUBQ prime1, v4\n\n\tblockLoop()\n\n\tMOVQ v1, h\n\tROLQ $1, h\n\tMOVQ v2, x\n\tROLQ $7, x\n\tADDQ x, h\n\tMOVQ v3, x\n\tROLQ $12, x\n\tADDQ x, h\n\tMOVQ v4, x\n\tROLQ $18, x\n\tADDQ x, h\n\n\tmergeRound(h, v1)\n\tmergeRound(h, v2)\n\tmergeRound(h, v3)\n\tmergeRound(h, v4)\n\n\tJMP afterBlocks\n\nnoBlocks:\n\tMOVQ ·primes+32(SB), h\n\nafterBlocks:\n\tADDQ n, h\n\n\tADDQ $24, end\n\tCMPQ p, end\n\tJG   try4\n\nloop8:\n\tMOVQ  (p), x\n\tADDQ  $8, p\n\tround0(x)\n\tXORQ  x, h\n\tROLQ  $27, h\n\tIMULQ prime1, h\n\tADDQ  prime4, h\n\n\tCMPQ p, end\n\tJLE  loop8\n\ntry4:\n\tADDQ $4, end\n\tCMPQ p, end\n\tJG   try1\n\n\tMOVL  (p), x\n\tADDQ  $4, p\n\tIMULQ prime1, x\n\tXORQ  x, h\n\n\tROLQ  $23, h\n\tIMULQ prime2, h\n\tADDQ  ·primes+16(SB), h\n\ntry1:\n\tADDQ $4, end\n\tCMPQ p, end\n\tJGE  finalize\n\nloop1:\n\tMOVBQZX (p), x\n\tADDQ    $1, p\n\tIMULQ   ·primes+32(SB), x\n\tXORQ    x, h\n\tROLQ    $11, h\n\tIMULQ   prime1, h\n\n\tCMPQ p, end\n\tJL   loop1\n\nfinalize:\n\tMOVQ  h, x\n\tSHRQ  $33, x\n\tXORQ  x, h\n\tIMULQ prime2, h\n\tMOVQ  h, x\n\tSHRQ  $29, x\n\tXORQ  x, h\n\tIMULQ ·primes+16(SB), h\n\tMOVQ  h, x\n\tSHRQ  $32, x\n\tXORQ  x, h\n\n\tMOVQ h, ret+24(FP)\n\tRET\n\n// func writeBlocks(d *Digest, b []byte) int\nTEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40\n\t// Load fixed primes needed for round.\n\tMOVQ ·primes+0(SB), prime1\n\tMOVQ ·primes+8(SB), prime2\n\n\t// Load slice.\n\tMOVQ b_base+8(FP), p\n\tMOVQ b_len+16(FP), n\n\tLEAQ (p)(n*1), end\n\tSUBQ $32, end\n\n\t// Load vN from d.\n\tMOVQ s+0(FP), d\n\tMOVQ 0(d), v1\n\tMOVQ 8(d), v2\n\tMOVQ 16(d), v3\n\tMOVQ 24(d), v4\n\n\t// We don't need to check the loop condition here; this function is\n\t// always called with at least one block of data to process.\n\tblockLoop()\n\n\t// Copy vN back to d.\n\tMOVQ v1, 0(d)\n\tMOVQ v2, 8(d)\n\tMOVQ v3, 16(d)\n\tMOVQ v4, 24(d)\n\n\t// The number of bytes written is p minus the old base pointer.\n\tSUBQ b_base+8(FP), p\n\tMOVQ p, ret+32(FP)\n\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s",
    "content": "//go:build !appengine && gc && !purego && !noasm\n// +build !appengine\n// +build gc\n// +build !purego\n// +build !noasm\n\n#include \"textflag.h\"\n\n// Registers:\n#define digest\tR1\n#define h\tR2 // return value\n#define p\tR3 // input pointer\n#define n\tR4 // input length\n#define nblocks\tR5 // n / 32\n#define prime1\tR7\n#define prime2\tR8\n#define prime3\tR9\n#define prime4\tR10\n#define prime5\tR11\n#define v1\tR12\n#define v2\tR13\n#define v3\tR14\n#define v4\tR15\n#define x1\tR20\n#define x2\tR21\n#define x3\tR22\n#define x4\tR23\n\n#define round(acc, x) \\\n\tMADD prime2, acc, x, acc \\\n\tROR  $64-31, acc         \\\n\tMUL  prime1, acc\n\n// round0 performs the operation x = round(0, x).\n#define round0(x) \\\n\tMUL prime2, x \\\n\tROR $64-31, x \\\n\tMUL prime1, x\n\n#define mergeRound(acc, x) \\\n\tround0(x)                     \\\n\tEOR  x, acc                   \\\n\tMADD acc, prime4, prime1, acc\n\n// blockLoop processes as many 32-byte blocks as possible,\n// updating v1, v2, v3, and v4. It assumes that n >= 32.\n#define blockLoop() \\\n\tLSR     $5, n, nblocks  \\\n\tPCALIGN $16             \\\n\tloop:                   \\\n\tLDP.P   16(p), (x1, x2) \\\n\tLDP.P   16(p), (x3, x4) \\\n\tround(v1, x1)           \\\n\tround(v2, x2)           \\\n\tround(v3, x3)           \\\n\tround(v4, x4)           \\\n\tSUB     $1, nblocks     \\\n\tCBNZ    nblocks, loop\n\n// func Sum64(b []byte) uint64\nTEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32\n\tLDP b_base+0(FP), (p, n)\n\n\tLDP  ·primes+0(SB), (prime1, prime2)\n\tLDP  ·primes+16(SB), (prime3, prime4)\n\tMOVD ·primes+32(SB), prime5\n\n\tCMP  $32, n\n\tCSEL LT, prime5, ZR, h // if n < 32 { h = prime5 } else { h = 0 }\n\tBLT  afterLoop\n\n\tADD  prime1, prime2, v1\n\tMOVD prime2, v2\n\tMOVD $0, v3\n\tNEG  prime1, v4\n\n\tblockLoop()\n\n\tROR $64-1, v1, x1\n\tROR $64-7, v2, x2\n\tADD x1, x2\n\tROR $64-12, v3, x3\n\tROR $64-18, v4, x4\n\tADD x3, x4\n\tADD x2, x4, h\n\n\tmergeRound(h, v1)\n\tmergeRound(h, v2)\n\tmergeRound(h, v3)\n\tmergeRound(h, v4)\n\nafterLoop:\n\tADD n, h\n\n\tTBZ   $4, n, try8\n\tLDP.P 16(p), (x1, x2)\n\n\tround0(x1)\n\n\t// NOTE: here and below, sequencing the EOR after the ROR (using a\n\t// rotated register) is worth a small but measurable speedup for small\n\t// inputs.\n\tROR  $64-27, h\n\tEOR  x1 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\n\tround0(x2)\n\tROR  $64-27, h\n\tEOR  x2 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\ntry8:\n\tTBZ    $3, n, try4\n\tMOVD.P 8(p), x1\n\n\tround0(x1)\n\tROR  $64-27, h\n\tEOR  x1 @> 64-27, h, h\n\tMADD h, prime4, prime1, h\n\ntry4:\n\tTBZ     $2, n, try2\n\tMOVWU.P 4(p), x2\n\n\tMUL  prime1, x2\n\tROR  $64-23, h\n\tEOR  x2 @> 64-23, h, h\n\tMADD h, prime3, prime2, h\n\ntry2:\n\tTBZ     $1, n, try1\n\tMOVHU.P 2(p), x3\n\tAND     $255, x3, x1\n\tLSR     $8, x3, x2\n\n\tMUL prime5, x1\n\tROR $64-11, h\n\tEOR x1 @> 64-11, h, h\n\tMUL prime1, h\n\n\tMUL prime5, x2\n\tROR $64-11, h\n\tEOR x2 @> 64-11, h, h\n\tMUL prime1, h\n\ntry1:\n\tTBZ   $0, n, finalize\n\tMOVBU (p), x4\n\n\tMUL prime5, x4\n\tROR $64-11, h\n\tEOR x4 @> 64-11, h, h\n\tMUL prime1, h\n\nfinalize:\n\tEOR h >> 33, h\n\tMUL prime2, h\n\tEOR h >> 29, h\n\tMUL prime3, h\n\tEOR h >> 32, h\n\n\tMOVD h, ret+24(FP)\n\tRET\n\n// func writeBlocks(s *Digest, b []byte) int\nTEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40\n\tLDP ·primes+0(SB), (prime1, prime2)\n\n\t// Load state. Assume v[1-4] are stored contiguously.\n\tMOVD s+0(FP), digest\n\tLDP  0(digest), (v1, v2)\n\tLDP  16(digest), (v3, v4)\n\n\tLDP b_base+8(FP), (p, n)\n\n\tblockLoop()\n\n\t// Store updated state.\n\tSTP (v1, v2), 0(digest)\n\tSTP (v3, v4), 16(digest)\n\n\tBIC  $31, n\n\tMOVD n, ret+32(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go",
    "content": "//go:build (amd64 || arm64) && !appengine && gc && !purego && !noasm\n// +build amd64 arm64\n// +build !appengine\n// +build gc\n// +build !purego\n// +build !noasm\n\npackage xxhash\n\n// Sum64 computes the 64-bit xxHash digest of b.\n//\n//go:noescape\nfunc Sum64(b []byte) uint64\n\n//go:noescape\nfunc writeBlocks(s *Digest, b []byte) int\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go",
    "content": "//go:build (!amd64 && !arm64) || appengine || !gc || purego || noasm\n// +build !amd64,!arm64 appengine !gc purego noasm\n\npackage xxhash\n\n// Sum64 computes the 64-bit xxHash digest of b.\nfunc Sum64(b []byte) uint64 {\n\t// A simpler version would be\n\t//   d := New()\n\t//   d.Write(b)\n\t//   return d.Sum64()\n\t// but this is faster, particularly for small inputs.\n\n\tn := len(b)\n\tvar h uint64\n\n\tif n >= 32 {\n\t\tv1 := primes[0] + prime2\n\t\tv2 := prime2\n\t\tv3 := uint64(0)\n\t\tv4 := -primes[0]\n\t\tfor len(b) >= 32 {\n\t\t\tv1 = round(v1, u64(b[0:8:len(b)]))\n\t\t\tv2 = round(v2, u64(b[8:16:len(b)]))\n\t\t\tv3 = round(v3, u64(b[16:24:len(b)]))\n\t\t\tv4 = round(v4, u64(b[24:32:len(b)]))\n\t\t\tb = b[32:len(b):len(b)]\n\t\t}\n\t\th = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)\n\t\th = mergeRound(h, v1)\n\t\th = mergeRound(h, v2)\n\t\th = mergeRound(h, v3)\n\t\th = mergeRound(h, v4)\n\t} else {\n\t\th = prime5\n\t}\n\n\th += uint64(n)\n\n\tfor ; len(b) >= 8; b = b[8:] {\n\t\tk1 := round(0, u64(b[:8]))\n\t\th ^= k1\n\t\th = rol27(h)*prime1 + prime4\n\t}\n\tif len(b) >= 4 {\n\t\th ^= uint64(u32(b[:4])) * prime1\n\t\th = rol23(h)*prime2 + prime3\n\t\tb = b[4:]\n\t}\n\tfor ; len(b) > 0; b = b[1:] {\n\t\th ^= uint64(b[0]) * prime5\n\t\th = rol11(h) * prime1\n\t}\n\n\th ^= h >> 33\n\th *= prime2\n\th ^= h >> 29\n\th *= prime3\n\th ^= h >> 32\n\n\treturn h\n}\n\nfunc writeBlocks(d *Digest, b []byte) int {\n\tv1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4\n\tn := len(b)\n\tfor len(b) >= 32 {\n\t\tv1 = round(v1, u64(b[0:8:len(b)]))\n\t\tv2 = round(v2, u64(b[8:16:len(b)]))\n\t\tv3 = round(v3, u64(b[16:24:len(b)]))\n\t\tv4 = round(v4, u64(b[24:32:len(b)]))\n\t\tb = b[32:len(b):len(b)]\n\t}\n\td.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4\n\treturn n - len(b)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go",
    "content": "package xxhash\n\n// Sum64String computes the 64-bit xxHash digest of s.\nfunc Sum64String(s string) uint64 {\n\treturn Sum64([]byte(s))\n}\n\n// WriteString adds more data to d. It always returns len(s), nil.\nfunc (d *Digest) WriteString(s string) (n int, err error) {\n\treturn d.Write([]byte(s))\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/matchlen_amd64.go",
    "content": "//go:build amd64 && !appengine && !noasm && gc\n// +build amd64,!appengine,!noasm,gc\n\n// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n\npackage zstd\n\n// matchLen returns how many bytes match in a and b\n//\n// It assumes that:\n//\n//\tlen(a) <= len(b) and len(a) > 0\n//\n//go:noescape\nfunc matchLen(a []byte, b []byte) int\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/matchlen_amd64.s",
    "content": "// Copied from S2 implementation.\n\n//go:build !appengine && !noasm && gc && !noasm\n\n#include \"textflag.h\"\n\n// func matchLen(a []byte, b []byte) int\nTEXT ·matchLen(SB), NOSPLIT, $0-56\n\tMOVQ a_base+0(FP), AX\n\tMOVQ b_base+24(FP), CX\n\tMOVQ a_len+8(FP), DX\n\n\t// matchLen\n\tXORL SI, SI\n\tCMPL DX, $0x08\n\tJB   matchlen_match4_standalone\n\nmatchlen_loopback_standalone:\n\tMOVQ (AX)(SI*1), BX\n\tXORQ (CX)(SI*1), BX\n\tJZ   matchlen_loop_standalone\n\n#ifdef GOAMD64_v3\n\tTZCNTQ BX, BX\n#else\n\tBSFQ BX, BX\n#endif\n\tSHRL $0x03, BX\n\tLEAL (SI)(BX*1), SI\n\tJMP  gen_match_len_end\n\nmatchlen_loop_standalone:\n\tLEAL -8(DX), DX\n\tLEAL 8(SI), SI\n\tCMPL DX, $0x08\n\tJAE  matchlen_loopback_standalone\n\nmatchlen_match4_standalone:\n\tCMPL DX, $0x04\n\tJB   matchlen_match2_standalone\n\tMOVL (AX)(SI*1), BX\n\tCMPL (CX)(SI*1), BX\n\tJNE  matchlen_match2_standalone\n\tLEAL -4(DX), DX\n\tLEAL 4(SI), SI\n\nmatchlen_match2_standalone:\n\tCMPL DX, $0x02\n\tJB   matchlen_match1_standalone\n\tMOVW (AX)(SI*1), BX\n\tCMPW (CX)(SI*1), BX\n\tJNE  matchlen_match1_standalone\n\tLEAL -2(DX), DX\n\tLEAL 2(SI), SI\n\nmatchlen_match1_standalone:\n\tCMPL DX, $0x01\n\tJB   gen_match_len_end\n\tMOVB (AX)(SI*1), BL\n\tCMPB (CX)(SI*1), BL\n\tJNE  gen_match_len_end\n\tINCL SI\n\ngen_match_len_end:\n\tMOVQ SI, ret+48(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/matchlen_generic.go",
    "content": "//go:build !amd64 || appengine || !gc || noasm\n// +build !amd64 appengine !gc noasm\n\n// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n\npackage zstd\n\nimport (\n\t\"math/bits\"\n\n\t\"github.com/klauspost/compress/internal/le\"\n)\n\n// matchLen returns the maximum common prefix length of a and b.\n// a must be the shortest of the two.\nfunc matchLen(a, b []byte) (n int) {\n\tleft := len(a)\n\tfor left >= 8 {\n\t\tdiff := le.Load64(a, n) ^ le.Load64(b, n)\n\t\tif diff != 0 {\n\t\t\treturn n + bits.TrailingZeros64(diff)>>3\n\t\t}\n\t\tn += 8\n\t\tleft -= 8\n\t}\n\ta = a[n:]\n\tb = b[n:]\n\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\tbreak\n\t\t}\n\t\tn++\n\t}\n\treturn n\n\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/seqdec.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n)\n\ntype seq struct {\n\tlitLen   uint32\n\tmatchLen uint32\n\toffset   uint32\n\n\t// Codes are stored here for the encoder\n\t// so they only have to be looked up once.\n\tllCode, mlCode, ofCode uint8\n}\n\ntype seqVals struct {\n\tll, ml, mo int\n}\n\nfunc (s seq) String() string {\n\tif s.offset <= 3 {\n\t\tif s.offset == 0 {\n\t\t\treturn fmt.Sprint(\"litLen:\", s.litLen, \", matchLen:\", s.matchLen+zstdMinMatch, \", offset: INVALID (0)\")\n\t\t}\n\t\treturn fmt.Sprint(\"litLen:\", s.litLen, \", matchLen:\", s.matchLen+zstdMinMatch, \", offset:\", s.offset, \" (repeat)\")\n\t}\n\treturn fmt.Sprint(\"litLen:\", s.litLen, \", matchLen:\", s.matchLen+zstdMinMatch, \", offset:\", s.offset-3, \" (new)\")\n}\n\ntype seqCompMode uint8\n\nconst (\n\tcompModePredefined seqCompMode = iota\n\tcompModeRLE\n\tcompModeFSE\n\tcompModeRepeat\n)\n\ntype sequenceDec struct {\n\t// decoder keeps track of the current state and updates it from the bitstream.\n\tfse    *fseDecoder\n\tstate  fseState\n\trepeat bool\n}\n\n// init the state of the decoder with input from stream.\nfunc (s *sequenceDec) init(br *bitReader) error {\n\tif s.fse == nil {\n\t\treturn errors.New(\"sequence decoder not defined\")\n\t}\n\ts.state.init(br, s.fse.actualTableLog, s.fse.dt[:1<<s.fse.actualTableLog])\n\treturn nil\n}\n\n// sequenceDecs contains all 3 sequence decoders and their state.\ntype sequenceDecs struct {\n\tlitLengths   sequenceDec\n\toffsets      sequenceDec\n\tmatchLengths sequenceDec\n\tprevOffset   [3]int\n\tdict         []byte\n\tliterals     []byte\n\tout          []byte\n\tnSeqs        int\n\tbr           *bitReader\n\tseqSize      int\n\twindowSize   int\n\tmaxBits      uint8\n\tmaxSyncLen   uint64\n}\n\n// initialize all 3 decoders from the stream input.\nfunc (s *sequenceDecs) initialize(br *bitReader, hist *history, out []byte) error {\n\tif err := s.litLengths.init(br); err != nil {\n\t\treturn errors.New(\"litLengths:\" + err.Error())\n\t}\n\tif err := s.offsets.init(br); err != nil {\n\t\treturn errors.New(\"offsets:\" + err.Error())\n\t}\n\tif err := s.matchLengths.init(br); err != nil {\n\t\treturn errors.New(\"matchLengths:\" + err.Error())\n\t}\n\ts.br = br\n\ts.prevOffset = hist.recentOffsets\n\ts.maxBits = s.litLengths.fse.maxBits + s.offsets.fse.maxBits + s.matchLengths.fse.maxBits\n\ts.windowSize = hist.windowSize\n\ts.out = out\n\ts.dict = nil\n\tif hist.dict != nil {\n\t\ts.dict = hist.dict.content\n\t}\n\treturn nil\n}\n\nfunc (s *sequenceDecs) freeDecoders() {\n\tif f := s.litLengths.fse; f != nil && !f.preDefined {\n\t\tfseDecoderPool.Put(f)\n\t\ts.litLengths.fse = nil\n\t}\n\tif f := s.offsets.fse; f != nil && !f.preDefined {\n\t\tfseDecoderPool.Put(f)\n\t\ts.offsets.fse = nil\n\t}\n\tif f := s.matchLengths.fse; f != nil && !f.preDefined {\n\t\tfseDecoderPool.Put(f)\n\t\ts.matchLengths.fse = nil\n\t}\n}\n\n// execute will execute the decoded sequence with the provided history.\n// The sequence must be evaluated before being sent.\nfunc (s *sequenceDecs) execute(seqs []seqVals, hist []byte) error {\n\tif len(s.dict) == 0 {\n\t\treturn s.executeSimple(seqs, hist)\n\t}\n\n\t// Ensure we have enough output size...\n\tif len(s.out)+s.seqSize > cap(s.out) {\n\t\taddBytes := s.seqSize + len(s.out)\n\t\ts.out = append(s.out, make([]byte, addBytes)...)\n\t\ts.out = s.out[:len(s.out)-addBytes]\n\t}\n\n\tif debugDecoder {\n\t\tprintf(\"Execute %d seqs with hist %d, dict %d, literals: %d into %d bytes\\n\", len(seqs), len(hist), len(s.dict), len(s.literals), s.seqSize)\n\t}\n\n\tvar t = len(s.out)\n\tout := s.out[:t+s.seqSize]\n\n\tfor _, seq := range seqs {\n\t\t// Add literals\n\t\tcopy(out[t:], s.literals[:seq.ll])\n\t\tt += seq.ll\n\t\ts.literals = s.literals[seq.ll:]\n\n\t\t// Copy from dictionary...\n\t\tif seq.mo > t+len(hist) || seq.mo > s.windowSize {\n\t\t\tif len(s.dict) == 0 {\n\t\t\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history (%d)\", seq.mo, t+len(hist))\n\t\t\t}\n\n\t\t\t// we may be in dictionary.\n\t\t\tdictO := len(s.dict) - (seq.mo - (t + len(hist)))\n\t\t\tif dictO < 0 || dictO >= len(s.dict) {\n\t\t\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history+dict (%d)\", seq.mo, t+len(hist)+len(s.dict))\n\t\t\t}\n\t\t\tend := dictO + seq.ml\n\t\t\tif end > len(s.dict) {\n\t\t\t\tn := len(s.dict) - dictO\n\t\t\t\tcopy(out[t:], s.dict[dictO:])\n\t\t\t\tt += n\n\t\t\t\tseq.ml -= n\n\t\t\t} else {\n\t\t\t\tcopy(out[t:], s.dict[dictO:end])\n\t\t\t\tt += end - dictO\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Copy from history.\n\t\tif v := seq.mo - t; v > 0 {\n\t\t\t// v is the start position in history from end.\n\t\t\tstart := len(hist) - v\n\t\t\tif seq.ml > v {\n\t\t\t\t// Some goes into current block.\n\t\t\t\t// Copy remainder of history\n\t\t\t\tcopy(out[t:], hist[start:])\n\t\t\t\tt += v\n\t\t\t\tseq.ml -= v\n\t\t\t} else {\n\t\t\t\tcopy(out[t:], hist[start:start+seq.ml])\n\t\t\t\tt += seq.ml\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\t// We must be in current buffer now\n\t\tif seq.ml > 0 {\n\t\t\tstart := t - seq.mo\n\t\t\tif seq.ml <= t-start {\n\t\t\t\t// No overlap\n\t\t\t\tcopy(out[t:], out[start:start+seq.ml])\n\t\t\t\tt += seq.ml\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\t// Overlapping copy\n\t\t\t\t// Extend destination slice and copy one byte at the time.\n\t\t\t\tsrc := out[start : start+seq.ml]\n\t\t\t\tdst := out[t:]\n\t\t\t\tdst = dst[:len(src)]\n\t\t\t\tt += len(src)\n\t\t\t\t// Destination is the space we just added.\n\t\t\t\tfor i := range src {\n\t\t\t\t\tdst[i] = src[i]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add final literals\n\tcopy(out[t:], s.literals)\n\tif debugDecoder {\n\t\tt += len(s.literals)\n\t\tif t != len(out) {\n\t\t\tpanic(fmt.Errorf(\"length mismatch, want %d, got %d, ss: %d\", len(out), t, s.seqSize))\n\t\t}\n\t}\n\ts.out = out\n\n\treturn nil\n}\n\n// decode sequences from the stream with the provided history.\nfunc (s *sequenceDecs) decodeSync(hist []byte) error {\n\tsupported, err := s.decodeSyncSimple(hist)\n\tif supported {\n\t\treturn err\n\t}\n\n\tbr := s.br\n\tseqs := s.nSeqs\n\tstartSize := len(s.out)\n\t// Grab full sizes tables, to avoid bounds checks.\n\tllTable, mlTable, ofTable := s.litLengths.fse.dt[:maxTablesize], s.matchLengths.fse.dt[:maxTablesize], s.offsets.fse.dt[:maxTablesize]\n\tllState, mlState, ofState := s.litLengths.state.state, s.matchLengths.state.state, s.offsets.state.state\n\tout := s.out\n\tmaxBlockSize := min(s.windowSize, maxCompressedBlockSize)\n\n\tif debugDecoder {\n\t\tprintln(\"decodeSync: decoding\", seqs, \"sequences\", br.remain(), \"bits remain on stream\")\n\t}\n\tfor i := seqs - 1; i >= 0; i-- {\n\t\tif br.overread() {\n\t\t\tprintf(\"reading sequence %d, exceeded available data. Overread by %d\\n\", seqs-i, -br.remain())\n\t\t\treturn io.ErrUnexpectedEOF\n\t\t}\n\t\tvar ll, mo, ml int\n\t\tif br.cursor > 4+((maxOffsetBits+16+16)>>3) {\n\t\t\t// inlined function:\n\t\t\t// ll, mo, ml = s.nextFast(br, llState, mlState, ofState)\n\n\t\t\t// Final will not read from stream.\n\t\t\tvar llB, mlB, moB uint8\n\t\t\tll, llB = llState.final()\n\t\t\tml, mlB = mlState.final()\n\t\t\tmo, moB = ofState.final()\n\n\t\t\t// extra bits are stored in reverse order.\n\t\t\tbr.fillFast()\n\t\t\tmo += br.getBits(moB)\n\t\t\tif s.maxBits > 32 {\n\t\t\t\tbr.fillFast()\n\t\t\t}\n\t\t\tml += br.getBits(mlB)\n\t\t\tll += br.getBits(llB)\n\n\t\t\tif moB > 1 {\n\t\t\t\ts.prevOffset[2] = s.prevOffset[1]\n\t\t\t\ts.prevOffset[1] = s.prevOffset[0]\n\t\t\t\ts.prevOffset[0] = mo\n\t\t\t} else {\n\t\t\t\t// mo = s.adjustOffset(mo, ll, moB)\n\t\t\t\t// Inlined for rather big speedup\n\t\t\t\tif ll == 0 {\n\t\t\t\t\t// There is an exception though, when current sequence's literals_length = 0.\n\t\t\t\t\t// In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2,\n\t\t\t\t\t// an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte.\n\t\t\t\t\tmo++\n\t\t\t\t}\n\n\t\t\t\tif mo == 0 {\n\t\t\t\t\tmo = s.prevOffset[0]\n\t\t\t\t} else {\n\t\t\t\t\tvar temp int\n\t\t\t\t\tif mo == 3 {\n\t\t\t\t\t\ttemp = s.prevOffset[0] - 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttemp = s.prevOffset[mo]\n\t\t\t\t\t}\n\n\t\t\t\t\tif temp == 0 {\n\t\t\t\t\t\t// 0 is not valid; input is corrupted; force offset to 1\n\t\t\t\t\t\tprintln(\"WARNING: temp was 0\")\n\t\t\t\t\t\ttemp = 1\n\t\t\t\t\t}\n\n\t\t\t\t\tif mo != 1 {\n\t\t\t\t\t\ts.prevOffset[2] = s.prevOffset[1]\n\t\t\t\t\t}\n\t\t\t\t\ts.prevOffset[1] = s.prevOffset[0]\n\t\t\t\t\ts.prevOffset[0] = temp\n\t\t\t\t\tmo = temp\n\t\t\t\t}\n\t\t\t}\n\t\t\tbr.fillFast()\n\t\t} else {\n\t\t\tll, mo, ml = s.next(br, llState, mlState, ofState)\n\t\t\tbr.fill()\n\t\t}\n\n\t\tif debugSequences {\n\t\t\tprintln(\"Seq\", seqs-i-1, \"Litlen:\", ll, \"mo:\", mo, \"(abs) ml:\", ml)\n\t\t}\n\n\t\tif ll > len(s.literals) {\n\t\t\treturn fmt.Errorf(\"unexpected literal count, want %d bytes, but only %d is available\", ll, len(s.literals))\n\t\t}\n\t\tsize := ll + ml + len(out)\n\t\tif size-startSize > maxBlockSize {\n\t\t\treturn fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t\t}\n\t\tif size > cap(out) {\n\t\t\t// Not enough size, which can happen under high volume block streaming conditions\n\t\t\t// but could be if destination slice is too small for sync operations.\n\t\t\t// over-allocating here can create a large amount of GC pressure so we try to keep\n\t\t\t// it as contained as possible\n\t\t\tused := len(out) - startSize\n\t\t\taddBytes := 256 + ll + ml + used>>2\n\t\t\t// Clamp to max block size.\n\t\t\tif used+addBytes > maxBlockSize {\n\t\t\t\taddBytes = maxBlockSize - used\n\t\t\t}\n\t\t\tout = append(out, make([]byte, addBytes)...)\n\t\t\tout = out[:len(out)-addBytes]\n\t\t}\n\t\tif ml > maxMatchLen {\n\t\t\treturn fmt.Errorf(\"match len (%d) bigger than max allowed length\", ml)\n\t\t}\n\n\t\t// Add literals\n\t\tout = append(out, s.literals[:ll]...)\n\t\ts.literals = s.literals[ll:]\n\n\t\tif mo == 0 && ml > 0 {\n\t\t\treturn fmt.Errorf(\"zero matchoff and matchlen (%d) > 0\", ml)\n\t\t}\n\n\t\tif mo > len(out)+len(hist) || mo > s.windowSize {\n\t\t\tif len(s.dict) == 0 {\n\t\t\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history (%d)\", mo, len(out)+len(hist)-startSize)\n\t\t\t}\n\n\t\t\t// we may be in dictionary.\n\t\t\tdictO := len(s.dict) - (mo - (len(out) + len(hist)))\n\t\t\tif dictO < 0 || dictO >= len(s.dict) {\n\t\t\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history (%d)\", mo, len(out)+len(hist)-startSize)\n\t\t\t}\n\t\t\tend := dictO + ml\n\t\t\tif end > len(s.dict) {\n\t\t\t\tout = append(out, s.dict[dictO:]...)\n\t\t\t\tml -= len(s.dict) - dictO\n\t\t\t} else {\n\t\t\t\tout = append(out, s.dict[dictO:end]...)\n\t\t\t\tmo = 0\n\t\t\t\tml = 0\n\t\t\t}\n\t\t}\n\n\t\t// Copy from history.\n\t\t// TODO: Blocks without history could be made to ignore this completely.\n\t\tif v := mo - len(out); v > 0 {\n\t\t\t// v is the start position in history from end.\n\t\t\tstart := len(hist) - v\n\t\t\tif ml > v {\n\t\t\t\t// Some goes into current block.\n\t\t\t\t// Copy remainder of history\n\t\t\t\tout = append(out, hist[start:]...)\n\t\t\t\tml -= v\n\t\t\t} else {\n\t\t\t\tout = append(out, hist[start:start+ml]...)\n\t\t\t\tml = 0\n\t\t\t}\n\t\t}\n\t\t// We must be in current buffer now\n\t\tif ml > 0 {\n\t\t\tstart := len(out) - mo\n\t\t\tif ml <= len(out)-start {\n\t\t\t\t// No overlap\n\t\t\t\tout = append(out, out[start:start+ml]...)\n\t\t\t} else {\n\t\t\t\t// Overlapping copy\n\t\t\t\t// Extend destination slice and copy one byte at the time.\n\t\t\t\tout = out[:len(out)+ml]\n\t\t\t\tsrc := out[start : start+ml]\n\t\t\t\t// Destination is the space we just added.\n\t\t\t\tdst := out[len(out)-ml:]\n\t\t\t\tdst = dst[:len(src)]\n\t\t\t\tfor i := range src {\n\t\t\t\t\tdst[i] = src[i]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif i == 0 {\n\t\t\t// This is the last sequence, so we shouldn't update state.\n\t\t\tbreak\n\t\t}\n\n\t\t// Manually inlined, ~ 5-20% faster\n\t\t// Update all 3 states at once. Approx 20% faster.\n\t\tnBits := llState.nbBits() + mlState.nbBits() + ofState.nbBits()\n\t\tif nBits == 0 {\n\t\t\tllState = llTable[llState.newState()&maxTableMask]\n\t\t\tmlState = mlTable[mlState.newState()&maxTableMask]\n\t\t\tofState = ofTable[ofState.newState()&maxTableMask]\n\t\t} else {\n\t\t\tbits := br.get32BitsFast(nBits)\n\n\t\t\tlowBits := uint16(bits >> ((ofState.nbBits() + mlState.nbBits()) & 31))\n\t\t\tllState = llTable[(llState.newState()+lowBits)&maxTableMask]\n\n\t\t\tlowBits = uint16(bits >> (ofState.nbBits() & 31))\n\t\t\tlowBits &= bitMask[mlState.nbBits()&15]\n\t\t\tmlState = mlTable[(mlState.newState()+lowBits)&maxTableMask]\n\n\t\t\tlowBits = uint16(bits) & bitMask[ofState.nbBits()&15]\n\t\t\tofState = ofTable[(ofState.newState()+lowBits)&maxTableMask]\n\t\t}\n\t}\n\n\tif size := len(s.literals) + len(out) - startSize; size > maxBlockSize {\n\t\treturn fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t}\n\n\t// Add final literals\n\ts.out = append(out, s.literals...)\n\treturn br.close()\n}\n\nvar bitMask [16]uint16\n\nfunc init() {\n\tfor i := range bitMask[:] {\n\t\tbitMask[i] = uint16((1 << uint(i)) - 1)\n\t}\n}\n\nfunc (s *sequenceDecs) next(br *bitReader, llState, mlState, ofState decSymbol) (ll, mo, ml int) {\n\t// Final will not read from stream.\n\tll, llB := llState.final()\n\tml, mlB := mlState.final()\n\tmo, moB := ofState.final()\n\n\t// extra bits are stored in reverse order.\n\tbr.fill()\n\tmo += br.getBits(moB)\n\tif s.maxBits > 32 {\n\t\tbr.fill()\n\t}\n\t// matchlength+literal length, max 32 bits\n\tml += br.getBits(mlB)\n\tll += br.getBits(llB)\n\tmo = s.adjustOffset(mo, ll, moB)\n\treturn\n}\n\nfunc (s *sequenceDecs) adjustOffset(offset, litLen int, offsetB uint8) int {\n\tif offsetB > 1 {\n\t\ts.prevOffset[2] = s.prevOffset[1]\n\t\ts.prevOffset[1] = s.prevOffset[0]\n\t\ts.prevOffset[0] = offset\n\t\treturn offset\n\t}\n\n\tif litLen == 0 {\n\t\t// There is an exception though, when current sequence's literals_length = 0.\n\t\t// In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2,\n\t\t// an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte.\n\t\toffset++\n\t}\n\n\tif offset == 0 {\n\t\treturn s.prevOffset[0]\n\t}\n\tvar temp int\n\tif offset == 3 {\n\t\ttemp = s.prevOffset[0] - 1\n\t} else {\n\t\ttemp = s.prevOffset[offset]\n\t}\n\n\tif temp == 0 {\n\t\t// 0 is not valid; input is corrupted; force offset to 1\n\t\tprintln(\"temp was 0\")\n\t\ttemp = 1\n\t}\n\n\tif offset != 1 {\n\t\ts.prevOffset[2] = s.prevOffset[1]\n\t}\n\ts.prevOffset[1] = s.prevOffset[0]\n\ts.prevOffset[0] = temp\n\treturn temp\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go",
    "content": "//go:build amd64 && !appengine && !noasm && gc\n// +build amd64,!appengine,!noasm,gc\n\npackage zstd\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/klauspost/compress/internal/cpuinfo\"\n)\n\ntype decodeSyncAsmContext struct {\n\tllTable     []decSymbol\n\tmlTable     []decSymbol\n\tofTable     []decSymbol\n\tllState     uint64\n\tmlState     uint64\n\tofState     uint64\n\titeration   int\n\tlitRemain   int\n\tout         []byte\n\toutPosition int\n\tliterals    []byte\n\tlitPosition int\n\thistory     []byte\n\twindowSize  int\n\tll          int // set on error (not for all errors, please refer to _generate/gen.go)\n\tml          int // set on error (not for all errors, please refer to _generate/gen.go)\n\tmo          int // set on error (not for all errors, please refer to _generate/gen.go)\n}\n\n// sequenceDecs_decodeSync_amd64 implements the main loop of sequenceDecs.decodeSync in x86 asm.\n//\n// Please refer to seqdec_generic.go for the reference implementation.\n//\n//go:noescape\nfunc sequenceDecs_decodeSync_amd64(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n\n// sequenceDecs_decodeSync_bmi2 implements the main loop of sequenceDecs.decodeSync in x86 asm with BMI2 extensions.\n//\n//go:noescape\nfunc sequenceDecs_decodeSync_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n\n// sequenceDecs_decodeSync_safe_amd64 does the same as above, but does not write more than output buffer.\n//\n//go:noescape\nfunc sequenceDecs_decodeSync_safe_amd64(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n\n// sequenceDecs_decodeSync_safe_bmi2 does the same as above, but does not write more than output buffer.\n//\n//go:noescape\nfunc sequenceDecs_decodeSync_safe_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n\n// decode sequences from the stream with the provided history but without a dictionary.\nfunc (s *sequenceDecs) decodeSyncSimple(hist []byte) (bool, error) {\n\tif len(s.dict) > 0 {\n\t\treturn false, nil\n\t}\n\tif s.maxSyncLen == 0 && cap(s.out)-len(s.out) < maxCompressedBlockSize {\n\t\treturn false, nil\n\t}\n\n\t// FIXME: Using unsafe memory copies leads to rare, random crashes\n\t// with fuzz testing. It is therefore disabled for now.\n\tconst useSafe = true\n\t/*\n\t\tuseSafe := false\n\t\tif s.maxSyncLen == 0 && cap(s.out)-len(s.out) < maxCompressedBlockSizeAlloc {\n\t\t\tuseSafe = true\n\t\t}\n\t\tif s.maxSyncLen > 0 && cap(s.out)-len(s.out)-compressedBlockOverAlloc < int(s.maxSyncLen) {\n\t\t\tuseSafe = true\n\t\t}\n\t\tif cap(s.literals) < len(s.literals)+compressedBlockOverAlloc {\n\t\t\tuseSafe = true\n\t\t}\n\t*/\n\n\tbr := s.br\n\n\tmaxBlockSize := min(s.windowSize, maxCompressedBlockSize)\n\n\tctx := decodeSyncAsmContext{\n\t\tllTable:     s.litLengths.fse.dt[:maxTablesize],\n\t\tmlTable:     s.matchLengths.fse.dt[:maxTablesize],\n\t\tofTable:     s.offsets.fse.dt[:maxTablesize],\n\t\tllState:     uint64(s.litLengths.state.state),\n\t\tmlState:     uint64(s.matchLengths.state.state),\n\t\tofState:     uint64(s.offsets.state.state),\n\t\titeration:   s.nSeqs - 1,\n\t\tlitRemain:   len(s.literals),\n\t\tout:         s.out,\n\t\toutPosition: len(s.out),\n\t\tliterals:    s.literals,\n\t\twindowSize:  s.windowSize,\n\t\thistory:     hist,\n\t}\n\n\ts.seqSize = 0\n\tstartSize := len(s.out)\n\n\tvar errCode int\n\tif cpuinfo.HasBMI2() {\n\t\tif useSafe {\n\t\t\terrCode = sequenceDecs_decodeSync_safe_bmi2(s, br, &ctx)\n\t\t} else {\n\t\t\terrCode = sequenceDecs_decodeSync_bmi2(s, br, &ctx)\n\t\t}\n\t} else {\n\t\tif useSafe {\n\t\t\terrCode = sequenceDecs_decodeSync_safe_amd64(s, br, &ctx)\n\t\t} else {\n\t\t\terrCode = sequenceDecs_decodeSync_amd64(s, br, &ctx)\n\t\t}\n\t}\n\tswitch errCode {\n\tcase noError:\n\t\tbreak\n\n\tcase errorMatchLenOfsMismatch:\n\t\treturn true, fmt.Errorf(\"zero matchoff and matchlen (%d) > 0\", ctx.ml)\n\n\tcase errorMatchLenTooBig:\n\t\treturn true, fmt.Errorf(\"match len (%d) bigger than max allowed length\", ctx.ml)\n\n\tcase errorMatchOffTooBig:\n\t\treturn true, fmt.Errorf(\"match offset (%d) bigger than current history (%d)\",\n\t\t\tctx.mo, ctx.outPosition+len(hist)-startSize)\n\n\tcase errorNotEnoughLiterals:\n\t\treturn true, fmt.Errorf(\"unexpected literal count, want %d bytes, but only %d is available\",\n\t\t\tctx.ll, ctx.litRemain+ctx.ll)\n\n\tcase errorOverread:\n\t\treturn true, io.ErrUnexpectedEOF\n\n\tcase errorNotEnoughSpace:\n\t\tsize := ctx.outPosition + ctx.ll + ctx.ml\n\t\tif debugDecoder {\n\t\t\tprintln(\"msl:\", s.maxSyncLen, \"cap\", cap(s.out), \"bef:\", startSize, \"sz:\", size-startSize, \"mbs:\", maxBlockSize, \"outsz:\", cap(s.out)-startSize)\n\t\t}\n\t\treturn true, fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\n\tdefault:\n\t\treturn true, fmt.Errorf(\"sequenceDecs_decode returned erroneous code %d\", errCode)\n\t}\n\n\ts.seqSize += ctx.litRemain\n\tif s.seqSize > maxBlockSize {\n\t\treturn true, fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t}\n\terr := br.close()\n\tif err != nil {\n\t\tprintf(\"Closing sequences: %v, %+v\\n\", err, *br)\n\t\treturn true, err\n\t}\n\n\ts.literals = s.literals[ctx.litPosition:]\n\tt := ctx.outPosition\n\ts.out = s.out[:t]\n\n\t// Add final literals\n\ts.out = append(s.out, s.literals...)\n\tif debugDecoder {\n\t\tt += len(s.literals)\n\t\tif t != len(s.out) {\n\t\t\tpanic(fmt.Errorf(\"length mismatch, want %d, got %d\", len(s.out), t))\n\t\t}\n\t}\n\n\treturn true, nil\n}\n\n// --------------------------------------------------------------------------------\n\ntype decodeAsmContext struct {\n\tllTable   []decSymbol\n\tmlTable   []decSymbol\n\tofTable   []decSymbol\n\tllState   uint64\n\tmlState   uint64\n\tofState   uint64\n\titeration int\n\tseqs      []seqVals\n\tlitRemain int\n}\n\nconst noError = 0\n\n// error reported when mo == 0 && ml > 0\nconst errorMatchLenOfsMismatch = 1\n\n// error reported when ml > maxMatchLen\nconst errorMatchLenTooBig = 2\n\n// error reported when mo > available history or mo > s.windowSize\nconst errorMatchOffTooBig = 3\n\n// error reported when the sum of literal lengths exeeceds the literal buffer size\nconst errorNotEnoughLiterals = 4\n\n// error reported when capacity of `out` is too small\nconst errorNotEnoughSpace = 5\n\n// error reported when bits are overread.\nconst errorOverread = 6\n\n// sequenceDecs_decode implements the main loop of sequenceDecs in x86 asm.\n//\n// Please refer to seqdec_generic.go for the reference implementation.\n//\n//go:noescape\nfunc sequenceDecs_decode_amd64(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n\n// sequenceDecs_decode implements the main loop of sequenceDecs in x86 asm.\n//\n// Please refer to seqdec_generic.go for the reference implementation.\n//\n//go:noescape\nfunc sequenceDecs_decode_56_amd64(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n\n// sequenceDecs_decode implements the main loop of sequenceDecs in x86 asm with BMI2 extensions.\n//\n//go:noescape\nfunc sequenceDecs_decode_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n\n// sequenceDecs_decode implements the main loop of sequenceDecs in x86 asm with BMI2 extensions.\n//\n//go:noescape\nfunc sequenceDecs_decode_56_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n\n// decode sequences from the stream without the provided history.\nfunc (s *sequenceDecs) decode(seqs []seqVals) error {\n\tbr := s.br\n\n\tmaxBlockSize := min(s.windowSize, maxCompressedBlockSize)\n\n\tctx := decodeAsmContext{\n\t\tllTable:   s.litLengths.fse.dt[:maxTablesize],\n\t\tmlTable:   s.matchLengths.fse.dt[:maxTablesize],\n\t\tofTable:   s.offsets.fse.dt[:maxTablesize],\n\t\tllState:   uint64(s.litLengths.state.state),\n\t\tmlState:   uint64(s.matchLengths.state.state),\n\t\tofState:   uint64(s.offsets.state.state),\n\t\tseqs:      seqs,\n\t\titeration: len(seqs) - 1,\n\t\tlitRemain: len(s.literals),\n\t}\n\n\tif debugDecoder {\n\t\tprintln(\"decode: decoding\", len(seqs), \"sequences\", br.remain(), \"bits remain on stream\")\n\t}\n\n\ts.seqSize = 0\n\tlte56bits := s.maxBits+s.offsets.fse.actualTableLog+s.matchLengths.fse.actualTableLog+s.litLengths.fse.actualTableLog <= 56\n\tvar errCode int\n\tif cpuinfo.HasBMI2() {\n\t\tif lte56bits {\n\t\t\terrCode = sequenceDecs_decode_56_bmi2(s, br, &ctx)\n\t\t} else {\n\t\t\terrCode = sequenceDecs_decode_bmi2(s, br, &ctx)\n\t\t}\n\t} else {\n\t\tif lte56bits {\n\t\t\terrCode = sequenceDecs_decode_56_amd64(s, br, &ctx)\n\t\t} else {\n\t\t\terrCode = sequenceDecs_decode_amd64(s, br, &ctx)\n\t\t}\n\t}\n\tif errCode != 0 {\n\t\ti := len(seqs) - ctx.iteration - 1\n\t\tswitch errCode {\n\t\tcase errorMatchLenOfsMismatch:\n\t\t\tml := ctx.seqs[i].ml\n\t\t\treturn fmt.Errorf(\"zero matchoff and matchlen (%d) > 0\", ml)\n\n\t\tcase errorMatchLenTooBig:\n\t\t\tml := ctx.seqs[i].ml\n\t\t\treturn fmt.Errorf(\"match len (%d) bigger than max allowed length\", ml)\n\n\t\tcase errorNotEnoughLiterals:\n\t\t\tll := ctx.seqs[i].ll\n\t\t\treturn fmt.Errorf(\"unexpected literal count, want %d bytes, but only %d is available\", ll, ctx.litRemain+ll)\n\t\tcase errorOverread:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\t}\n\n\t\treturn fmt.Errorf(\"sequenceDecs_decode_amd64 returned erroneous code %d\", errCode)\n\t}\n\n\tif ctx.litRemain < 0 {\n\t\treturn fmt.Errorf(\"literal count is too big: total available %d, total requested %d\",\n\t\t\tlen(s.literals), len(s.literals)-ctx.litRemain)\n\t}\n\n\ts.seqSize += ctx.litRemain\n\tif s.seqSize > maxBlockSize {\n\t\treturn fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t}\n\tif debugDecoder {\n\t\tprintln(\"decode: \", br.remain(), \"bits remain on stream. code:\", errCode)\n\t}\n\terr := br.close()\n\tif err != nil {\n\t\tprintf(\"Closing sequences: %v, %+v\\n\", err, *br)\n\t}\n\treturn err\n}\n\n// --------------------------------------------------------------------------------\n\ntype executeAsmContext struct {\n\tseqs        []seqVals\n\tseqIndex    int\n\tout         []byte\n\thistory     []byte\n\tliterals    []byte\n\toutPosition int\n\tlitPosition int\n\twindowSize  int\n}\n\n// sequenceDecs_executeSimple_amd64 implements the main loop of sequenceDecs.executeSimple in x86 asm.\n//\n// Returns false if a match offset is too big.\n//\n// Please refer to seqdec_generic.go for the reference implementation.\n//\n//go:noescape\nfunc sequenceDecs_executeSimple_amd64(ctx *executeAsmContext) bool\n\n// Same as above, but with safe memcopies\n//\n//go:noescape\nfunc sequenceDecs_executeSimple_safe_amd64(ctx *executeAsmContext) bool\n\n// executeSimple handles cases when dictionary is not used.\nfunc (s *sequenceDecs) executeSimple(seqs []seqVals, hist []byte) error {\n\t// Ensure we have enough output size...\n\tif len(s.out)+s.seqSize+compressedBlockOverAlloc > cap(s.out) {\n\t\taddBytes := s.seqSize + len(s.out) + compressedBlockOverAlloc\n\t\ts.out = append(s.out, make([]byte, addBytes)...)\n\t\ts.out = s.out[:len(s.out)-addBytes]\n\t}\n\n\tif debugDecoder {\n\t\tprintf(\"Execute %d seqs with literals: %d into %d bytes\\n\", len(seqs), len(s.literals), s.seqSize)\n\t}\n\n\tvar t = len(s.out)\n\tout := s.out[:t+s.seqSize]\n\n\tctx := executeAsmContext{\n\t\tseqs:        seqs,\n\t\tseqIndex:    0,\n\t\tout:         out,\n\t\thistory:     hist,\n\t\toutPosition: t,\n\t\tlitPosition: 0,\n\t\tliterals:    s.literals,\n\t\twindowSize:  s.windowSize,\n\t}\n\tvar ok bool\n\tif cap(s.literals) < len(s.literals)+compressedBlockOverAlloc {\n\t\tok = sequenceDecs_executeSimple_safe_amd64(&ctx)\n\t} else {\n\t\tok = sequenceDecs_executeSimple_amd64(&ctx)\n\t}\n\tif !ok {\n\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history (%d)\",\n\t\t\tseqs[ctx.seqIndex].mo, ctx.outPosition+len(hist))\n\t}\n\ts.literals = s.literals[ctx.litPosition:]\n\tt = ctx.outPosition\n\n\t// Add final literals\n\tcopy(out[t:], s.literals)\n\tif debugDecoder {\n\t\tt += len(s.literals)\n\t\tif t != len(out) {\n\t\t\tpanic(fmt.Errorf(\"length mismatch, want %d, got %d, ss: %d\", len(out), t, s.seqSize))\n\t\t}\n\t}\n\ts.out = out\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s",
    "content": "// Code generated by command: go run gen.go -out ../seqdec_amd64.s -pkg=zstd. DO NOT EDIT.\n\n//go:build !appengine && !noasm && gc && !noasm\n\n// func sequenceDecs_decode_amd64(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n// Requires: CMOV\nTEXT ·sequenceDecs_decode_amd64(SB), $8-32\n\tMOVQ    br+8(FP), CX\n\tMOVQ    24(CX), DX\n\tMOVBQZX 40(CX), BX\n\tMOVQ    (CX), AX\n\tMOVQ    32(CX), SI\n\tADDQ    SI, AX\n\tMOVQ    AX, (SP)\n\tMOVQ    ctx+16(FP), AX\n\tMOVQ    72(AX), DI\n\tMOVQ    80(AX), R8\n\tMOVQ    88(AX), R9\n\tMOVQ    104(AX), R10\n\tMOVQ    s+0(FP), AX\n\tMOVQ    144(AX), R11\n\tMOVQ    152(AX), R12\n\tMOVQ    160(AX), R13\n\nsequenceDecs_decode_amd64_main_loop:\n\tMOVQ (SP), R14\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decode_amd64_fill_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R14\n\tMOVQ (R14), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decode_amd64_fill_end\n\nsequenceDecs_decode_amd64_fill_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decode_amd64_fill_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decode_amd64_fill_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R14\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R14), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decode_amd64_fill_byte_by_byte\n\nsequenceDecs_decode_amd64_fill_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_amd64_fill_end:\n\t// Update offset\n\tMOVQ  R9, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_amd64_of_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_amd64_of_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_amd64_of_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_amd64_of_update_zero:\n\tMOVQ AX, 16(R10)\n\n\t// Update match length\n\tMOVQ  R8, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_amd64_ml_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_amd64_ml_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_amd64_ml_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_amd64_ml_update_zero:\n\tMOVQ AX, 8(R10)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decode_amd64_fill_2_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R14\n\tMOVQ (R14), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decode_amd64_fill_2_end\n\nsequenceDecs_decode_amd64_fill_2_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decode_amd64_fill_2_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decode_amd64_fill_2_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R14\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R14), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decode_amd64_fill_2_byte_by_byte\n\nsequenceDecs_decode_amd64_fill_2_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_amd64_fill_2_end:\n\t// Update literal length\n\tMOVQ  DI, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_amd64_ll_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_amd64_ll_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_amd64_ll_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_amd64_ll_update_zero:\n\tMOVQ AX, (R10)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R14, (SP)\n\tMOVQ    R9, AX\n\tSHRQ    $0x08, AX\n\tMOVBQZX AL, AX\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decode_amd64_skip_update\n\n\t// Update Literal Length State\n\tMOVBQZX DI, R14\n\tSHRL    $0x10, DI\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, DI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Match Length State\n\tMOVBQZX R8, R14\n\tSHRL    $0x10, R8\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, R8\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Offset State\n\tMOVBQZX R9, R14\n\tSHRL    $0x10, R9\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, R9\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R9*8), R9\n\nsequenceDecs_decode_amd64_skip_update:\n\t// Adjust offset\n\tMOVQ 16(R10), CX\n\tCMPQ AX, $0x01\n\tJBE  sequenceDecs_decode_amd64_adjust_offsetB_1_or_0\n\tMOVQ R12, R13\n\tMOVQ R11, R12\n\tMOVQ CX, R11\n\tJMP  sequenceDecs_decode_amd64_after_adjust\n\nsequenceDecs_decode_amd64_adjust_offsetB_1_or_0:\n\tCMPQ (R10), $0x00000000\n\tJNE  sequenceDecs_decode_amd64_adjust_offset_maybezero\n\tINCQ CX\n\tJMP  sequenceDecs_decode_amd64_adjust_offset_nonzero\n\nsequenceDecs_decode_amd64_adjust_offset_maybezero:\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_amd64_adjust_offset_nonzero\n\tMOVQ  R11, CX\n\tJMP   sequenceDecs_decode_amd64_after_adjust\n\nsequenceDecs_decode_amd64_adjust_offset_nonzero:\n\tCMPQ CX, $0x01\n\tJB   sequenceDecs_decode_amd64_adjust_zero\n\tJEQ  sequenceDecs_decode_amd64_adjust_one\n\tCMPQ CX, $0x02\n\tJA   sequenceDecs_decode_amd64_adjust_three\n\tJMP  sequenceDecs_decode_amd64_adjust_two\n\nsequenceDecs_decode_amd64_adjust_zero:\n\tMOVQ R11, AX\n\tJMP  sequenceDecs_decode_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_amd64_adjust_one:\n\tMOVQ R12, AX\n\tJMP  sequenceDecs_decode_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_amd64_adjust_two:\n\tMOVQ R13, AX\n\tJMP  sequenceDecs_decode_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_amd64_adjust_three:\n\tLEAQ -1(R11), AX\n\nsequenceDecs_decode_amd64_adjust_test_temp_valid:\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decode_amd64_adjust_temp_valid\n\tMOVQ  $0x00000001, AX\n\nsequenceDecs_decode_amd64_adjust_temp_valid:\n\tCMPQ    CX, $0x01\n\tCMOVQNE R12, R13\n\tMOVQ    R11, R12\n\tMOVQ    AX, R11\n\tMOVQ    AX, CX\n\nsequenceDecs_decode_amd64_after_adjust:\n\tMOVQ CX, 16(R10)\n\n\t// Check values\n\tMOVQ  8(R10), AX\n\tMOVQ  (R10), R14\n\tLEAQ  (AX)(R14*1), R15\n\tMOVQ  s+0(FP), BP\n\tADDQ  R15, 256(BP)\n\tMOVQ  ctx+16(FP), R15\n\tSUBQ  R14, 128(R15)\n\tJS    error_not_enough_literals\n\tCMPQ  AX, $0x00020002\n\tJA    sequenceDecs_decode_amd64_error_match_len_too_big\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_amd64_match_len_ofs_ok\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decode_amd64_error_match_len_ofs_mismatch\n\nsequenceDecs_decode_amd64_match_len_ofs_ok:\n\tADDQ $0x18, R10\n\tMOVQ ctx+16(FP), AX\n\tDECQ 96(AX)\n\tJNS  sequenceDecs_decode_amd64_main_loop\n\tMOVQ s+0(FP), AX\n\tMOVQ R11, 144(AX)\n\tMOVQ R12, 152(AX)\n\tMOVQ R13, 160(AX)\n\tMOVQ br+8(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVB BL, 40(AX)\n\tMOVQ SI, 32(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decode_amd64_error_match_len_ofs_mismatch:\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decode_amd64_error_match_len_too_big:\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decode_56_amd64(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n// Requires: CMOV\nTEXT ·sequenceDecs_decode_56_amd64(SB), $8-32\n\tMOVQ    br+8(FP), CX\n\tMOVQ    24(CX), DX\n\tMOVBQZX 40(CX), BX\n\tMOVQ    (CX), AX\n\tMOVQ    32(CX), SI\n\tADDQ    SI, AX\n\tMOVQ    AX, (SP)\n\tMOVQ    ctx+16(FP), AX\n\tMOVQ    72(AX), DI\n\tMOVQ    80(AX), R8\n\tMOVQ    88(AX), R9\n\tMOVQ    104(AX), R10\n\tMOVQ    s+0(FP), AX\n\tMOVQ    144(AX), R11\n\tMOVQ    152(AX), R12\n\tMOVQ    160(AX), R13\n\nsequenceDecs_decode_56_amd64_main_loop:\n\tMOVQ (SP), R14\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decode_56_amd64_fill_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R14\n\tMOVQ (R14), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decode_56_amd64_fill_end\n\nsequenceDecs_decode_56_amd64_fill_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decode_56_amd64_fill_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decode_56_amd64_fill_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R14\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R14), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decode_56_amd64_fill_byte_by_byte\n\nsequenceDecs_decode_56_amd64_fill_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_56_amd64_fill_end:\n\t// Update offset\n\tMOVQ  R9, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_56_amd64_of_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_56_amd64_of_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_56_amd64_of_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_56_amd64_of_update_zero:\n\tMOVQ AX, 16(R10)\n\n\t// Update match length\n\tMOVQ  R8, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_56_amd64_ml_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_56_amd64_ml_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_56_amd64_ml_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_56_amd64_ml_update_zero:\n\tMOVQ AX, 8(R10)\n\n\t// Update literal length\n\tMOVQ  DI, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R15\n\tSHLQ  CL, R15\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decode_56_amd64_ll_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decode_56_amd64_ll_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decode_56_amd64_ll_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R15\n\tADDQ  R15, AX\n\nsequenceDecs_decode_56_amd64_ll_update_zero:\n\tMOVQ AX, (R10)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R14, (SP)\n\tMOVQ    R9, AX\n\tSHRQ    $0x08, AX\n\tMOVBQZX AL, AX\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decode_56_amd64_skip_update\n\n\t// Update Literal Length State\n\tMOVBQZX DI, R14\n\tSHRL    $0x10, DI\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, DI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Match Length State\n\tMOVBQZX R8, R14\n\tSHRL    $0x10, R8\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, R8\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Offset State\n\tMOVBQZX R9, R14\n\tSHRL    $0x10, R9\n\tLEAQ    (BX)(R14*1), CX\n\tMOVQ    DX, R15\n\tMOVQ    CX, BX\n\tROLQ    CL, R15\n\tMOVL    $0x00000001, BP\n\tMOVB    R14, CL\n\tSHLL    CL, BP\n\tDECL    BP\n\tANDQ    BP, R15\n\tADDQ    R15, R9\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R9*8), R9\n\nsequenceDecs_decode_56_amd64_skip_update:\n\t// Adjust offset\n\tMOVQ 16(R10), CX\n\tCMPQ AX, $0x01\n\tJBE  sequenceDecs_decode_56_amd64_adjust_offsetB_1_or_0\n\tMOVQ R12, R13\n\tMOVQ R11, R12\n\tMOVQ CX, R11\n\tJMP  sequenceDecs_decode_56_amd64_after_adjust\n\nsequenceDecs_decode_56_amd64_adjust_offsetB_1_or_0:\n\tCMPQ (R10), $0x00000000\n\tJNE  sequenceDecs_decode_56_amd64_adjust_offset_maybezero\n\tINCQ CX\n\tJMP  sequenceDecs_decode_56_amd64_adjust_offset_nonzero\n\nsequenceDecs_decode_56_amd64_adjust_offset_maybezero:\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_56_amd64_adjust_offset_nonzero\n\tMOVQ  R11, CX\n\tJMP   sequenceDecs_decode_56_amd64_after_adjust\n\nsequenceDecs_decode_56_amd64_adjust_offset_nonzero:\n\tCMPQ CX, $0x01\n\tJB   sequenceDecs_decode_56_amd64_adjust_zero\n\tJEQ  sequenceDecs_decode_56_amd64_adjust_one\n\tCMPQ CX, $0x02\n\tJA   sequenceDecs_decode_56_amd64_adjust_three\n\tJMP  sequenceDecs_decode_56_amd64_adjust_two\n\nsequenceDecs_decode_56_amd64_adjust_zero:\n\tMOVQ R11, AX\n\tJMP  sequenceDecs_decode_56_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_56_amd64_adjust_one:\n\tMOVQ R12, AX\n\tJMP  sequenceDecs_decode_56_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_56_amd64_adjust_two:\n\tMOVQ R13, AX\n\tJMP  sequenceDecs_decode_56_amd64_adjust_test_temp_valid\n\nsequenceDecs_decode_56_amd64_adjust_three:\n\tLEAQ -1(R11), AX\n\nsequenceDecs_decode_56_amd64_adjust_test_temp_valid:\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decode_56_amd64_adjust_temp_valid\n\tMOVQ  $0x00000001, AX\n\nsequenceDecs_decode_56_amd64_adjust_temp_valid:\n\tCMPQ    CX, $0x01\n\tCMOVQNE R12, R13\n\tMOVQ    R11, R12\n\tMOVQ    AX, R11\n\tMOVQ    AX, CX\n\nsequenceDecs_decode_56_amd64_after_adjust:\n\tMOVQ CX, 16(R10)\n\n\t// Check values\n\tMOVQ  8(R10), AX\n\tMOVQ  (R10), R14\n\tLEAQ  (AX)(R14*1), R15\n\tMOVQ  s+0(FP), BP\n\tADDQ  R15, 256(BP)\n\tMOVQ  ctx+16(FP), R15\n\tSUBQ  R14, 128(R15)\n\tJS    error_not_enough_literals\n\tCMPQ  AX, $0x00020002\n\tJA    sequenceDecs_decode_56_amd64_error_match_len_too_big\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_56_amd64_match_len_ofs_ok\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decode_56_amd64_error_match_len_ofs_mismatch\n\nsequenceDecs_decode_56_amd64_match_len_ofs_ok:\n\tADDQ $0x18, R10\n\tMOVQ ctx+16(FP), AX\n\tDECQ 96(AX)\n\tJNS  sequenceDecs_decode_56_amd64_main_loop\n\tMOVQ s+0(FP), AX\n\tMOVQ R11, 144(AX)\n\tMOVQ R12, 152(AX)\n\tMOVQ R13, 160(AX)\n\tMOVQ br+8(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVB BL, 40(AX)\n\tMOVQ SI, 32(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decode_56_amd64_error_match_len_ofs_mismatch:\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decode_56_amd64_error_match_len_too_big:\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decode_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n// Requires: BMI, BMI2, CMOV\nTEXT ·sequenceDecs_decode_bmi2(SB), $8-32\n\tMOVQ    br+8(FP), BX\n\tMOVQ    24(BX), AX\n\tMOVBQZX 40(BX), DX\n\tMOVQ    (BX), CX\n\tMOVQ    32(BX), BX\n\tADDQ    BX, CX\n\tMOVQ    CX, (SP)\n\tMOVQ    ctx+16(FP), CX\n\tMOVQ    72(CX), SI\n\tMOVQ    80(CX), DI\n\tMOVQ    88(CX), R8\n\tMOVQ    104(CX), R9\n\tMOVQ    s+0(FP), CX\n\tMOVQ    144(CX), R10\n\tMOVQ    152(CX), R11\n\tMOVQ    160(CX), R12\n\nsequenceDecs_decode_bmi2_main_loop:\n\tMOVQ (SP), R13\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decode_bmi2_fill_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R13\n\tMOVQ (R13), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decode_bmi2_fill_end\n\nsequenceDecs_decode_bmi2_fill_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decode_bmi2_fill_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decode_bmi2_fill_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R13), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decode_bmi2_fill_byte_by_byte\n\nsequenceDecs_decode_bmi2_fill_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_bmi2_fill_end:\n\t// Update offset\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, R8, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   R8, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, 16(R9)\n\n\t// Update match length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, DI, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   DI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, 8(R9)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decode_bmi2_fill_2_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R13\n\tMOVQ (R13), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decode_bmi2_fill_2_end\n\nsequenceDecs_decode_bmi2_fill_2_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decode_bmi2_fill_2_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decode_bmi2_fill_2_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R13), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decode_bmi2_fill_2_byte_by_byte\n\nsequenceDecs_decode_bmi2_fill_2_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_bmi2_fill_2_end:\n\t// Update literal length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, SI, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   SI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, (R9)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R13, (SP)\n\tMOVQ    $0x00000808, CX\n\tBEXTRQ  CX, R8, R13\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decode_bmi2_skip_update\n\tLEAQ    (SI)(DI*1), R14\n\tADDQ    R8, R14\n\tMOVBQZX R14, R14\n\tLEAQ    (DX)(R14*1), CX\n\tMOVQ    AX, R15\n\tMOVQ    CX, DX\n\tROLQ    CL, R15\n\tBZHIQ   R14, R15, R15\n\n\t// Update Offset State\n\tBZHIQ R8, R15, CX\n\tSHRXQ R8, R15, R15\n\tSHRL  $0x10, R8\n\tADDQ  CX, R8\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Match Length State\n\tBZHIQ DI, R15, CX\n\tSHRXQ DI, R15, R15\n\tSHRL  $0x10, DI\n\tADDQ  CX, DI\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Literal Length State\n\tBZHIQ SI, R15, CX\n\tSHRL  $0x10, SI\n\tADDQ  CX, SI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(SI*8), SI\n\nsequenceDecs_decode_bmi2_skip_update:\n\t// Adjust offset\n\tMOVQ 16(R9), CX\n\tCMPQ R13, $0x01\n\tJBE  sequenceDecs_decode_bmi2_adjust_offsetB_1_or_0\n\tMOVQ R11, R12\n\tMOVQ R10, R11\n\tMOVQ CX, R10\n\tJMP  sequenceDecs_decode_bmi2_after_adjust\n\nsequenceDecs_decode_bmi2_adjust_offsetB_1_or_0:\n\tCMPQ (R9), $0x00000000\n\tJNE  sequenceDecs_decode_bmi2_adjust_offset_maybezero\n\tINCQ CX\n\tJMP  sequenceDecs_decode_bmi2_adjust_offset_nonzero\n\nsequenceDecs_decode_bmi2_adjust_offset_maybezero:\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_bmi2_adjust_offset_nonzero\n\tMOVQ  R10, CX\n\tJMP   sequenceDecs_decode_bmi2_after_adjust\n\nsequenceDecs_decode_bmi2_adjust_offset_nonzero:\n\tCMPQ CX, $0x01\n\tJB   sequenceDecs_decode_bmi2_adjust_zero\n\tJEQ  sequenceDecs_decode_bmi2_adjust_one\n\tCMPQ CX, $0x02\n\tJA   sequenceDecs_decode_bmi2_adjust_three\n\tJMP  sequenceDecs_decode_bmi2_adjust_two\n\nsequenceDecs_decode_bmi2_adjust_zero:\n\tMOVQ R10, R13\n\tJMP  sequenceDecs_decode_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_bmi2_adjust_one:\n\tMOVQ R11, R13\n\tJMP  sequenceDecs_decode_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_bmi2_adjust_two:\n\tMOVQ R12, R13\n\tJMP  sequenceDecs_decode_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_bmi2_adjust_three:\n\tLEAQ -1(R10), R13\n\nsequenceDecs_decode_bmi2_adjust_test_temp_valid:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decode_bmi2_adjust_temp_valid\n\tMOVQ  $0x00000001, R13\n\nsequenceDecs_decode_bmi2_adjust_temp_valid:\n\tCMPQ    CX, $0x01\n\tCMOVQNE R11, R12\n\tMOVQ    R10, R11\n\tMOVQ    R13, R10\n\tMOVQ    R13, CX\n\nsequenceDecs_decode_bmi2_after_adjust:\n\tMOVQ CX, 16(R9)\n\n\t// Check values\n\tMOVQ  8(R9), R13\n\tMOVQ  (R9), R14\n\tLEAQ  (R13)(R14*1), R15\n\tMOVQ  s+0(FP), BP\n\tADDQ  R15, 256(BP)\n\tMOVQ  ctx+16(FP), R15\n\tSUBQ  R14, 128(R15)\n\tJS    error_not_enough_literals\n\tCMPQ  R13, $0x00020002\n\tJA    sequenceDecs_decode_bmi2_error_match_len_too_big\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_bmi2_match_len_ofs_ok\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decode_bmi2_error_match_len_ofs_mismatch\n\nsequenceDecs_decode_bmi2_match_len_ofs_ok:\n\tADDQ $0x18, R9\n\tMOVQ ctx+16(FP), CX\n\tDECQ 96(CX)\n\tJNS  sequenceDecs_decode_bmi2_main_loop\n\tMOVQ s+0(FP), CX\n\tMOVQ R10, 144(CX)\n\tMOVQ R11, 152(CX)\n\tMOVQ R12, 160(CX)\n\tMOVQ br+8(FP), CX\n\tMOVQ AX, 24(CX)\n\tMOVB DL, 40(CX)\n\tMOVQ BX, 32(CX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decode_bmi2_error_match_len_ofs_mismatch:\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decode_bmi2_error_match_len_too_big:\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decode_56_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int\n// Requires: BMI, BMI2, CMOV\nTEXT ·sequenceDecs_decode_56_bmi2(SB), $8-32\n\tMOVQ    br+8(FP), BX\n\tMOVQ    24(BX), AX\n\tMOVBQZX 40(BX), DX\n\tMOVQ    (BX), CX\n\tMOVQ    32(BX), BX\n\tADDQ    BX, CX\n\tMOVQ    CX, (SP)\n\tMOVQ    ctx+16(FP), CX\n\tMOVQ    72(CX), SI\n\tMOVQ    80(CX), DI\n\tMOVQ    88(CX), R8\n\tMOVQ    104(CX), R9\n\tMOVQ    s+0(FP), CX\n\tMOVQ    144(CX), R10\n\tMOVQ    152(CX), R11\n\tMOVQ    160(CX), R12\n\nsequenceDecs_decode_56_bmi2_main_loop:\n\tMOVQ (SP), R13\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decode_56_bmi2_fill_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R13\n\tMOVQ (R13), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decode_56_bmi2_fill_end\n\nsequenceDecs_decode_56_bmi2_fill_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decode_56_bmi2_fill_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decode_56_bmi2_fill_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R13), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decode_56_bmi2_fill_byte_by_byte\n\nsequenceDecs_decode_56_bmi2_fill_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decode_56_bmi2_fill_end:\n\t// Update offset\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, R8, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   R8, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, 16(R9)\n\n\t// Update match length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, DI, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   DI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, 8(R9)\n\n\t// Update literal length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, SI, R14\n\tMOVQ   AX, R15\n\tLEAQ   (DX)(R14*1), CX\n\tROLQ   CL, R15\n\tBZHIQ  R14, R15, R15\n\tMOVQ   CX, DX\n\tMOVQ   SI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R15, CX\n\tMOVQ   CX, (R9)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R13, (SP)\n\tMOVQ    $0x00000808, CX\n\tBEXTRQ  CX, R8, R13\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decode_56_bmi2_skip_update\n\tLEAQ    (SI)(DI*1), R14\n\tADDQ    R8, R14\n\tMOVBQZX R14, R14\n\tLEAQ    (DX)(R14*1), CX\n\tMOVQ    AX, R15\n\tMOVQ    CX, DX\n\tROLQ    CL, R15\n\tBZHIQ   R14, R15, R15\n\n\t// Update Offset State\n\tBZHIQ R8, R15, CX\n\tSHRXQ R8, R15, R15\n\tSHRL  $0x10, R8\n\tADDQ  CX, R8\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Match Length State\n\tBZHIQ DI, R15, CX\n\tSHRXQ DI, R15, R15\n\tSHRL  $0x10, DI\n\tADDQ  CX, DI\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Literal Length State\n\tBZHIQ SI, R15, CX\n\tSHRL  $0x10, SI\n\tADDQ  CX, SI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(SI*8), SI\n\nsequenceDecs_decode_56_bmi2_skip_update:\n\t// Adjust offset\n\tMOVQ 16(R9), CX\n\tCMPQ R13, $0x01\n\tJBE  sequenceDecs_decode_56_bmi2_adjust_offsetB_1_or_0\n\tMOVQ R11, R12\n\tMOVQ R10, R11\n\tMOVQ CX, R10\n\tJMP  sequenceDecs_decode_56_bmi2_after_adjust\n\nsequenceDecs_decode_56_bmi2_adjust_offsetB_1_or_0:\n\tCMPQ (R9), $0x00000000\n\tJNE  sequenceDecs_decode_56_bmi2_adjust_offset_maybezero\n\tINCQ CX\n\tJMP  sequenceDecs_decode_56_bmi2_adjust_offset_nonzero\n\nsequenceDecs_decode_56_bmi2_adjust_offset_maybezero:\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_56_bmi2_adjust_offset_nonzero\n\tMOVQ  R10, CX\n\tJMP   sequenceDecs_decode_56_bmi2_after_adjust\n\nsequenceDecs_decode_56_bmi2_adjust_offset_nonzero:\n\tCMPQ CX, $0x01\n\tJB   sequenceDecs_decode_56_bmi2_adjust_zero\n\tJEQ  sequenceDecs_decode_56_bmi2_adjust_one\n\tCMPQ CX, $0x02\n\tJA   sequenceDecs_decode_56_bmi2_adjust_three\n\tJMP  sequenceDecs_decode_56_bmi2_adjust_two\n\nsequenceDecs_decode_56_bmi2_adjust_zero:\n\tMOVQ R10, R13\n\tJMP  sequenceDecs_decode_56_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_56_bmi2_adjust_one:\n\tMOVQ R11, R13\n\tJMP  sequenceDecs_decode_56_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_56_bmi2_adjust_two:\n\tMOVQ R12, R13\n\tJMP  sequenceDecs_decode_56_bmi2_adjust_test_temp_valid\n\nsequenceDecs_decode_56_bmi2_adjust_three:\n\tLEAQ -1(R10), R13\n\nsequenceDecs_decode_56_bmi2_adjust_test_temp_valid:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decode_56_bmi2_adjust_temp_valid\n\tMOVQ  $0x00000001, R13\n\nsequenceDecs_decode_56_bmi2_adjust_temp_valid:\n\tCMPQ    CX, $0x01\n\tCMOVQNE R11, R12\n\tMOVQ    R10, R11\n\tMOVQ    R13, R10\n\tMOVQ    R13, CX\n\nsequenceDecs_decode_56_bmi2_after_adjust:\n\tMOVQ CX, 16(R9)\n\n\t// Check values\n\tMOVQ  8(R9), R13\n\tMOVQ  (R9), R14\n\tLEAQ  (R13)(R14*1), R15\n\tMOVQ  s+0(FP), BP\n\tADDQ  R15, 256(BP)\n\tMOVQ  ctx+16(FP), R15\n\tSUBQ  R14, 128(R15)\n\tJS    error_not_enough_literals\n\tCMPQ  R13, $0x00020002\n\tJA    sequenceDecs_decode_56_bmi2_error_match_len_too_big\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decode_56_bmi2_match_len_ofs_ok\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decode_56_bmi2_error_match_len_ofs_mismatch\n\nsequenceDecs_decode_56_bmi2_match_len_ofs_ok:\n\tADDQ $0x18, R9\n\tMOVQ ctx+16(FP), CX\n\tDECQ 96(CX)\n\tJNS  sequenceDecs_decode_56_bmi2_main_loop\n\tMOVQ s+0(FP), CX\n\tMOVQ R10, 144(CX)\n\tMOVQ R11, 152(CX)\n\tMOVQ R12, 160(CX)\n\tMOVQ br+8(FP), CX\n\tMOVQ AX, 24(CX)\n\tMOVB DL, 40(CX)\n\tMOVQ BX, 32(CX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decode_56_bmi2_error_match_len_ofs_mismatch:\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decode_56_bmi2_error_match_len_too_big:\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n// func sequenceDecs_executeSimple_amd64(ctx *executeAsmContext) bool\n// Requires: SSE\nTEXT ·sequenceDecs_executeSimple_amd64(SB), $8-9\n\tMOVQ  ctx+0(FP), R10\n\tMOVQ  8(R10), CX\n\tTESTQ CX, CX\n\tJZ    empty_seqs\n\tMOVQ  (R10), AX\n\tMOVQ  24(R10), DX\n\tMOVQ  32(R10), BX\n\tMOVQ  80(R10), SI\n\tMOVQ  104(R10), DI\n\tMOVQ  120(R10), R8\n\tMOVQ  56(R10), R9\n\tMOVQ  64(R10), R10\n\tADDQ  R10, R9\n\n\t// seqsBase += 24 * seqIndex\n\tLEAQ (DX)(DX*2), R11\n\tSHLQ $0x03, R11\n\tADDQ R11, AX\n\n\t// outBase += outPosition\n\tADDQ DI, BX\n\nmain_loop:\n\tMOVQ (AX), R11\n\tMOVQ 16(AX), R12\n\tMOVQ 8(AX), R13\n\n\t// Copy literals\n\tTESTQ R11, R11\n\tJZ    check_offset\n\tXORQ  R14, R14\n\ncopy_1:\n\tMOVUPS (SI)(R14*1), X0\n\tMOVUPS X0, (BX)(R14*1)\n\tADDQ   $0x10, R14\n\tCMPQ   R14, R11\n\tJB     copy_1\n\tADDQ   R11, SI\n\tADDQ   R11, BX\n\tADDQ   R11, DI\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tLEAQ (DI)(R10*1), R11\n\tCMPQ R12, R11\n\tJG   error_match_off_too_big\n\tCMPQ R12, R8\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ R12, R11\n\tSUBQ DI, R11\n\tJLS  copy_match\n\tMOVQ R9, R14\n\tSUBQ R11, R14\n\tCMPQ R13, R11\n\tJG   copy_all_from_history\n\tMOVQ R13, R11\n\tSUBQ $0x10, R11\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R11\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(R11*1), R14\n\tLEAQ   16(BX)(R11*1), BX\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), R11\n\tMOVB 2(R14), R12\n\tMOVW R11, (BX)\n\tMOVB R12, 2(BX)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), R11\n\tMOVL -4(R14)(R13*1), R12\n\tMOVL R11, (BX)\n\tMOVL R12, -4(BX)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), R11\n\tMOVQ -8(R14)(R13*1), R12\n\tMOVQ R11, (BX)\n\tMOVQ R12, -8(BX)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\ncopy_4_end:\n\tADDQ R13, DI\n\tADDQ $0x18, AX\n\tINCQ DX\n\tCMPQ DX, CX\n\tJB   main_loop\n\tJMP  loop_finished\n\ncopy_all_from_history:\n\tMOVQ R11, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(BX)(R15*1), BX\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ R11, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ R11, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(R11*1), BP\n\tMOVB R15, (BX)\n\tMOVB BP, -1(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (BX)\n\tMOVB BP, 2(BX)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(R11*1), BP\n\tMOVL R15, (BX)\n\tMOVL BP, -4(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(R11*1), BP\n\tMOVQ R15, (BX)\n\tMOVQ BP, -8(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\ncopy_5_end:\n\tADDQ R11, DI\n\tSUBQ R11, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ BX, R11\n\tSUBQ R12, R11\n\n\t// ml <= mo\n\tCMPQ R13, R12\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, DI\n\tMOVQ BX, R12\n\tADDQ R13, BX\n\ncopy_2:\n\tMOVUPS (R11), X0\n\tMOVUPS X0, (R12)\n\tADDQ   $0x10, R11\n\tADDQ   $0x10, R12\n\tSUBQ   $0x10, R13\n\tJHI    copy_2\n\tJMP    handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, DI\n\ncopy_slow_3:\n\tMOVB (R11), R12\n\tMOVB R12, (BX)\n\tINCQ R11\n\tINCQ BX\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tADDQ $0x18, AX\n\tINCQ DX\n\tCMPQ DX, CX\n\tJB   main_loop\n\nloop_finished:\n\t// Return value\n\tMOVB $0x01, ret+8(FP)\n\n\t// Update the context\n\tMOVQ ctx+0(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVQ DI, 104(AX)\n\tSUBQ 80(AX), SI\n\tMOVQ SI, 112(AX)\n\tRET\n\nerror_match_off_too_big:\n\t// Return value\n\tMOVB $0x00, ret+8(FP)\n\n\t// Update the context\n\tMOVQ ctx+0(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVQ DI, 104(AX)\n\tSUBQ 80(AX), SI\n\tMOVQ SI, 112(AX)\n\tRET\n\nempty_seqs:\n\t// Return value\n\tMOVB $0x01, ret+8(FP)\n\tRET\n\n// func sequenceDecs_executeSimple_safe_amd64(ctx *executeAsmContext) bool\n// Requires: SSE\nTEXT ·sequenceDecs_executeSimple_safe_amd64(SB), $8-9\n\tMOVQ  ctx+0(FP), R10\n\tMOVQ  8(R10), CX\n\tTESTQ CX, CX\n\tJZ    empty_seqs\n\tMOVQ  (R10), AX\n\tMOVQ  24(R10), DX\n\tMOVQ  32(R10), BX\n\tMOVQ  80(R10), SI\n\tMOVQ  104(R10), DI\n\tMOVQ  120(R10), R8\n\tMOVQ  56(R10), R9\n\tMOVQ  64(R10), R10\n\tADDQ  R10, R9\n\n\t// seqsBase += 24 * seqIndex\n\tLEAQ (DX)(DX*2), R11\n\tSHLQ $0x03, R11\n\tADDQ R11, AX\n\n\t// outBase += outPosition\n\tADDQ DI, BX\n\nmain_loop:\n\tMOVQ (AX), R11\n\tMOVQ 16(AX), R12\n\tMOVQ 8(AX), R13\n\n\t// Copy literals\n\tTESTQ R11, R11\n\tJZ    check_offset\n\tMOVQ  R11, R14\n\tSUBQ  $0x10, R14\n\tJB    copy_1_small\n\ncopy_1_loop:\n\tMOVUPS (SI), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, SI\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R14\n\tJAE    copy_1_loop\n\tLEAQ   16(SI)(R14*1), SI\n\tLEAQ   16(BX)(R14*1), BX\n\tMOVUPS -16(SI), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_1_end\n\ncopy_1_small:\n\tCMPQ R11, $0x03\n\tJE   copy_1_move_3\n\tJB   copy_1_move_1or2\n\tCMPQ R11, $0x08\n\tJB   copy_1_move_4through7\n\tJMP  copy_1_move_8through16\n\ncopy_1_move_1or2:\n\tMOVB (SI), R14\n\tMOVB -1(SI)(R11*1), R15\n\tMOVB R14, (BX)\n\tMOVB R15, -1(BX)(R11*1)\n\tADDQ R11, SI\n\tADDQ R11, BX\n\tJMP  copy_1_end\n\ncopy_1_move_3:\n\tMOVW (SI), R14\n\tMOVB 2(SI), R15\n\tMOVW R14, (BX)\n\tMOVB R15, 2(BX)\n\tADDQ R11, SI\n\tADDQ R11, BX\n\tJMP  copy_1_end\n\ncopy_1_move_4through7:\n\tMOVL (SI), R14\n\tMOVL -4(SI)(R11*1), R15\n\tMOVL R14, (BX)\n\tMOVL R15, -4(BX)(R11*1)\n\tADDQ R11, SI\n\tADDQ R11, BX\n\tJMP  copy_1_end\n\ncopy_1_move_8through16:\n\tMOVQ (SI), R14\n\tMOVQ -8(SI)(R11*1), R15\n\tMOVQ R14, (BX)\n\tMOVQ R15, -8(BX)(R11*1)\n\tADDQ R11, SI\n\tADDQ R11, BX\n\ncopy_1_end:\n\tADDQ R11, DI\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tLEAQ (DI)(R10*1), R11\n\tCMPQ R12, R11\n\tJG   error_match_off_too_big\n\tCMPQ R12, R8\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ R12, R11\n\tSUBQ DI, R11\n\tJLS  copy_match\n\tMOVQ R9, R14\n\tSUBQ R11, R14\n\tCMPQ R13, R11\n\tJG   copy_all_from_history\n\tMOVQ R13, R11\n\tSUBQ $0x10, R11\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R11\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(R11*1), R14\n\tLEAQ   16(BX)(R11*1), BX\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), R11\n\tMOVB 2(R14), R12\n\tMOVW R11, (BX)\n\tMOVB R12, 2(BX)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), R11\n\tMOVL -4(R14)(R13*1), R12\n\tMOVL R11, (BX)\n\tMOVL R12, -4(BX)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), R11\n\tMOVQ -8(R14)(R13*1), R12\n\tMOVQ R11, (BX)\n\tMOVQ R12, -8(BX)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, BX\n\ncopy_4_end:\n\tADDQ R13, DI\n\tADDQ $0x18, AX\n\tINCQ DX\n\tCMPQ DX, CX\n\tJB   main_loop\n\tJMP  loop_finished\n\ncopy_all_from_history:\n\tMOVQ R11, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(BX)(R15*1), BX\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ R11, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ R11, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(R11*1), BP\n\tMOVB R15, (BX)\n\tMOVB BP, -1(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (BX)\n\tMOVB BP, 2(BX)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(R11*1), BP\n\tMOVL R15, (BX)\n\tMOVL BP, -4(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(R11*1), BP\n\tMOVQ R15, (BX)\n\tMOVQ BP, -8(BX)(R11*1)\n\tADDQ R11, R14\n\tADDQ R11, BX\n\ncopy_5_end:\n\tADDQ R11, DI\n\tSUBQ R11, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ BX, R11\n\tSUBQ R12, R11\n\n\t// ml <= mo\n\tCMPQ R13, R12\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, DI\n\tMOVQ R13, R12\n\tSUBQ $0x10, R12\n\tJB   copy_2_small\n\ncopy_2_loop:\n\tMOVUPS (R11), X0\n\tMOVUPS X0, (BX)\n\tADDQ   $0x10, R11\n\tADDQ   $0x10, BX\n\tSUBQ   $0x10, R12\n\tJAE    copy_2_loop\n\tLEAQ   16(R11)(R12*1), R11\n\tLEAQ   16(BX)(R12*1), BX\n\tMOVUPS -16(R11), X0\n\tMOVUPS X0, -16(BX)\n\tJMP    copy_2_end\n\ncopy_2_small:\n\tCMPQ R13, $0x03\n\tJE   copy_2_move_3\n\tJB   copy_2_move_1or2\n\tCMPQ R13, $0x08\n\tJB   copy_2_move_4through7\n\tJMP  copy_2_move_8through16\n\ncopy_2_move_1or2:\n\tMOVB (R11), R12\n\tMOVB -1(R11)(R13*1), R14\n\tMOVB R12, (BX)\n\tMOVB R14, -1(BX)(R13*1)\n\tADDQ R13, R11\n\tADDQ R13, BX\n\tJMP  copy_2_end\n\ncopy_2_move_3:\n\tMOVW (R11), R12\n\tMOVB 2(R11), R14\n\tMOVW R12, (BX)\n\tMOVB R14, 2(BX)\n\tADDQ R13, R11\n\tADDQ R13, BX\n\tJMP  copy_2_end\n\ncopy_2_move_4through7:\n\tMOVL (R11), R12\n\tMOVL -4(R11)(R13*1), R14\n\tMOVL R12, (BX)\n\tMOVL R14, -4(BX)(R13*1)\n\tADDQ R13, R11\n\tADDQ R13, BX\n\tJMP  copy_2_end\n\ncopy_2_move_8through16:\n\tMOVQ (R11), R12\n\tMOVQ -8(R11)(R13*1), R14\n\tMOVQ R12, (BX)\n\tMOVQ R14, -8(BX)(R13*1)\n\tADDQ R13, R11\n\tADDQ R13, BX\n\ncopy_2_end:\n\tJMP handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, DI\n\ncopy_slow_3:\n\tMOVB (R11), R12\n\tMOVB R12, (BX)\n\tINCQ R11\n\tINCQ BX\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tADDQ $0x18, AX\n\tINCQ DX\n\tCMPQ DX, CX\n\tJB   main_loop\n\nloop_finished:\n\t// Return value\n\tMOVB $0x01, ret+8(FP)\n\n\t// Update the context\n\tMOVQ ctx+0(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVQ DI, 104(AX)\n\tSUBQ 80(AX), SI\n\tMOVQ SI, 112(AX)\n\tRET\n\nerror_match_off_too_big:\n\t// Return value\n\tMOVB $0x00, ret+8(FP)\n\n\t// Update the context\n\tMOVQ ctx+0(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVQ DI, 104(AX)\n\tSUBQ 80(AX), SI\n\tMOVQ SI, 112(AX)\n\tRET\n\nempty_seqs:\n\t// Return value\n\tMOVB $0x01, ret+8(FP)\n\tRET\n\n// func sequenceDecs_decodeSync_amd64(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n// Requires: CMOV, SSE\nTEXT ·sequenceDecs_decodeSync_amd64(SB), $64-32\n\tMOVQ    br+8(FP), CX\n\tMOVQ    24(CX), DX\n\tMOVBQZX 40(CX), BX\n\tMOVQ    (CX), AX\n\tMOVQ    32(CX), SI\n\tADDQ    SI, AX\n\tMOVQ    AX, (SP)\n\tMOVQ    ctx+16(FP), AX\n\tMOVQ    72(AX), DI\n\tMOVQ    80(AX), R8\n\tMOVQ    88(AX), R9\n\tXORQ    CX, CX\n\tMOVQ    CX, 8(SP)\n\tMOVQ    CX, 16(SP)\n\tMOVQ    CX, 24(SP)\n\tMOVQ    112(AX), R10\n\tMOVQ    128(AX), CX\n\tMOVQ    CX, 32(SP)\n\tMOVQ    144(AX), R11\n\tMOVQ    136(AX), R12\n\tMOVQ    200(AX), CX\n\tMOVQ    CX, 56(SP)\n\tMOVQ    176(AX), CX\n\tMOVQ    CX, 48(SP)\n\tMOVQ    184(AX), AX\n\tMOVQ    AX, 40(SP)\n\tMOVQ    40(SP), AX\n\tADDQ    AX, 48(SP)\n\n\t// Calculate pointer to s.out[cap(s.out)] (a past-end pointer)\n\tADDQ R10, 32(SP)\n\n\t// outBase += outPosition\n\tADDQ R12, R10\n\nsequenceDecs_decodeSync_amd64_main_loop:\n\tMOVQ (SP), R13\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decodeSync_amd64_fill_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R13\n\tMOVQ (R13), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decodeSync_amd64_fill_end\n\nsequenceDecs_decodeSync_amd64_fill_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decodeSync_amd64_fill_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decodeSync_amd64_fill_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R13), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decodeSync_amd64_fill_byte_by_byte\n\nsequenceDecs_decodeSync_amd64_fill_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_amd64_fill_end:\n\t// Update offset\n\tMOVQ  R9, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_amd64_of_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_amd64_of_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_amd64_of_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_amd64_of_update_zero:\n\tMOVQ AX, 8(SP)\n\n\t// Update match length\n\tMOVQ  R8, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_amd64_ml_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_amd64_ml_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_amd64_ml_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_amd64_ml_update_zero:\n\tMOVQ AX, 16(SP)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decodeSync_amd64_fill_2_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R13\n\tMOVQ (R13), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decodeSync_amd64_fill_2_end\n\nsequenceDecs_decodeSync_amd64_fill_2_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decodeSync_amd64_fill_2_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decodeSync_amd64_fill_2_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R13), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decodeSync_amd64_fill_2_byte_by_byte\n\nsequenceDecs_decodeSync_amd64_fill_2_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_amd64_fill_2_end:\n\t// Update literal length\n\tMOVQ  DI, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_amd64_ll_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_amd64_ll_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_amd64_ll_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_amd64_ll_update_zero:\n\tMOVQ AX, 24(SP)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R13, (SP)\n\tMOVQ    R9, AX\n\tSHRQ    $0x08, AX\n\tMOVBQZX AL, AX\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decodeSync_amd64_skip_update\n\n\t// Update Literal Length State\n\tMOVBQZX DI, R13\n\tSHRL    $0x10, DI\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, DI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Match Length State\n\tMOVBQZX R8, R13\n\tSHRL    $0x10, R8\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, R8\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Offset State\n\tMOVBQZX R9, R13\n\tSHRL    $0x10, R9\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, R9\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R9*8), R9\n\nsequenceDecs_decodeSync_amd64_skip_update:\n\t// Adjust offset\n\tMOVQ   s+0(FP), CX\n\tMOVQ   8(SP), R13\n\tCMPQ   AX, $0x01\n\tJBE    sequenceDecs_decodeSync_amd64_adjust_offsetB_1_or_0\n\tMOVUPS 144(CX), X0\n\tMOVQ   R13, 144(CX)\n\tMOVUPS X0, 152(CX)\n\tJMP    sequenceDecs_decodeSync_amd64_after_adjust\n\nsequenceDecs_decodeSync_amd64_adjust_offsetB_1_or_0:\n\tCMPQ 24(SP), $0x00000000\n\tJNE  sequenceDecs_decodeSync_amd64_adjust_offset_maybezero\n\tINCQ R13\n\tJMP  sequenceDecs_decodeSync_amd64_adjust_offset_nonzero\n\nsequenceDecs_decodeSync_amd64_adjust_offset_maybezero:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_amd64_adjust_offset_nonzero\n\tMOVQ  144(CX), R13\n\tJMP   sequenceDecs_decodeSync_amd64_after_adjust\n\nsequenceDecs_decodeSync_amd64_adjust_offset_nonzero:\n\tMOVQ    R13, AX\n\tXORQ    R14, R14\n\tMOVQ    $-1, R15\n\tCMPQ    R13, $0x03\n\tCMOVQEQ R14, AX\n\tCMOVQEQ R15, R14\n\tADDQ    144(CX)(AX*8), R14\n\tJNZ     sequenceDecs_decodeSync_amd64_adjust_temp_valid\n\tMOVQ    $0x00000001, R14\n\nsequenceDecs_decodeSync_amd64_adjust_temp_valid:\n\tCMPQ R13, $0x01\n\tJZ   sequenceDecs_decodeSync_amd64_adjust_skip\n\tMOVQ 152(CX), AX\n\tMOVQ AX, 160(CX)\n\nsequenceDecs_decodeSync_amd64_adjust_skip:\n\tMOVQ 144(CX), AX\n\tMOVQ AX, 152(CX)\n\tMOVQ R14, 144(CX)\n\tMOVQ R14, R13\n\nsequenceDecs_decodeSync_amd64_after_adjust:\n\tMOVQ R13, 8(SP)\n\n\t// Check values\n\tMOVQ  16(SP), AX\n\tMOVQ  24(SP), CX\n\tLEAQ  (AX)(CX*1), R14\n\tMOVQ  s+0(FP), R15\n\tADDQ  R14, 256(R15)\n\tMOVQ  ctx+16(FP), R14\n\tSUBQ  CX, 104(R14)\n\tJS    error_not_enough_literals\n\tCMPQ  AX, $0x00020002\n\tJA    sequenceDecs_decodeSync_amd64_error_match_len_too_big\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_amd64_match_len_ofs_ok\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decodeSync_amd64_error_match_len_ofs_mismatch\n\nsequenceDecs_decodeSync_amd64_match_len_ofs_ok:\n\tMOVQ 24(SP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ 16(SP), R13\n\n\t// Check if we have enough space in s.out\n\tLEAQ (AX)(R13*1), R14\n\tADDQ R10, R14\n\tCMPQ R14, 32(SP)\n\tJA   error_not_enough_space\n\n\t// Copy literals\n\tTESTQ AX, AX\n\tJZ    check_offset\n\tXORQ  R14, R14\n\ncopy_1:\n\tMOVUPS (R11)(R14*1), X0\n\tMOVUPS X0, (R10)(R14*1)\n\tADDQ   $0x10, R14\n\tCMPQ   R14, AX\n\tJB     copy_1\n\tADDQ   AX, R11\n\tADDQ   AX, R10\n\tADDQ   AX, R12\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tMOVQ R12, AX\n\tADDQ 40(SP), AX\n\tCMPQ CX, AX\n\tJG   error_match_off_too_big\n\tCMPQ CX, 56(SP)\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ CX, AX\n\tSUBQ R12, AX\n\tJLS  copy_match\n\tMOVQ 48(SP), R14\n\tSUBQ AX, R14\n\tCMPQ R13, AX\n\tJG   copy_all_from_history\n\tMOVQ R13, AX\n\tSUBQ $0x10, AX\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, AX\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(AX*1), R14\n\tLEAQ   16(R10)(AX*1), R10\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), AX\n\tMOVB 2(R14), CL\n\tMOVW AX, (R10)\n\tMOVB CL, 2(R10)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), AX\n\tMOVL -4(R14)(R13*1), CX\n\tMOVL AX, (R10)\n\tMOVL CX, -4(R10)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), AX\n\tMOVQ -8(R14)(R13*1), CX\n\tMOVQ AX, (R10)\n\tMOVQ CX, -8(R10)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\ncopy_4_end:\n\tADDQ R13, R12\n\tJMP  handle_loop\n\tJMP loop_finished\n\ncopy_all_from_history:\n\tMOVQ AX, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(R10)(R15*1), R10\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ AX, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ AX, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(AX*1), BP\n\tMOVB R15, (R10)\n\tMOVB BP, -1(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (R10)\n\tMOVB BP, 2(R10)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(AX*1), BP\n\tMOVL R15, (R10)\n\tMOVL BP, -4(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(AX*1), BP\n\tMOVQ R15, (R10)\n\tMOVQ BP, -8(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\ncopy_5_end:\n\tADDQ AX, R12\n\tSUBQ AX, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ R10, AX\n\tSUBQ CX, AX\n\n\t// ml <= mo\n\tCMPQ R13, CX\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, R12\n\tMOVQ R10, CX\n\tADDQ R13, R10\n\ncopy_2:\n\tMOVUPS (AX), X0\n\tMOVUPS X0, (CX)\n\tADDQ   $0x10, AX\n\tADDQ   $0x10, CX\n\tSUBQ   $0x10, R13\n\tJHI    copy_2\n\tJMP    handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, R12\n\ncopy_slow_3:\n\tMOVB (AX), CL\n\tMOVB CL, (R10)\n\tINCQ AX\n\tINCQ R10\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tMOVQ ctx+16(FP), AX\n\tDECQ 96(AX)\n\tJNS  sequenceDecs_decodeSync_amd64_main_loop\n\nloop_finished:\n\tMOVQ br+8(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVB BL, 40(AX)\n\tMOVQ SI, 32(AX)\n\n\t// Update the context\n\tMOVQ ctx+16(FP), AX\n\tMOVQ R12, 136(AX)\n\tMOVQ 144(AX), CX\n\tSUBQ CX, R11\n\tMOVQ R11, 168(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decodeSync_amd64_error_match_len_ofs_mismatch:\n\tMOVQ 16(SP), AX\n\tMOVQ ctx+16(FP), CX\n\tMOVQ AX, 216(CX)\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decodeSync_amd64_error_match_len_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\nerror_match_off_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ CX, 224(AX)\n\tMOVQ R12, 136(AX)\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n\t// Return with not enough output space error\nerror_not_enough_space:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ R12, 136(AX)\n\tMOVQ $0x00000005, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decodeSync_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n// Requires: BMI, BMI2, CMOV, SSE\nTEXT ·sequenceDecs_decodeSync_bmi2(SB), $64-32\n\tMOVQ    br+8(FP), BX\n\tMOVQ    24(BX), AX\n\tMOVBQZX 40(BX), DX\n\tMOVQ    (BX), CX\n\tMOVQ    32(BX), BX\n\tADDQ    BX, CX\n\tMOVQ    CX, (SP)\n\tMOVQ    ctx+16(FP), CX\n\tMOVQ    72(CX), SI\n\tMOVQ    80(CX), DI\n\tMOVQ    88(CX), R8\n\tXORQ    R9, R9\n\tMOVQ    R9, 8(SP)\n\tMOVQ    R9, 16(SP)\n\tMOVQ    R9, 24(SP)\n\tMOVQ    112(CX), R9\n\tMOVQ    128(CX), R10\n\tMOVQ    R10, 32(SP)\n\tMOVQ    144(CX), R10\n\tMOVQ    136(CX), R11\n\tMOVQ    200(CX), R12\n\tMOVQ    R12, 56(SP)\n\tMOVQ    176(CX), R12\n\tMOVQ    R12, 48(SP)\n\tMOVQ    184(CX), CX\n\tMOVQ    CX, 40(SP)\n\tMOVQ    40(SP), CX\n\tADDQ    CX, 48(SP)\n\n\t// Calculate pointer to s.out[cap(s.out)] (a past-end pointer)\n\tADDQ R9, 32(SP)\n\n\t// outBase += outPosition\n\tADDQ R11, R9\n\nsequenceDecs_decodeSync_bmi2_main_loop:\n\tMOVQ (SP), R12\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decodeSync_bmi2_fill_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R12\n\tMOVQ (R12), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decodeSync_bmi2_fill_end\n\nsequenceDecs_decodeSync_bmi2_fill_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decodeSync_bmi2_fill_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decodeSync_bmi2_fill_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R12\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R12), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decodeSync_bmi2_fill_byte_by_byte\n\nsequenceDecs_decodeSync_bmi2_fill_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_bmi2_fill_end:\n\t// Update offset\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, R8, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   R8, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 8(SP)\n\n\t// Update match length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, DI, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   DI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 16(SP)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decodeSync_bmi2_fill_2_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R12\n\tMOVQ (R12), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decodeSync_bmi2_fill_2_end\n\nsequenceDecs_decodeSync_bmi2_fill_2_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decodeSync_bmi2_fill_2_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decodeSync_bmi2_fill_2_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R12\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R12), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decodeSync_bmi2_fill_2_byte_by_byte\n\nsequenceDecs_decodeSync_bmi2_fill_2_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_bmi2_fill_2_end:\n\t// Update literal length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, SI, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   SI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 24(SP)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R12, (SP)\n\tMOVQ    $0x00000808, CX\n\tBEXTRQ  CX, R8, R12\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decodeSync_bmi2_skip_update\n\tLEAQ    (SI)(DI*1), R13\n\tADDQ    R8, R13\n\tMOVBQZX R13, R13\n\tLEAQ    (DX)(R13*1), CX\n\tMOVQ    AX, R14\n\tMOVQ    CX, DX\n\tROLQ    CL, R14\n\tBZHIQ   R13, R14, R14\n\n\t// Update Offset State\n\tBZHIQ R8, R14, CX\n\tSHRXQ R8, R14, R14\n\tSHRL  $0x10, R8\n\tADDQ  CX, R8\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Match Length State\n\tBZHIQ DI, R14, CX\n\tSHRXQ DI, R14, R14\n\tSHRL  $0x10, DI\n\tADDQ  CX, DI\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Literal Length State\n\tBZHIQ SI, R14, CX\n\tSHRL  $0x10, SI\n\tADDQ  CX, SI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(SI*8), SI\n\nsequenceDecs_decodeSync_bmi2_skip_update:\n\t// Adjust offset\n\tMOVQ   s+0(FP), CX\n\tMOVQ   8(SP), R13\n\tCMPQ   R12, $0x01\n\tJBE    sequenceDecs_decodeSync_bmi2_adjust_offsetB_1_or_0\n\tMOVUPS 144(CX), X0\n\tMOVQ   R13, 144(CX)\n\tMOVUPS X0, 152(CX)\n\tJMP    sequenceDecs_decodeSync_bmi2_after_adjust\n\nsequenceDecs_decodeSync_bmi2_adjust_offsetB_1_or_0:\n\tCMPQ 24(SP), $0x00000000\n\tJNE  sequenceDecs_decodeSync_bmi2_adjust_offset_maybezero\n\tINCQ R13\n\tJMP  sequenceDecs_decodeSync_bmi2_adjust_offset_nonzero\n\nsequenceDecs_decodeSync_bmi2_adjust_offset_maybezero:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_bmi2_adjust_offset_nonzero\n\tMOVQ  144(CX), R13\n\tJMP   sequenceDecs_decodeSync_bmi2_after_adjust\n\nsequenceDecs_decodeSync_bmi2_adjust_offset_nonzero:\n\tMOVQ    R13, R12\n\tXORQ    R14, R14\n\tMOVQ    $-1, R15\n\tCMPQ    R13, $0x03\n\tCMOVQEQ R14, R12\n\tCMOVQEQ R15, R14\n\tADDQ    144(CX)(R12*8), R14\n\tJNZ     sequenceDecs_decodeSync_bmi2_adjust_temp_valid\n\tMOVQ    $0x00000001, R14\n\nsequenceDecs_decodeSync_bmi2_adjust_temp_valid:\n\tCMPQ R13, $0x01\n\tJZ   sequenceDecs_decodeSync_bmi2_adjust_skip\n\tMOVQ 152(CX), R12\n\tMOVQ R12, 160(CX)\n\nsequenceDecs_decodeSync_bmi2_adjust_skip:\n\tMOVQ 144(CX), R12\n\tMOVQ R12, 152(CX)\n\tMOVQ R14, 144(CX)\n\tMOVQ R14, R13\n\nsequenceDecs_decodeSync_bmi2_after_adjust:\n\tMOVQ R13, 8(SP)\n\n\t// Check values\n\tMOVQ  16(SP), CX\n\tMOVQ  24(SP), R12\n\tLEAQ  (CX)(R12*1), R14\n\tMOVQ  s+0(FP), R15\n\tADDQ  R14, 256(R15)\n\tMOVQ  ctx+16(FP), R14\n\tSUBQ  R12, 104(R14)\n\tJS    error_not_enough_literals\n\tCMPQ  CX, $0x00020002\n\tJA    sequenceDecs_decodeSync_bmi2_error_match_len_too_big\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_bmi2_match_len_ofs_ok\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decodeSync_bmi2_error_match_len_ofs_mismatch\n\nsequenceDecs_decodeSync_bmi2_match_len_ofs_ok:\n\tMOVQ 24(SP), CX\n\tMOVQ 8(SP), R12\n\tMOVQ 16(SP), R13\n\n\t// Check if we have enough space in s.out\n\tLEAQ (CX)(R13*1), R14\n\tADDQ R9, R14\n\tCMPQ R14, 32(SP)\n\tJA   error_not_enough_space\n\n\t// Copy literals\n\tTESTQ CX, CX\n\tJZ    check_offset\n\tXORQ  R14, R14\n\ncopy_1:\n\tMOVUPS (R10)(R14*1), X0\n\tMOVUPS X0, (R9)(R14*1)\n\tADDQ   $0x10, R14\n\tCMPQ   R14, CX\n\tJB     copy_1\n\tADDQ   CX, R10\n\tADDQ   CX, R9\n\tADDQ   CX, R11\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tMOVQ R11, CX\n\tADDQ 40(SP), CX\n\tCMPQ R12, CX\n\tJG   error_match_off_too_big\n\tCMPQ R12, 56(SP)\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ R12, CX\n\tSUBQ R11, CX\n\tJLS  copy_match\n\tMOVQ 48(SP), R14\n\tSUBQ CX, R14\n\tCMPQ R13, CX\n\tJG   copy_all_from_history\n\tMOVQ R13, CX\n\tSUBQ $0x10, CX\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, CX\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(CX*1), R14\n\tLEAQ   16(R9)(CX*1), R9\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), CX\n\tMOVB 2(R14), R12\n\tMOVW CX, (R9)\n\tMOVB R12, 2(R9)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), CX\n\tMOVL -4(R14)(R13*1), R12\n\tMOVL CX, (R9)\n\tMOVL R12, -4(R9)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), CX\n\tMOVQ -8(R14)(R13*1), R12\n\tMOVQ CX, (R9)\n\tMOVQ R12, -8(R9)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\ncopy_4_end:\n\tADDQ R13, R11\n\tJMP  handle_loop\n\tJMP loop_finished\n\ncopy_all_from_history:\n\tMOVQ CX, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(R9)(R15*1), R9\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ CX, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ CX, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(CX*1), BP\n\tMOVB R15, (R9)\n\tMOVB BP, -1(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (R9)\n\tMOVB BP, 2(R9)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(CX*1), BP\n\tMOVL R15, (R9)\n\tMOVL BP, -4(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(CX*1), BP\n\tMOVQ R15, (R9)\n\tMOVQ BP, -8(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\ncopy_5_end:\n\tADDQ CX, R11\n\tSUBQ CX, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ R9, CX\n\tSUBQ R12, CX\n\n\t// ml <= mo\n\tCMPQ R13, R12\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, R11\n\tMOVQ R9, R12\n\tADDQ R13, R9\n\ncopy_2:\n\tMOVUPS (CX), X0\n\tMOVUPS X0, (R12)\n\tADDQ   $0x10, CX\n\tADDQ   $0x10, R12\n\tSUBQ   $0x10, R13\n\tJHI    copy_2\n\tJMP    handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, R11\n\ncopy_slow_3:\n\tMOVB (CX), R12\n\tMOVB R12, (R9)\n\tINCQ CX\n\tINCQ R9\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tMOVQ ctx+16(FP), CX\n\tDECQ 96(CX)\n\tJNS  sequenceDecs_decodeSync_bmi2_main_loop\n\nloop_finished:\n\tMOVQ br+8(FP), CX\n\tMOVQ AX, 24(CX)\n\tMOVB DL, 40(CX)\n\tMOVQ BX, 32(CX)\n\n\t// Update the context\n\tMOVQ ctx+16(FP), AX\n\tMOVQ R11, 136(AX)\n\tMOVQ 144(AX), CX\n\tSUBQ CX, R10\n\tMOVQ R10, 168(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decodeSync_bmi2_error_match_len_ofs_mismatch:\n\tMOVQ 16(SP), AX\n\tMOVQ ctx+16(FP), CX\n\tMOVQ AX, 216(CX)\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decodeSync_bmi2_error_match_len_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\nerror_match_off_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ CX, 224(AX)\n\tMOVQ R11, 136(AX)\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n\t// Return with not enough output space error\nerror_not_enough_space:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ R11, 136(AX)\n\tMOVQ $0x00000005, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decodeSync_safe_amd64(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n// Requires: CMOV, SSE\nTEXT ·sequenceDecs_decodeSync_safe_amd64(SB), $64-32\n\tMOVQ    br+8(FP), CX\n\tMOVQ    24(CX), DX\n\tMOVBQZX 40(CX), BX\n\tMOVQ    (CX), AX\n\tMOVQ    32(CX), SI\n\tADDQ    SI, AX\n\tMOVQ    AX, (SP)\n\tMOVQ    ctx+16(FP), AX\n\tMOVQ    72(AX), DI\n\tMOVQ    80(AX), R8\n\tMOVQ    88(AX), R9\n\tXORQ    CX, CX\n\tMOVQ    CX, 8(SP)\n\tMOVQ    CX, 16(SP)\n\tMOVQ    CX, 24(SP)\n\tMOVQ    112(AX), R10\n\tMOVQ    128(AX), CX\n\tMOVQ    CX, 32(SP)\n\tMOVQ    144(AX), R11\n\tMOVQ    136(AX), R12\n\tMOVQ    200(AX), CX\n\tMOVQ    CX, 56(SP)\n\tMOVQ    176(AX), CX\n\tMOVQ    CX, 48(SP)\n\tMOVQ    184(AX), AX\n\tMOVQ    AX, 40(SP)\n\tMOVQ    40(SP), AX\n\tADDQ    AX, 48(SP)\n\n\t// Calculate pointer to s.out[cap(s.out)] (a past-end pointer)\n\tADDQ R10, 32(SP)\n\n\t// outBase += outPosition\n\tADDQ R12, R10\n\nsequenceDecs_decodeSync_safe_amd64_main_loop:\n\tMOVQ (SP), R13\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decodeSync_safe_amd64_fill_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R13\n\tMOVQ (R13), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decodeSync_safe_amd64_fill_end\n\nsequenceDecs_decodeSync_safe_amd64_fill_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decodeSync_safe_amd64_fill_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decodeSync_safe_amd64_fill_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R13), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decodeSync_safe_amd64_fill_byte_by_byte\n\nsequenceDecs_decodeSync_safe_amd64_fill_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_safe_amd64_fill_end:\n\t// Update offset\n\tMOVQ  R9, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_safe_amd64_of_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_safe_amd64_of_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_safe_amd64_of_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_safe_amd64_of_update_zero:\n\tMOVQ AX, 8(SP)\n\n\t// Update match length\n\tMOVQ  R8, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_safe_amd64_ml_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_safe_amd64_ml_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_safe_amd64_ml_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_safe_amd64_ml_update_zero:\n\tMOVQ AX, 16(SP)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ SI, $0x08\n\tJL   sequenceDecs_decodeSync_safe_amd64_fill_2_byte_by_byte\n\tMOVQ BX, AX\n\tSHRQ $0x03, AX\n\tSUBQ AX, R13\n\tMOVQ (R13), DX\n\tSUBQ AX, SI\n\tANDQ $0x07, BX\n\tJMP  sequenceDecs_decodeSync_safe_amd64_fill_2_end\n\nsequenceDecs_decodeSync_safe_amd64_fill_2_byte_by_byte:\n\tCMPQ    SI, $0x00\n\tJLE     sequenceDecs_decodeSync_safe_amd64_fill_2_check_overread\n\tCMPQ    BX, $0x07\n\tJLE     sequenceDecs_decodeSync_safe_amd64_fill_2_end\n\tSHLQ    $0x08, DX\n\tSUBQ    $0x01, R13\n\tSUBQ    $0x01, SI\n\tSUBQ    $0x08, BX\n\tMOVBQZX (R13), AX\n\tORQ     AX, DX\n\tJMP     sequenceDecs_decodeSync_safe_amd64_fill_2_byte_by_byte\n\nsequenceDecs_decodeSync_safe_amd64_fill_2_check_overread:\n\tCMPQ BX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_safe_amd64_fill_2_end:\n\t// Update literal length\n\tMOVQ  DI, AX\n\tMOVQ  BX, CX\n\tMOVQ  DX, R14\n\tSHLQ  CL, R14\n\tMOVB  AH, CL\n\tSHRQ  $0x20, AX\n\tTESTQ CX, CX\n\tJZ    sequenceDecs_decodeSync_safe_amd64_ll_update_zero\n\tADDQ  CX, BX\n\tCMPQ  BX, $0x40\n\tJA    sequenceDecs_decodeSync_safe_amd64_ll_update_zero\n\tCMPQ  CX, $0x40\n\tJAE   sequenceDecs_decodeSync_safe_amd64_ll_update_zero\n\tNEGQ  CX\n\tSHRQ  CL, R14\n\tADDQ  R14, AX\n\nsequenceDecs_decodeSync_safe_amd64_ll_update_zero:\n\tMOVQ AX, 24(SP)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R13, (SP)\n\tMOVQ    R9, AX\n\tSHRQ    $0x08, AX\n\tMOVBQZX AL, AX\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decodeSync_safe_amd64_skip_update\n\n\t// Update Literal Length State\n\tMOVBQZX DI, R13\n\tSHRL    $0x10, DI\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, DI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Match Length State\n\tMOVBQZX R8, R13\n\tSHRL    $0x10, R8\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, R8\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Offset State\n\tMOVBQZX R9, R13\n\tSHRL    $0x10, R9\n\tLEAQ    (BX)(R13*1), CX\n\tMOVQ    DX, R14\n\tMOVQ    CX, BX\n\tROLQ    CL, R14\n\tMOVL    $0x00000001, R15\n\tMOVB    R13, CL\n\tSHLL    CL, R15\n\tDECL    R15\n\tANDQ    R15, R14\n\tADDQ    R14, R9\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R9*8), R9\n\nsequenceDecs_decodeSync_safe_amd64_skip_update:\n\t// Adjust offset\n\tMOVQ   s+0(FP), CX\n\tMOVQ   8(SP), R13\n\tCMPQ   AX, $0x01\n\tJBE    sequenceDecs_decodeSync_safe_amd64_adjust_offsetB_1_or_0\n\tMOVUPS 144(CX), X0\n\tMOVQ   R13, 144(CX)\n\tMOVUPS X0, 152(CX)\n\tJMP    sequenceDecs_decodeSync_safe_amd64_after_adjust\n\nsequenceDecs_decodeSync_safe_amd64_adjust_offsetB_1_or_0:\n\tCMPQ 24(SP), $0x00000000\n\tJNE  sequenceDecs_decodeSync_safe_amd64_adjust_offset_maybezero\n\tINCQ R13\n\tJMP  sequenceDecs_decodeSync_safe_amd64_adjust_offset_nonzero\n\nsequenceDecs_decodeSync_safe_amd64_adjust_offset_maybezero:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_safe_amd64_adjust_offset_nonzero\n\tMOVQ  144(CX), R13\n\tJMP   sequenceDecs_decodeSync_safe_amd64_after_adjust\n\nsequenceDecs_decodeSync_safe_amd64_adjust_offset_nonzero:\n\tMOVQ    R13, AX\n\tXORQ    R14, R14\n\tMOVQ    $-1, R15\n\tCMPQ    R13, $0x03\n\tCMOVQEQ R14, AX\n\tCMOVQEQ R15, R14\n\tADDQ    144(CX)(AX*8), R14\n\tJNZ     sequenceDecs_decodeSync_safe_amd64_adjust_temp_valid\n\tMOVQ    $0x00000001, R14\n\nsequenceDecs_decodeSync_safe_amd64_adjust_temp_valid:\n\tCMPQ R13, $0x01\n\tJZ   sequenceDecs_decodeSync_safe_amd64_adjust_skip\n\tMOVQ 152(CX), AX\n\tMOVQ AX, 160(CX)\n\nsequenceDecs_decodeSync_safe_amd64_adjust_skip:\n\tMOVQ 144(CX), AX\n\tMOVQ AX, 152(CX)\n\tMOVQ R14, 144(CX)\n\tMOVQ R14, R13\n\nsequenceDecs_decodeSync_safe_amd64_after_adjust:\n\tMOVQ R13, 8(SP)\n\n\t// Check values\n\tMOVQ  16(SP), AX\n\tMOVQ  24(SP), CX\n\tLEAQ  (AX)(CX*1), R14\n\tMOVQ  s+0(FP), R15\n\tADDQ  R14, 256(R15)\n\tMOVQ  ctx+16(FP), R14\n\tSUBQ  CX, 104(R14)\n\tJS    error_not_enough_literals\n\tCMPQ  AX, $0x00020002\n\tJA    sequenceDecs_decodeSync_safe_amd64_error_match_len_too_big\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_safe_amd64_match_len_ofs_ok\n\tTESTQ AX, AX\n\tJNZ   sequenceDecs_decodeSync_safe_amd64_error_match_len_ofs_mismatch\n\nsequenceDecs_decodeSync_safe_amd64_match_len_ofs_ok:\n\tMOVQ 24(SP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ 16(SP), R13\n\n\t// Check if we have enough space in s.out\n\tLEAQ (AX)(R13*1), R14\n\tADDQ R10, R14\n\tCMPQ R14, 32(SP)\n\tJA   error_not_enough_space\n\n\t// Copy literals\n\tTESTQ AX, AX\n\tJZ    check_offset\n\tMOVQ  AX, R14\n\tSUBQ  $0x10, R14\n\tJB    copy_1_small\n\ncopy_1_loop:\n\tMOVUPS (R11), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, R11\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, R14\n\tJAE    copy_1_loop\n\tLEAQ   16(R11)(R14*1), R11\n\tLEAQ   16(R10)(R14*1), R10\n\tMOVUPS -16(R11), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_1_end\n\ncopy_1_small:\n\tCMPQ AX, $0x03\n\tJE   copy_1_move_3\n\tJB   copy_1_move_1or2\n\tCMPQ AX, $0x08\n\tJB   copy_1_move_4through7\n\tJMP  copy_1_move_8through16\n\ncopy_1_move_1or2:\n\tMOVB (R11), R14\n\tMOVB -1(R11)(AX*1), R15\n\tMOVB R14, (R10)\n\tMOVB R15, -1(R10)(AX*1)\n\tADDQ AX, R11\n\tADDQ AX, R10\n\tJMP  copy_1_end\n\ncopy_1_move_3:\n\tMOVW (R11), R14\n\tMOVB 2(R11), R15\n\tMOVW R14, (R10)\n\tMOVB R15, 2(R10)\n\tADDQ AX, R11\n\tADDQ AX, R10\n\tJMP  copy_1_end\n\ncopy_1_move_4through7:\n\tMOVL (R11), R14\n\tMOVL -4(R11)(AX*1), R15\n\tMOVL R14, (R10)\n\tMOVL R15, -4(R10)(AX*1)\n\tADDQ AX, R11\n\tADDQ AX, R10\n\tJMP  copy_1_end\n\ncopy_1_move_8through16:\n\tMOVQ (R11), R14\n\tMOVQ -8(R11)(AX*1), R15\n\tMOVQ R14, (R10)\n\tMOVQ R15, -8(R10)(AX*1)\n\tADDQ AX, R11\n\tADDQ AX, R10\n\ncopy_1_end:\n\tADDQ AX, R12\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tMOVQ R12, AX\n\tADDQ 40(SP), AX\n\tCMPQ CX, AX\n\tJG   error_match_off_too_big\n\tCMPQ CX, 56(SP)\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ CX, AX\n\tSUBQ R12, AX\n\tJLS  copy_match\n\tMOVQ 48(SP), R14\n\tSUBQ AX, R14\n\tCMPQ R13, AX\n\tJG   copy_all_from_history\n\tMOVQ R13, AX\n\tSUBQ $0x10, AX\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, AX\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(AX*1), R14\n\tLEAQ   16(R10)(AX*1), R10\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), AX\n\tMOVB 2(R14), CL\n\tMOVW AX, (R10)\n\tMOVB CL, 2(R10)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), AX\n\tMOVL -4(R14)(R13*1), CX\n\tMOVL AX, (R10)\n\tMOVL CX, -4(R10)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), AX\n\tMOVQ -8(R14)(R13*1), CX\n\tMOVQ AX, (R10)\n\tMOVQ CX, -8(R10)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R10\n\ncopy_4_end:\n\tADDQ R13, R12\n\tJMP  handle_loop\n\tJMP loop_finished\n\ncopy_all_from_history:\n\tMOVQ AX, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(R10)(R15*1), R10\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ AX, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ AX, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(AX*1), BP\n\tMOVB R15, (R10)\n\tMOVB BP, -1(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (R10)\n\tMOVB BP, 2(R10)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(AX*1), BP\n\tMOVL R15, (R10)\n\tMOVL BP, -4(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(AX*1), BP\n\tMOVQ R15, (R10)\n\tMOVQ BP, -8(R10)(AX*1)\n\tADDQ AX, R14\n\tADDQ AX, R10\n\ncopy_5_end:\n\tADDQ AX, R12\n\tSUBQ AX, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ R10, AX\n\tSUBQ CX, AX\n\n\t// ml <= mo\n\tCMPQ R13, CX\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, R12\n\tMOVQ R13, CX\n\tSUBQ $0x10, CX\n\tJB   copy_2_small\n\ncopy_2_loop:\n\tMOVUPS (AX), X0\n\tMOVUPS X0, (R10)\n\tADDQ   $0x10, AX\n\tADDQ   $0x10, R10\n\tSUBQ   $0x10, CX\n\tJAE    copy_2_loop\n\tLEAQ   16(AX)(CX*1), AX\n\tLEAQ   16(R10)(CX*1), R10\n\tMOVUPS -16(AX), X0\n\tMOVUPS X0, -16(R10)\n\tJMP    copy_2_end\n\ncopy_2_small:\n\tCMPQ R13, $0x03\n\tJE   copy_2_move_3\n\tJB   copy_2_move_1or2\n\tCMPQ R13, $0x08\n\tJB   copy_2_move_4through7\n\tJMP  copy_2_move_8through16\n\ncopy_2_move_1or2:\n\tMOVB (AX), CL\n\tMOVB -1(AX)(R13*1), R14\n\tMOVB CL, (R10)\n\tMOVB R14, -1(R10)(R13*1)\n\tADDQ R13, AX\n\tADDQ R13, R10\n\tJMP  copy_2_end\n\ncopy_2_move_3:\n\tMOVW (AX), CX\n\tMOVB 2(AX), R14\n\tMOVW CX, (R10)\n\tMOVB R14, 2(R10)\n\tADDQ R13, AX\n\tADDQ R13, R10\n\tJMP  copy_2_end\n\ncopy_2_move_4through7:\n\tMOVL (AX), CX\n\tMOVL -4(AX)(R13*1), R14\n\tMOVL CX, (R10)\n\tMOVL R14, -4(R10)(R13*1)\n\tADDQ R13, AX\n\tADDQ R13, R10\n\tJMP  copy_2_end\n\ncopy_2_move_8through16:\n\tMOVQ (AX), CX\n\tMOVQ -8(AX)(R13*1), R14\n\tMOVQ CX, (R10)\n\tMOVQ R14, -8(R10)(R13*1)\n\tADDQ R13, AX\n\tADDQ R13, R10\n\ncopy_2_end:\n\tJMP handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, R12\n\ncopy_slow_3:\n\tMOVB (AX), CL\n\tMOVB CL, (R10)\n\tINCQ AX\n\tINCQ R10\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tMOVQ ctx+16(FP), AX\n\tDECQ 96(AX)\n\tJNS  sequenceDecs_decodeSync_safe_amd64_main_loop\n\nloop_finished:\n\tMOVQ br+8(FP), AX\n\tMOVQ DX, 24(AX)\n\tMOVB BL, 40(AX)\n\tMOVQ SI, 32(AX)\n\n\t// Update the context\n\tMOVQ ctx+16(FP), AX\n\tMOVQ R12, 136(AX)\n\tMOVQ 144(AX), CX\n\tSUBQ CX, R11\n\tMOVQ R11, 168(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decodeSync_safe_amd64_error_match_len_ofs_mismatch:\n\tMOVQ 16(SP), AX\n\tMOVQ ctx+16(FP), CX\n\tMOVQ AX, 216(CX)\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decodeSync_safe_amd64_error_match_len_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\nerror_match_off_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ CX, 224(AX)\n\tMOVQ R12, 136(AX)\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n\t// Return with not enough output space error\nerror_not_enough_space:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ R12, 136(AX)\n\tMOVQ $0x00000005, ret+24(FP)\n\tRET\n\n// func sequenceDecs_decodeSync_safe_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeSyncAsmContext) int\n// Requires: BMI, BMI2, CMOV, SSE\nTEXT ·sequenceDecs_decodeSync_safe_bmi2(SB), $64-32\n\tMOVQ    br+8(FP), BX\n\tMOVQ    24(BX), AX\n\tMOVBQZX 40(BX), DX\n\tMOVQ    (BX), CX\n\tMOVQ    32(BX), BX\n\tADDQ    BX, CX\n\tMOVQ    CX, (SP)\n\tMOVQ    ctx+16(FP), CX\n\tMOVQ    72(CX), SI\n\tMOVQ    80(CX), DI\n\tMOVQ    88(CX), R8\n\tXORQ    R9, R9\n\tMOVQ    R9, 8(SP)\n\tMOVQ    R9, 16(SP)\n\tMOVQ    R9, 24(SP)\n\tMOVQ    112(CX), R9\n\tMOVQ    128(CX), R10\n\tMOVQ    R10, 32(SP)\n\tMOVQ    144(CX), R10\n\tMOVQ    136(CX), R11\n\tMOVQ    200(CX), R12\n\tMOVQ    R12, 56(SP)\n\tMOVQ    176(CX), R12\n\tMOVQ    R12, 48(SP)\n\tMOVQ    184(CX), CX\n\tMOVQ    CX, 40(SP)\n\tMOVQ    40(SP), CX\n\tADDQ    CX, 48(SP)\n\n\t// Calculate pointer to s.out[cap(s.out)] (a past-end pointer)\n\tADDQ R9, 32(SP)\n\n\t// outBase += outPosition\n\tADDQ R11, R9\n\nsequenceDecs_decodeSync_safe_bmi2_main_loop:\n\tMOVQ (SP), R12\n\n\t// Fill bitreader to have enough for the offset and match length.\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decodeSync_safe_bmi2_fill_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R12\n\tMOVQ (R12), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decodeSync_safe_bmi2_fill_end\n\nsequenceDecs_decodeSync_safe_bmi2_fill_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decodeSync_safe_bmi2_fill_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decodeSync_safe_bmi2_fill_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R12\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R12), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decodeSync_safe_bmi2_fill_byte_by_byte\n\nsequenceDecs_decodeSync_safe_bmi2_fill_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_safe_bmi2_fill_end:\n\t// Update offset\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, R8, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   R8, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 8(SP)\n\n\t// Update match length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, DI, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   DI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 16(SP)\n\n\t// Fill bitreader to have enough for the remaining\n\tCMPQ BX, $0x08\n\tJL   sequenceDecs_decodeSync_safe_bmi2_fill_2_byte_by_byte\n\tMOVQ DX, CX\n\tSHRQ $0x03, CX\n\tSUBQ CX, R12\n\tMOVQ (R12), AX\n\tSUBQ CX, BX\n\tANDQ $0x07, DX\n\tJMP  sequenceDecs_decodeSync_safe_bmi2_fill_2_end\n\nsequenceDecs_decodeSync_safe_bmi2_fill_2_byte_by_byte:\n\tCMPQ    BX, $0x00\n\tJLE     sequenceDecs_decodeSync_safe_bmi2_fill_2_check_overread\n\tCMPQ    DX, $0x07\n\tJLE     sequenceDecs_decodeSync_safe_bmi2_fill_2_end\n\tSHLQ    $0x08, AX\n\tSUBQ    $0x01, R12\n\tSUBQ    $0x01, BX\n\tSUBQ    $0x08, DX\n\tMOVBQZX (R12), CX\n\tORQ     CX, AX\n\tJMP     sequenceDecs_decodeSync_safe_bmi2_fill_2_byte_by_byte\n\nsequenceDecs_decodeSync_safe_bmi2_fill_2_check_overread:\n\tCMPQ DX, $0x40\n\tJA   error_overread\n\nsequenceDecs_decodeSync_safe_bmi2_fill_2_end:\n\t// Update literal length\n\tMOVQ   $0x00000808, CX\n\tBEXTRQ CX, SI, R13\n\tMOVQ   AX, R14\n\tLEAQ   (DX)(R13*1), CX\n\tROLQ   CL, R14\n\tBZHIQ  R13, R14, R14\n\tMOVQ   CX, DX\n\tMOVQ   SI, CX\n\tSHRQ   $0x20, CX\n\tADDQ   R14, CX\n\tMOVQ   CX, 24(SP)\n\n\t// Fill bitreader for state updates\n\tMOVQ    R12, (SP)\n\tMOVQ    $0x00000808, CX\n\tBEXTRQ  CX, R8, R12\n\tMOVQ    ctx+16(FP), CX\n\tCMPQ    96(CX), $0x00\n\tJZ      sequenceDecs_decodeSync_safe_bmi2_skip_update\n\tLEAQ    (SI)(DI*1), R13\n\tADDQ    R8, R13\n\tMOVBQZX R13, R13\n\tLEAQ    (DX)(R13*1), CX\n\tMOVQ    AX, R14\n\tMOVQ    CX, DX\n\tROLQ    CL, R14\n\tBZHIQ   R13, R14, R14\n\n\t// Update Offset State\n\tBZHIQ R8, R14, CX\n\tSHRXQ R8, R14, R14\n\tSHRL  $0x10, R8\n\tADDQ  CX, R8\n\n\t// Load ctx.ofTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 48(CX), CX\n\tMOVQ (CX)(R8*8), R8\n\n\t// Update Match Length State\n\tBZHIQ DI, R14, CX\n\tSHRXQ DI, R14, R14\n\tSHRL  $0x10, DI\n\tADDQ  CX, DI\n\n\t// Load ctx.mlTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ 24(CX), CX\n\tMOVQ (CX)(DI*8), DI\n\n\t// Update Literal Length State\n\tBZHIQ SI, R14, CX\n\tSHRL  $0x10, SI\n\tADDQ  CX, SI\n\n\t// Load ctx.llTable\n\tMOVQ ctx+16(FP), CX\n\tMOVQ (CX), CX\n\tMOVQ (CX)(SI*8), SI\n\nsequenceDecs_decodeSync_safe_bmi2_skip_update:\n\t// Adjust offset\n\tMOVQ   s+0(FP), CX\n\tMOVQ   8(SP), R13\n\tCMPQ   R12, $0x01\n\tJBE    sequenceDecs_decodeSync_safe_bmi2_adjust_offsetB_1_or_0\n\tMOVUPS 144(CX), X0\n\tMOVQ   R13, 144(CX)\n\tMOVUPS X0, 152(CX)\n\tJMP    sequenceDecs_decodeSync_safe_bmi2_after_adjust\n\nsequenceDecs_decodeSync_safe_bmi2_adjust_offsetB_1_or_0:\n\tCMPQ 24(SP), $0x00000000\n\tJNE  sequenceDecs_decodeSync_safe_bmi2_adjust_offset_maybezero\n\tINCQ R13\n\tJMP  sequenceDecs_decodeSync_safe_bmi2_adjust_offset_nonzero\n\nsequenceDecs_decodeSync_safe_bmi2_adjust_offset_maybezero:\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_safe_bmi2_adjust_offset_nonzero\n\tMOVQ  144(CX), R13\n\tJMP   sequenceDecs_decodeSync_safe_bmi2_after_adjust\n\nsequenceDecs_decodeSync_safe_bmi2_adjust_offset_nonzero:\n\tMOVQ    R13, R12\n\tXORQ    R14, R14\n\tMOVQ    $-1, R15\n\tCMPQ    R13, $0x03\n\tCMOVQEQ R14, R12\n\tCMOVQEQ R15, R14\n\tADDQ    144(CX)(R12*8), R14\n\tJNZ     sequenceDecs_decodeSync_safe_bmi2_adjust_temp_valid\n\tMOVQ    $0x00000001, R14\n\nsequenceDecs_decodeSync_safe_bmi2_adjust_temp_valid:\n\tCMPQ R13, $0x01\n\tJZ   sequenceDecs_decodeSync_safe_bmi2_adjust_skip\n\tMOVQ 152(CX), R12\n\tMOVQ R12, 160(CX)\n\nsequenceDecs_decodeSync_safe_bmi2_adjust_skip:\n\tMOVQ 144(CX), R12\n\tMOVQ R12, 152(CX)\n\tMOVQ R14, 144(CX)\n\tMOVQ R14, R13\n\nsequenceDecs_decodeSync_safe_bmi2_after_adjust:\n\tMOVQ R13, 8(SP)\n\n\t// Check values\n\tMOVQ  16(SP), CX\n\tMOVQ  24(SP), R12\n\tLEAQ  (CX)(R12*1), R14\n\tMOVQ  s+0(FP), R15\n\tADDQ  R14, 256(R15)\n\tMOVQ  ctx+16(FP), R14\n\tSUBQ  R12, 104(R14)\n\tJS    error_not_enough_literals\n\tCMPQ  CX, $0x00020002\n\tJA    sequenceDecs_decodeSync_safe_bmi2_error_match_len_too_big\n\tTESTQ R13, R13\n\tJNZ   sequenceDecs_decodeSync_safe_bmi2_match_len_ofs_ok\n\tTESTQ CX, CX\n\tJNZ   sequenceDecs_decodeSync_safe_bmi2_error_match_len_ofs_mismatch\n\nsequenceDecs_decodeSync_safe_bmi2_match_len_ofs_ok:\n\tMOVQ 24(SP), CX\n\tMOVQ 8(SP), R12\n\tMOVQ 16(SP), R13\n\n\t// Check if we have enough space in s.out\n\tLEAQ (CX)(R13*1), R14\n\tADDQ R9, R14\n\tCMPQ R14, 32(SP)\n\tJA   error_not_enough_space\n\n\t// Copy literals\n\tTESTQ CX, CX\n\tJZ    check_offset\n\tMOVQ  CX, R14\n\tSUBQ  $0x10, R14\n\tJB    copy_1_small\n\ncopy_1_loop:\n\tMOVUPS (R10), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, R10\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, R14\n\tJAE    copy_1_loop\n\tLEAQ   16(R10)(R14*1), R10\n\tLEAQ   16(R9)(R14*1), R9\n\tMOVUPS -16(R10), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_1_end\n\ncopy_1_small:\n\tCMPQ CX, $0x03\n\tJE   copy_1_move_3\n\tJB   copy_1_move_1or2\n\tCMPQ CX, $0x08\n\tJB   copy_1_move_4through7\n\tJMP  copy_1_move_8through16\n\ncopy_1_move_1or2:\n\tMOVB (R10), R14\n\tMOVB -1(R10)(CX*1), R15\n\tMOVB R14, (R9)\n\tMOVB R15, -1(R9)(CX*1)\n\tADDQ CX, R10\n\tADDQ CX, R9\n\tJMP  copy_1_end\n\ncopy_1_move_3:\n\tMOVW (R10), R14\n\tMOVB 2(R10), R15\n\tMOVW R14, (R9)\n\tMOVB R15, 2(R9)\n\tADDQ CX, R10\n\tADDQ CX, R9\n\tJMP  copy_1_end\n\ncopy_1_move_4through7:\n\tMOVL (R10), R14\n\tMOVL -4(R10)(CX*1), R15\n\tMOVL R14, (R9)\n\tMOVL R15, -4(R9)(CX*1)\n\tADDQ CX, R10\n\tADDQ CX, R9\n\tJMP  copy_1_end\n\ncopy_1_move_8through16:\n\tMOVQ (R10), R14\n\tMOVQ -8(R10)(CX*1), R15\n\tMOVQ R14, (R9)\n\tMOVQ R15, -8(R9)(CX*1)\n\tADDQ CX, R10\n\tADDQ CX, R9\n\ncopy_1_end:\n\tADDQ CX, R11\n\n\t// Malformed input if seq.mo > t+len(hist) || seq.mo > s.windowSize)\ncheck_offset:\n\tMOVQ R11, CX\n\tADDQ 40(SP), CX\n\tCMPQ R12, CX\n\tJG   error_match_off_too_big\n\tCMPQ R12, 56(SP)\n\tJG   error_match_off_too_big\n\n\t// Copy match from history\n\tMOVQ R12, CX\n\tSUBQ R11, CX\n\tJLS  copy_match\n\tMOVQ 48(SP), R14\n\tSUBQ CX, R14\n\tCMPQ R13, CX\n\tJG   copy_all_from_history\n\tMOVQ R13, CX\n\tSUBQ $0x10, CX\n\tJB   copy_4_small\n\ncopy_4_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, CX\n\tJAE    copy_4_loop\n\tLEAQ   16(R14)(CX*1), R14\n\tLEAQ   16(R9)(CX*1), R9\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_4_end\n\ncopy_4_small:\n\tCMPQ R13, $0x03\n\tJE   copy_4_move_3\n\tCMPQ R13, $0x08\n\tJB   copy_4_move_4through7\n\tJMP  copy_4_move_8through16\n\ncopy_4_move_3:\n\tMOVW (R14), CX\n\tMOVB 2(R14), R12\n\tMOVW CX, (R9)\n\tMOVB R12, 2(R9)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\tJMP  copy_4_end\n\ncopy_4_move_4through7:\n\tMOVL (R14), CX\n\tMOVL -4(R14)(R13*1), R12\n\tMOVL CX, (R9)\n\tMOVL R12, -4(R9)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\tJMP  copy_4_end\n\ncopy_4_move_8through16:\n\tMOVQ (R14), CX\n\tMOVQ -8(R14)(R13*1), R12\n\tMOVQ CX, (R9)\n\tMOVQ R12, -8(R9)(R13*1)\n\tADDQ R13, R14\n\tADDQ R13, R9\n\ncopy_4_end:\n\tADDQ R13, R11\n\tJMP  handle_loop\n\tJMP loop_finished\n\ncopy_all_from_history:\n\tMOVQ CX, R15\n\tSUBQ $0x10, R15\n\tJB   copy_5_small\n\ncopy_5_loop:\n\tMOVUPS (R14), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, R14\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, R15\n\tJAE    copy_5_loop\n\tLEAQ   16(R14)(R15*1), R14\n\tLEAQ   16(R9)(R15*1), R9\n\tMOVUPS -16(R14), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_5_end\n\ncopy_5_small:\n\tCMPQ CX, $0x03\n\tJE   copy_5_move_3\n\tJB   copy_5_move_1or2\n\tCMPQ CX, $0x08\n\tJB   copy_5_move_4through7\n\tJMP  copy_5_move_8through16\n\ncopy_5_move_1or2:\n\tMOVB (R14), R15\n\tMOVB -1(R14)(CX*1), BP\n\tMOVB R15, (R9)\n\tMOVB BP, -1(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_3:\n\tMOVW (R14), R15\n\tMOVB 2(R14), BP\n\tMOVW R15, (R9)\n\tMOVB BP, 2(R9)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_4through7:\n\tMOVL (R14), R15\n\tMOVL -4(R14)(CX*1), BP\n\tMOVL R15, (R9)\n\tMOVL BP, -4(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\tJMP  copy_5_end\n\ncopy_5_move_8through16:\n\tMOVQ (R14), R15\n\tMOVQ -8(R14)(CX*1), BP\n\tMOVQ R15, (R9)\n\tMOVQ BP, -8(R9)(CX*1)\n\tADDQ CX, R14\n\tADDQ CX, R9\n\ncopy_5_end:\n\tADDQ CX, R11\n\tSUBQ CX, R13\n\n\t// Copy match from the current buffer\ncopy_match:\n\tMOVQ R9, CX\n\tSUBQ R12, CX\n\n\t// ml <= mo\n\tCMPQ R13, R12\n\tJA   copy_overlapping_match\n\n\t// Copy non-overlapping match\n\tADDQ R13, R11\n\tMOVQ R13, R12\n\tSUBQ $0x10, R12\n\tJB   copy_2_small\n\ncopy_2_loop:\n\tMOVUPS (CX), X0\n\tMOVUPS X0, (R9)\n\tADDQ   $0x10, CX\n\tADDQ   $0x10, R9\n\tSUBQ   $0x10, R12\n\tJAE    copy_2_loop\n\tLEAQ   16(CX)(R12*1), CX\n\tLEAQ   16(R9)(R12*1), R9\n\tMOVUPS -16(CX), X0\n\tMOVUPS X0, -16(R9)\n\tJMP    copy_2_end\n\ncopy_2_small:\n\tCMPQ R13, $0x03\n\tJE   copy_2_move_3\n\tJB   copy_2_move_1or2\n\tCMPQ R13, $0x08\n\tJB   copy_2_move_4through7\n\tJMP  copy_2_move_8through16\n\ncopy_2_move_1or2:\n\tMOVB (CX), R12\n\tMOVB -1(CX)(R13*1), R14\n\tMOVB R12, (R9)\n\tMOVB R14, -1(R9)(R13*1)\n\tADDQ R13, CX\n\tADDQ R13, R9\n\tJMP  copy_2_end\n\ncopy_2_move_3:\n\tMOVW (CX), R12\n\tMOVB 2(CX), R14\n\tMOVW R12, (R9)\n\tMOVB R14, 2(R9)\n\tADDQ R13, CX\n\tADDQ R13, R9\n\tJMP  copy_2_end\n\ncopy_2_move_4through7:\n\tMOVL (CX), R12\n\tMOVL -4(CX)(R13*1), R14\n\tMOVL R12, (R9)\n\tMOVL R14, -4(R9)(R13*1)\n\tADDQ R13, CX\n\tADDQ R13, R9\n\tJMP  copy_2_end\n\ncopy_2_move_8through16:\n\tMOVQ (CX), R12\n\tMOVQ -8(CX)(R13*1), R14\n\tMOVQ R12, (R9)\n\tMOVQ R14, -8(R9)(R13*1)\n\tADDQ R13, CX\n\tADDQ R13, R9\n\ncopy_2_end:\n\tJMP handle_loop\n\n\t// Copy overlapping match\ncopy_overlapping_match:\n\tADDQ R13, R11\n\ncopy_slow_3:\n\tMOVB (CX), R12\n\tMOVB R12, (R9)\n\tINCQ CX\n\tINCQ R9\n\tDECQ R13\n\tJNZ  copy_slow_3\n\nhandle_loop:\n\tMOVQ ctx+16(FP), CX\n\tDECQ 96(CX)\n\tJNS  sequenceDecs_decodeSync_safe_bmi2_main_loop\n\nloop_finished:\n\tMOVQ br+8(FP), CX\n\tMOVQ AX, 24(CX)\n\tMOVB DL, 40(CX)\n\tMOVQ BX, 32(CX)\n\n\t// Update the context\n\tMOVQ ctx+16(FP), AX\n\tMOVQ R11, 136(AX)\n\tMOVQ 144(AX), CX\n\tSUBQ CX, R10\n\tMOVQ R10, 168(AX)\n\n\t// Return success\n\tMOVQ $0x00000000, ret+24(FP)\n\tRET\n\n\t// Return with match length error\nsequenceDecs_decodeSync_safe_bmi2_error_match_len_ofs_mismatch:\n\tMOVQ 16(SP), AX\n\tMOVQ ctx+16(FP), CX\n\tMOVQ AX, 216(CX)\n\tMOVQ $0x00000001, ret+24(FP)\n\tRET\n\n\t// Return with match too long error\nsequenceDecs_decodeSync_safe_bmi2_error_match_len_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ $0x00000002, ret+24(FP)\n\tRET\n\n\t// Return with match offset too long error\nerror_match_off_too_big:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 8(SP), CX\n\tMOVQ CX, 224(AX)\n\tMOVQ R11, 136(AX)\n\tMOVQ $0x00000003, ret+24(FP)\n\tRET\n\n\t// Return with not enough literals error\nerror_not_enough_literals:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ $0x00000004, ret+24(FP)\n\tRET\n\n\t// Return with overread error\nerror_overread:\n\tMOVQ $0x00000006, ret+24(FP)\n\tRET\n\n\t// Return with not enough output space error\nerror_not_enough_space:\n\tMOVQ ctx+16(FP), AX\n\tMOVQ 24(SP), CX\n\tMOVQ CX, 208(AX)\n\tMOVQ 16(SP), CX\n\tMOVQ CX, 216(AX)\n\tMOVQ R11, 136(AX)\n\tMOVQ $0x00000005, ret+24(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/seqdec_generic.go",
    "content": "//go:build !amd64 || appengine || !gc || noasm\n// +build !amd64 appengine !gc noasm\n\npackage zstd\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// decode sequences from the stream with the provided history but without dictionary.\nfunc (s *sequenceDecs) decodeSyncSimple(hist []byte) (bool, error) {\n\treturn false, nil\n}\n\n// decode sequences from the stream without the provided history.\nfunc (s *sequenceDecs) decode(seqs []seqVals) error {\n\tbr := s.br\n\n\t// Grab full sizes tables, to avoid bounds checks.\n\tllTable, mlTable, ofTable := s.litLengths.fse.dt[:maxTablesize], s.matchLengths.fse.dt[:maxTablesize], s.offsets.fse.dt[:maxTablesize]\n\tllState, mlState, ofState := s.litLengths.state.state, s.matchLengths.state.state, s.offsets.state.state\n\ts.seqSize = 0\n\tlitRemain := len(s.literals)\n\n\tmaxBlockSize := maxCompressedBlockSize\n\tif s.windowSize < maxBlockSize {\n\t\tmaxBlockSize = s.windowSize\n\t}\n\tfor i := range seqs {\n\t\tvar ll, mo, ml int\n\t\tif br.cursor > 4+((maxOffsetBits+16+16)>>3) {\n\t\t\t// inlined function:\n\t\t\t// ll, mo, ml = s.nextFast(br, llState, mlState, ofState)\n\n\t\t\t// Final will not read from stream.\n\t\t\tvar llB, mlB, moB uint8\n\t\t\tll, llB = llState.final()\n\t\t\tml, mlB = mlState.final()\n\t\t\tmo, moB = ofState.final()\n\n\t\t\t// extra bits are stored in reverse order.\n\t\t\tbr.fillFast()\n\t\t\tmo += br.getBits(moB)\n\t\t\tif s.maxBits > 32 {\n\t\t\t\tbr.fillFast()\n\t\t\t}\n\t\t\tml += br.getBits(mlB)\n\t\t\tll += br.getBits(llB)\n\n\t\t\tif moB > 1 {\n\t\t\t\ts.prevOffset[2] = s.prevOffset[1]\n\t\t\t\ts.prevOffset[1] = s.prevOffset[0]\n\t\t\t\ts.prevOffset[0] = mo\n\t\t\t} else {\n\t\t\t\t// mo = s.adjustOffset(mo, ll, moB)\n\t\t\t\t// Inlined for rather big speedup\n\t\t\t\tif ll == 0 {\n\t\t\t\t\t// There is an exception though, when current sequence's literals_length = 0.\n\t\t\t\t\t// In this case, repeated offsets are shifted by one, so an offset_value of 1 means Repeated_Offset2,\n\t\t\t\t\t// an offset_value of 2 means Repeated_Offset3, and an offset_value of 3 means Repeated_Offset1 - 1_byte.\n\t\t\t\t\tmo++\n\t\t\t\t}\n\n\t\t\t\tif mo == 0 {\n\t\t\t\t\tmo = s.prevOffset[0]\n\t\t\t\t} else {\n\t\t\t\t\tvar temp int\n\t\t\t\t\tif mo == 3 {\n\t\t\t\t\t\ttemp = s.prevOffset[0] - 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttemp = s.prevOffset[mo]\n\t\t\t\t\t}\n\n\t\t\t\t\tif temp == 0 {\n\t\t\t\t\t\t// 0 is not valid; input is corrupted; force offset to 1\n\t\t\t\t\t\tprintln(\"WARNING: temp was 0\")\n\t\t\t\t\t\ttemp = 1\n\t\t\t\t\t}\n\n\t\t\t\t\tif mo != 1 {\n\t\t\t\t\t\ts.prevOffset[2] = s.prevOffset[1]\n\t\t\t\t\t}\n\t\t\t\t\ts.prevOffset[1] = s.prevOffset[0]\n\t\t\t\t\ts.prevOffset[0] = temp\n\t\t\t\t\tmo = temp\n\t\t\t\t}\n\t\t\t}\n\t\t\tbr.fillFast()\n\t\t} else {\n\t\t\tif br.overread() {\n\t\t\t\tif debugDecoder {\n\t\t\t\t\tprintf(\"reading sequence %d, exceeded available data\\n\", i)\n\t\t\t\t}\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tll, mo, ml = s.next(br, llState, mlState, ofState)\n\t\t\tbr.fill()\n\t\t}\n\n\t\tif debugSequences {\n\t\t\tprintln(\"Seq\", i, \"Litlen:\", ll, \"mo:\", mo, \"(abs) ml:\", ml)\n\t\t}\n\t\t// Evaluate.\n\t\t// We might be doing this async, so do it early.\n\t\tif mo == 0 && ml > 0 {\n\t\t\treturn fmt.Errorf(\"zero matchoff and matchlen (%d) > 0\", ml)\n\t\t}\n\t\tif ml > maxMatchLen {\n\t\t\treturn fmt.Errorf(\"match len (%d) bigger than max allowed length\", ml)\n\t\t}\n\t\ts.seqSize += ll + ml\n\t\tif s.seqSize > maxBlockSize {\n\t\t\treturn fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t\t}\n\t\tlitRemain -= ll\n\t\tif litRemain < 0 {\n\t\t\treturn fmt.Errorf(\"unexpected literal count, want %d bytes, but only %d is available\", ll, litRemain+ll)\n\t\t}\n\t\tseqs[i] = seqVals{\n\t\t\tll: ll,\n\t\t\tml: ml,\n\t\t\tmo: mo,\n\t\t}\n\t\tif i == len(seqs)-1 {\n\t\t\t// This is the last sequence, so we shouldn't update state.\n\t\t\tbreak\n\t\t}\n\n\t\t// Manually inlined, ~ 5-20% faster\n\t\t// Update all 3 states at once. Approx 20% faster.\n\t\tnBits := llState.nbBits() + mlState.nbBits() + ofState.nbBits()\n\t\tif nBits == 0 {\n\t\t\tllState = llTable[llState.newState()&maxTableMask]\n\t\t\tmlState = mlTable[mlState.newState()&maxTableMask]\n\t\t\tofState = ofTable[ofState.newState()&maxTableMask]\n\t\t} else {\n\t\t\tbits := br.get32BitsFast(nBits)\n\t\t\tlowBits := uint16(bits >> ((ofState.nbBits() + mlState.nbBits()) & 31))\n\t\t\tllState = llTable[(llState.newState()+lowBits)&maxTableMask]\n\n\t\t\tlowBits = uint16(bits >> (ofState.nbBits() & 31))\n\t\t\tlowBits &= bitMask[mlState.nbBits()&15]\n\t\t\tmlState = mlTable[(mlState.newState()+lowBits)&maxTableMask]\n\n\t\t\tlowBits = uint16(bits) & bitMask[ofState.nbBits()&15]\n\t\t\tofState = ofTable[(ofState.newState()+lowBits)&maxTableMask]\n\t\t}\n\t}\n\ts.seqSize += litRemain\n\tif s.seqSize > maxBlockSize {\n\t\treturn fmt.Errorf(\"output bigger than max block size (%d)\", maxBlockSize)\n\t}\n\terr := br.close()\n\tif err != nil {\n\t\tprintf(\"Closing sequences: %v, %+v\\n\", err, *br)\n\t}\n\treturn err\n}\n\n// executeSimple handles cases when a dictionary is not used.\nfunc (s *sequenceDecs) executeSimple(seqs []seqVals, hist []byte) error {\n\t// Ensure we have enough output size...\n\tif len(s.out)+s.seqSize > cap(s.out) {\n\t\taddBytes := s.seqSize + len(s.out)\n\t\ts.out = append(s.out, make([]byte, addBytes)...)\n\t\ts.out = s.out[:len(s.out)-addBytes]\n\t}\n\n\tif debugDecoder {\n\t\tprintf(\"Execute %d seqs with literals: %d into %d bytes\\n\", len(seqs), len(s.literals), s.seqSize)\n\t}\n\n\tvar t = len(s.out)\n\tout := s.out[:t+s.seqSize]\n\n\tfor _, seq := range seqs {\n\t\t// Add literals\n\t\tcopy(out[t:], s.literals[:seq.ll])\n\t\tt += seq.ll\n\t\ts.literals = s.literals[seq.ll:]\n\n\t\t// Malformed input\n\t\tif seq.mo > t+len(hist) || seq.mo > s.windowSize {\n\t\t\treturn fmt.Errorf(\"match offset (%d) bigger than current history (%d)\", seq.mo, t+len(hist))\n\t\t}\n\n\t\t// Copy from history.\n\t\tif v := seq.mo - t; v > 0 {\n\t\t\t// v is the start position in history from end.\n\t\t\tstart := len(hist) - v\n\t\t\tif seq.ml > v {\n\t\t\t\t// Some goes into the current block.\n\t\t\t\t// Copy remainder of history\n\t\t\t\tcopy(out[t:], hist[start:])\n\t\t\t\tt += v\n\t\t\t\tseq.ml -= v\n\t\t\t} else {\n\t\t\t\tcopy(out[t:], hist[start:start+seq.ml])\n\t\t\t\tt += seq.ml\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// We must be in the current buffer now\n\t\tif seq.ml > 0 {\n\t\t\tstart := t - seq.mo\n\t\t\tif seq.ml <= t-start {\n\t\t\t\t// No overlap\n\t\t\t\tcopy(out[t:], out[start:start+seq.ml])\n\t\t\t\tt += seq.ml\n\t\t\t} else {\n\t\t\t\t// Overlapping copy\n\t\t\t\t// Extend destination slice and copy one byte at the time.\n\t\t\t\tsrc := out[start : start+seq.ml]\n\t\t\t\tdst := out[t:]\n\t\t\t\tdst = dst[:len(src)]\n\t\t\t\tt += len(src)\n\t\t\t\t// Destination is the space we just added.\n\t\t\t\tfor i := range src {\n\t\t\t\t\tdst[i] = src[i]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Add final literals\n\tcopy(out[t:], s.literals)\n\tif debugDecoder {\n\t\tt += len(s.literals)\n\t\tif t != len(out) {\n\t\t\tpanic(fmt.Errorf(\"length mismatch, want %d, got %d, ss: %d\", len(out), t, s.seqSize))\n\t\t}\n\t}\n\ts.out = out\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/seqenc.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport \"math/bits\"\n\ntype seqCoders struct {\n\tllEnc, ofEnc, mlEnc    *fseEncoder\n\tllPrev, ofPrev, mlPrev *fseEncoder\n}\n\n// swap coders with another (block).\nfunc (s *seqCoders) swap(other *seqCoders) {\n\t*s, *other = *other, *s\n}\n\n// setPrev will update the previous encoders to the actually used ones\n// and make sure a fresh one is in the main slot.\nfunc (s *seqCoders) setPrev(ll, ml, of *fseEncoder) {\n\tcompareSwap := func(used *fseEncoder, current, prev **fseEncoder) {\n\t\t// We used the new one, more current to history and reuse the previous history\n\t\tif *current == used {\n\t\t\t*prev, *current = *current, *prev\n\t\t\tc := *current\n\t\t\tp := *prev\n\t\t\tc.reUsed = false\n\t\t\tp.reUsed = true\n\t\t\treturn\n\t\t}\n\t\tif used == *prev {\n\t\t\treturn\n\t\t}\n\t\t// Ensure we cannot reuse by accident\n\t\tprevEnc := *prev\n\t\tprevEnc.symbolLen = 0\n\t}\n\tcompareSwap(ll, &s.llEnc, &s.llPrev)\n\tcompareSwap(ml, &s.mlEnc, &s.mlPrev)\n\tcompareSwap(of, &s.ofEnc, &s.ofPrev)\n}\n\nfunc highBit(val uint32) (n uint32) {\n\treturn uint32(bits.Len32(val) - 1)\n}\n\nvar llCodeTable = [64]byte{0, 1, 2, 3, 4, 5, 6, 7,\n\t8, 9, 10, 11, 12, 13, 14, 15,\n\t16, 16, 17, 17, 18, 18, 19, 19,\n\t20, 20, 20, 20, 21, 21, 21, 21,\n\t22, 22, 22, 22, 22, 22, 22, 22,\n\t23, 23, 23, 23, 23, 23, 23, 23,\n\t24, 24, 24, 24, 24, 24, 24, 24,\n\t24, 24, 24, 24, 24, 24, 24, 24}\n\n// Up to 6 bits\nconst maxLLCode = 35\n\n// llBitsTable translates from ll code to number of bits.\nvar llBitsTable = [maxLLCode + 1]byte{\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t1, 1, 1, 1, 2, 2, 3, 3,\n\t4, 6, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16}\n\n// llCode returns the code that represents the literal length requested.\nfunc llCode(litLength uint32) uint8 {\n\tconst llDeltaCode = 19\n\tif litLength <= 63 {\n\t\treturn llCodeTable[litLength&63]\n\t}\n\treturn uint8(highBit(litLength)) + llDeltaCode\n}\n\nvar mlCodeTable = [128]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n\t32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37,\n\t38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39,\n\t40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n\t41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,\n\t42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,\n\t42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42}\n\n// Up to 6 bits\nconst maxMLCode = 52\n\n// mlBitsTable translates from ml code to number of bits.\nvar mlBitsTable = [maxMLCode + 1]byte{\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 0, 0, 0, 0, 0, 0,\n\t1, 1, 1, 1, 2, 2, 3, 3,\n\t4, 4, 5, 7, 8, 9, 10, 11,\n\t12, 13, 14, 15, 16}\n\n// note : mlBase = matchLength - MINMATCH;\n// because it's the format it's stored in seqStore->sequences\nfunc mlCode(mlBase uint32) uint8 {\n\tconst mlDeltaCode = 36\n\tif mlBase <= 127 {\n\t\treturn mlCodeTable[mlBase&127]\n\t}\n\treturn uint8(highBit(mlBase)) + mlDeltaCode\n}\n\nfunc ofCode(offset uint32) uint8 {\n\t// A valid offset will always be > 0.\n\treturn uint8(bits.Len32(offset) - 1)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/simple_go124.go",
    "content": "// Copyright 2025+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n\n//go:build go1.24\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"runtime\"\n\t\"sync\"\n\t\"weak\"\n)\n\nvar weakMu sync.Mutex\nvar simpleEnc weak.Pointer[Encoder]\nvar simpleDec weak.Pointer[Decoder]\n\n// EncodeTo appends the encoded data from src to dst.\nfunc EncodeTo(dst []byte, src []byte) []byte {\n\tweakMu.Lock()\n\tenc := simpleEnc.Value()\n\tif enc == nil {\n\t\tvar err error\n\t\tenc, err = NewWriter(nil, WithEncoderConcurrency(runtime.NumCPU()), WithWindowSize(1<<20), WithLowerEncoderMem(true), WithZeroFrames(true))\n\t\tif err != nil {\n\t\t\tpanic(\"failed to create simple encoder: \" + err.Error())\n\t\t}\n\t\tsimpleEnc = weak.Make(enc)\n\t}\n\tweakMu.Unlock()\n\n\treturn enc.EncodeAll(src, dst)\n}\n\n// DecodeTo appends the decoded data from src to dst.\n// The maximum decoded size is 1GiB,\n// not including what may already be in dst.\nfunc DecodeTo(dst []byte, src []byte) ([]byte, error) {\n\tweakMu.Lock()\n\tdec := simpleDec.Value()\n\tif dec == nil {\n\t\tvar err error\n\t\tdec, err = NewReader(nil, WithDecoderConcurrency(runtime.NumCPU()), WithDecoderLowmem(true), WithDecoderMaxMemory(1<<30))\n\t\tif err != nil {\n\t\t\tweakMu.Unlock()\n\t\t\treturn nil, errors.New(\"failed to create simple decoder: \" + err.Error())\n\t\t}\n\t\truntime.SetFinalizer(dec, func(d *Decoder) {\n\t\t\td.Close()\n\t\t})\n\t\tsimpleDec = weak.Make(dec)\n\t}\n\tweakMu.Unlock()\n\treturn dec.DecodeAll(src, dst)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/snappy.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n// Based on work by Yann Collet, released under BSD License.\n\npackage zstd\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"hash/crc32\"\n\t\"io\"\n\n\t\"github.com/klauspost/compress/huff0\"\n\tsnappy \"github.com/klauspost/compress/internal/snapref\"\n)\n\nconst (\n\tsnappyTagLiteral = 0x00\n\tsnappyTagCopy1   = 0x01\n\tsnappyTagCopy2   = 0x02\n\tsnappyTagCopy4   = 0x03\n)\n\nconst (\n\tsnappyChecksumSize = 4\n\tsnappyMagicBody    = \"sNaPpY\"\n\n\t// snappyMaxBlockSize is the maximum size of the input to encodeBlock. It is not\n\t// part of the wire format per se, but some parts of the encoder assume\n\t// that an offset fits into a uint16.\n\t//\n\t// Also, for the framing format (Writer type instead of Encode function),\n\t// https://github.com/google/snappy/blob/master/framing_format.txt says\n\t// that \"the uncompressed data in a chunk must be no longer than 65536\n\t// bytes\".\n\tsnappyMaxBlockSize = 65536\n\n\t// snappyMaxEncodedLenOfMaxBlockSize equals MaxEncodedLen(snappyMaxBlockSize), but is\n\t// hard coded to be a const instead of a variable, so that obufLen can also\n\t// be a const. Their equivalence is confirmed by\n\t// TestMaxEncodedLenOfMaxBlockSize.\n\tsnappyMaxEncodedLenOfMaxBlockSize = 76490\n)\n\nconst (\n\tchunkTypeCompressedData   = 0x00\n\tchunkTypeUncompressedData = 0x01\n\tchunkTypePadding          = 0xfe\n\tchunkTypeStreamIdentifier = 0xff\n)\n\nvar (\n\t// ErrSnappyCorrupt reports that the input is invalid.\n\tErrSnappyCorrupt = errors.New(\"snappy: corrupt input\")\n\t// ErrSnappyTooLarge reports that the uncompressed length is too large.\n\tErrSnappyTooLarge = errors.New(\"snappy: decoded block is too large\")\n\t// ErrSnappyUnsupported reports that the input isn't supported.\n\tErrSnappyUnsupported = errors.New(\"snappy: unsupported input\")\n\n\terrUnsupportedLiteralLength = errors.New(\"snappy: unsupported literal length\")\n)\n\n// SnappyConverter can read SnappyConverter-compressed streams and convert them to zstd.\n// Conversion is done by converting the stream directly from Snappy without intermediate\n// full decoding.\n// Therefore the compression ratio is much less than what can be done by a full decompression\n// and compression, and a faulty Snappy stream may lead to a faulty Zstandard stream without\n// any errors being generated.\n// No CRC value is being generated and not all CRC values of the Snappy stream are checked.\n// However, it provides really fast recompression of Snappy streams.\n// The converter can be reused to avoid allocations, even after errors.\ntype SnappyConverter struct {\n\tr     io.Reader\n\terr   error\n\tbuf   []byte\n\tblock *blockEnc\n}\n\n// Convert the Snappy stream supplied in 'in' and write the zStandard stream to 'w'.\n// If any error is detected on the Snappy stream it is returned.\n// The number of bytes written is returned.\nfunc (r *SnappyConverter) Convert(in io.Reader, w io.Writer) (int64, error) {\n\tinitPredefined()\n\tr.err = nil\n\tr.r = in\n\tif r.block == nil {\n\t\tr.block = &blockEnc{}\n\t\tr.block.init()\n\t}\n\tr.block.initNewEncode()\n\tif len(r.buf) != snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize {\n\t\tr.buf = make([]byte, snappyMaxEncodedLenOfMaxBlockSize+snappyChecksumSize)\n\t}\n\tr.block.litEnc.Reuse = huff0.ReusePolicyNone\n\tvar written int64\n\tvar readHeader bool\n\t{\n\t\theader := frameHeader{WindowSize: snappyMaxBlockSize}.appendTo(r.buf[:0])\n\n\t\tvar n int\n\t\tn, r.err = w.Write(header)\n\t\tif r.err != nil {\n\t\t\treturn written, r.err\n\t\t}\n\t\twritten += int64(n)\n\t}\n\n\tfor {\n\t\tif !r.readFull(r.buf[:4], true) {\n\t\t\t// Add empty last block\n\t\t\tr.block.reset(nil)\n\t\t\tr.block.last = true\n\t\t\terr := r.block.encodeLits(r.block.literals, false)\n\t\t\tif err != nil {\n\t\t\t\treturn written, err\n\t\t\t}\n\t\t\tn, err := w.Write(r.block.output)\n\t\t\tif err != nil {\n\t\t\t\treturn written, err\n\t\t\t}\n\t\t\twritten += int64(n)\n\n\t\t\treturn written, r.err\n\t\t}\n\t\tchunkType := r.buf[0]\n\t\tif !readHeader {\n\t\t\tif chunkType != chunkTypeStreamIdentifier {\n\t\t\t\tprintln(\"chunkType != chunkTypeStreamIdentifier\", chunkType)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\treadHeader = true\n\t\t}\n\t\tchunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16\n\t\tif chunkLen > len(r.buf) {\n\t\t\tprintln(\"chunkLen > len(r.buf)\", chunkType)\n\t\t\tr.err = ErrSnappyUnsupported\n\t\t\treturn written, r.err\n\t\t}\n\n\t\t// The chunk types are specified at\n\t\t// https://github.com/google/snappy/blob/master/framing_format.txt\n\t\tswitch chunkType {\n\t\tcase chunkTypeCompressedData:\n\t\t\t// Section 4.2. Compressed data (chunk type 0x00).\n\t\t\tif chunkLen < snappyChecksumSize {\n\t\t\t\tprintln(\"chunkLen < snappyChecksumSize\", chunkLen, snappyChecksumSize)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tbuf := r.buf[:chunkLen]\n\t\t\tif !r.readFull(buf, false) {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\t//checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24\n\t\t\tbuf = buf[snappyChecksumSize:]\n\n\t\t\tn, hdr, err := snappyDecodedLen(buf)\n\t\t\tif err != nil {\n\t\t\t\tr.err = err\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tbuf = buf[hdr:]\n\t\t\tif n > snappyMaxBlockSize {\n\t\t\t\tprintln(\"n > snappyMaxBlockSize\", n, snappyMaxBlockSize)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tr.block.reset(nil)\n\t\t\tr.block.pushOffsets()\n\t\t\tif err := decodeSnappy(r.block, buf); err != nil {\n\t\t\t\tr.err = err\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tif r.block.size+r.block.extraLits != n {\n\t\t\t\tprintf(\"invalid size, want %d, got %d\\n\", n, r.block.size+r.block.extraLits)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\terr = r.block.encode(nil, false, false)\n\t\t\tswitch err {\n\t\t\tcase errIncompressible:\n\t\t\t\tr.block.popOffsets()\n\t\t\t\tr.block.reset(nil)\n\t\t\t\tr.block.literals, err = snappy.Decode(r.block.literals[:n], r.buf[snappyChecksumSize:chunkLen])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn written, err\n\t\t\t\t}\n\t\t\t\terr = r.block.encodeLits(r.block.literals, false)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn written, err\n\t\t\t\t}\n\t\t\tcase nil:\n\t\t\tdefault:\n\t\t\t\treturn written, err\n\t\t\t}\n\n\t\t\tn, r.err = w.Write(r.block.output)\n\t\t\tif r.err != nil {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\twritten += int64(n)\n\t\t\tcontinue\n\t\tcase chunkTypeUncompressedData:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"Uncompressed, chunklen\", chunkLen)\n\t\t\t}\n\t\t\t// Section 4.3. Uncompressed data (chunk type 0x01).\n\t\t\tif chunkLen < snappyChecksumSize {\n\t\t\t\tprintln(\"chunkLen < snappyChecksumSize\", chunkLen, snappyChecksumSize)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tr.block.reset(nil)\n\t\t\tbuf := r.buf[:snappyChecksumSize]\n\t\t\tif !r.readFull(buf, false) {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tchecksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24\n\t\t\t// Read directly into r.decoded instead of via r.buf.\n\t\t\tn := chunkLen - snappyChecksumSize\n\t\t\tif n > snappyMaxBlockSize {\n\t\t\t\tprintln(\"n > snappyMaxBlockSize\", n, snappyMaxBlockSize)\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tr.block.literals = r.block.literals[:n]\n\t\t\tif !r.readFull(r.block.literals, false) {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tif snappyCRC(r.block.literals) != checksum {\n\t\t\t\tprintln(\"literals crc mismatch\")\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\terr := r.block.encodeLits(r.block.literals, false)\n\t\t\tif err != nil {\n\t\t\t\treturn written, err\n\t\t\t}\n\t\t\tn, r.err = w.Write(r.block.output)\n\t\t\tif r.err != nil {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\twritten += int64(n)\n\t\t\tcontinue\n\n\t\tcase chunkTypeStreamIdentifier:\n\t\t\tif debugEncoder {\n\t\t\t\tprintln(\"stream id\", chunkLen, len(snappyMagicBody))\n\t\t\t}\n\t\t\t// Section 4.1. Stream identifier (chunk type 0xff).\n\t\t\tif chunkLen != len(snappyMagicBody) {\n\t\t\t\tprintln(\"chunkLen != len(snappyMagicBody)\", chunkLen, len(snappyMagicBody))\n\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tif !r.readFull(r.buf[:len(snappyMagicBody)], false) {\n\t\t\t\treturn written, r.err\n\t\t\t}\n\t\t\tfor i := range len(snappyMagicBody) {\n\t\t\t\tif r.buf[i] != snappyMagicBody[i] {\n\t\t\t\t\tprintln(\"r.buf[i] != snappyMagicBody[i]\", r.buf[i], snappyMagicBody[i], i)\n\t\t\t\t\tr.err = ErrSnappyCorrupt\n\t\t\t\t\treturn written, r.err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif chunkType <= 0x7f {\n\t\t\t// Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f).\n\t\t\tprintln(\"chunkType <= 0x7f\")\n\t\t\tr.err = ErrSnappyUnsupported\n\t\t\treturn written, r.err\n\t\t}\n\t\t// Section 4.4 Padding (chunk type 0xfe).\n\t\t// Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd).\n\t\tif !r.readFull(r.buf[:chunkLen], false) {\n\t\t\treturn written, r.err\n\t\t}\n\t}\n}\n\n// decodeSnappy writes the decoding of src to dst. It assumes that the varint-encoded\n// length of the decompressed bytes has already been read.\nfunc decodeSnappy(blk *blockEnc, src []byte) error {\n\t//decodeRef(make([]byte, snappyMaxBlockSize), src)\n\tvar s, length int\n\tlits := blk.extraLits\n\tvar offset uint32\n\tfor s < len(src) {\n\t\tswitch src[s] & 0x03 {\n\t\tcase snappyTagLiteral:\n\t\t\tx := uint32(src[s] >> 2)\n\t\t\tswitch {\n\t\t\tcase x < 60:\n\t\t\t\ts++\n\t\t\tcase x == 60:\n\t\t\t\ts += 2\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, src)\n\t\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-1])\n\t\t\tcase x == 61:\n\t\t\t\ts += 3\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, src)\n\t\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-2]) | uint32(src[s-1])<<8\n\t\t\tcase x == 62:\n\t\t\t\ts += 4\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, src)\n\t\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16\n\t\t\tcase x == 63:\n\t\t\t\ts += 5\n\t\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, src)\n\t\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t\t}\n\t\t\t\tx = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24\n\t\t\t}\n\t\t\tif x > snappyMaxBlockSize {\n\t\t\t\tprintln(\"x > snappyMaxBlockSize\", x, snappyMaxBlockSize)\n\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t}\n\t\t\tlength = int(x) + 1\n\t\t\tif length <= 0 {\n\t\t\t\tprintln(\"length <= 0 \", length)\n\n\t\t\t\treturn errUnsupportedLiteralLength\n\t\t\t}\n\t\t\t//if length > snappyMaxBlockSize-d || uint32(length) > len(src)-s {\n\t\t\t//\treturn ErrSnappyCorrupt\n\t\t\t//}\n\n\t\t\tblk.literals = append(blk.literals, src[s:s+length]...)\n\t\t\t//println(length, \"litLen\")\n\t\t\tlits += length\n\t\t\ts += length\n\t\t\tcontinue\n\n\t\tcase snappyTagCopy1:\n\t\t\ts += 2\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, len(src))\n\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t}\n\t\t\tlength = 4 + int(src[s-2])>>2&0x7\n\t\t\toffset = uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])\n\n\t\tcase snappyTagCopy2:\n\t\t\ts += 3\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, len(src))\n\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t}\n\t\t\tlength = 1 + int(src[s-3])>>2\n\t\t\toffset = uint32(src[s-2]) | uint32(src[s-1])<<8\n\n\t\tcase snappyTagCopy4:\n\t\t\ts += 5\n\t\t\tif uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.\n\t\t\t\tprintln(\"uint(s) > uint(len(src)\", s, len(src))\n\t\t\t\treturn ErrSnappyCorrupt\n\t\t\t}\n\t\t\tlength = 1 + int(src[s-5])>>2\n\t\t\toffset = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24\n\t\t}\n\n\t\tif offset <= 0 || blk.size+lits < int(offset) /*|| length > len(blk)-d */ {\n\t\t\tprintln(\"offset <= 0 || blk.size+lits < int(offset)\", offset, blk.size+lits, int(offset), blk.size, lits)\n\n\t\t\treturn ErrSnappyCorrupt\n\t\t}\n\n\t\t// Check if offset is one of the recent offsets.\n\t\t// Adjusts the output offset accordingly.\n\t\t// Gives a tiny bit of compression, typically around 1%.\n\t\tif false {\n\t\t\toffset = blk.matchOffset(offset, uint32(lits))\n\t\t} else {\n\t\t\toffset += 3\n\t\t}\n\n\t\tblk.sequences = append(blk.sequences, seq{\n\t\t\tlitLen:   uint32(lits),\n\t\t\toffset:   offset,\n\t\t\tmatchLen: uint32(length) - zstdMinMatch,\n\t\t})\n\t\tblk.size += length + lits\n\t\tlits = 0\n\t}\n\tblk.extraLits = lits\n\treturn nil\n}\n\nfunc (r *SnappyConverter) readFull(p []byte, allowEOF bool) (ok bool) {\n\tif _, r.err = io.ReadFull(r.r, p); r.err != nil {\n\t\tif r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) {\n\t\t\tr.err = ErrSnappyCorrupt\n\t\t}\n\t\treturn false\n\t}\n\treturn true\n}\n\nvar crcTable = crc32.MakeTable(crc32.Castagnoli)\n\n// crc implements the checksum specified in section 3 of\n// https://github.com/google/snappy/blob/master/framing_format.txt\nfunc snappyCRC(b []byte) uint32 {\n\tc := crc32.Update(0, crcTable, b)\n\treturn c>>15 | c<<17 + 0xa282ead8\n}\n\n// snappyDecodedLen returns the length of the decoded block and the number of bytes\n// that the length header occupied.\nfunc snappyDecodedLen(src []byte) (blockLen, headerLen int, err error) {\n\tv, n := binary.Uvarint(src)\n\tif n <= 0 || v > 0xffffffff {\n\t\treturn 0, 0, ErrSnappyCorrupt\n\t}\n\n\tconst wordSize = 32 << (^uint(0) >> 32 & 1)\n\tif wordSize == 32 && v > 0x7fffffff {\n\t\treturn 0, 0, ErrSnappyTooLarge\n\t}\n\treturn int(v), n, nil\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/zip.go",
    "content": "// Copyright 2019+ Klaus Post. All rights reserved.\n// License information can be found in the LICENSE file.\n\npackage zstd\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"sync\"\n)\n\n// ZipMethodWinZip is the method for Zstandard compressed data inside Zip files for WinZip.\n// See https://www.winzip.com/win/en/comp_info.html\nconst ZipMethodWinZip = 93\n\n// ZipMethodPKWare is the original method number used by PKWARE to indicate Zstandard compression.\n// Deprecated: This has been deprecated by PKWARE, use ZipMethodWinZip instead for compression.\n// See https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.9.TXT\nconst ZipMethodPKWare = 20\n\n// zipReaderPool is the default reader pool.\nvar zipReaderPool = sync.Pool{New: func() any {\n\tz, err := NewReader(nil, WithDecoderLowmem(true), WithDecoderMaxWindow(128<<20), WithDecoderConcurrency(1))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn z\n}}\n\n// newZipReader creates a pooled zip decompressor.\nfunc newZipReader(opts ...DOption) func(r io.Reader) io.ReadCloser {\n\tpool := &zipReaderPool\n\tif len(opts) > 0 {\n\t\topts = append([]DOption{WithDecoderLowmem(true), WithDecoderMaxWindow(128 << 20)}, opts...)\n\t\t// Force concurrency 1\n\t\topts = append(opts, WithDecoderConcurrency(1))\n\t\t// Create our own pool\n\t\tpool = &sync.Pool{}\n\t}\n\treturn func(r io.Reader) io.ReadCloser {\n\t\tdec, ok := pool.Get().(*Decoder)\n\t\tif ok {\n\t\t\tdec.Reset(r)\n\t\t} else {\n\t\t\td, err := NewReader(r, opts...)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tdec = d\n\t\t}\n\t\treturn &pooledZipReader{dec: dec, pool: pool}\n\t}\n}\n\ntype pooledZipReader struct {\n\tmu   sync.Mutex // guards Close and Read\n\tpool *sync.Pool\n\tdec  *Decoder\n}\n\nfunc (r *pooledZipReader) Read(p []byte) (n int, err error) {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.dec == nil {\n\t\treturn 0, errors.New(\"read after close or EOF\")\n\t}\n\tdec, err := r.dec.Read(p)\n\tif err == io.EOF {\n\t\tr.dec.Reset(nil)\n\t\tr.pool.Put(r.dec)\n\t\tr.dec = nil\n\t}\n\treturn dec, err\n}\n\nfunc (r *pooledZipReader) Close() error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tvar err error\n\tif r.dec != nil {\n\t\terr = r.dec.Reset(nil)\n\t\tr.pool.Put(r.dec)\n\t\tr.dec = nil\n\t}\n\treturn err\n}\n\ntype pooledZipWriter struct {\n\tmu   sync.Mutex // guards Close and Read\n\tenc  *Encoder\n\tpool *sync.Pool\n}\n\nfunc (w *pooledZipWriter) Write(p []byte) (n int, err error) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tif w.enc == nil {\n\t\treturn 0, errors.New(\"Write after Close\")\n\t}\n\treturn w.enc.Write(p)\n}\n\nfunc (w *pooledZipWriter) Close() error {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tvar err error\n\tif w.enc != nil {\n\t\terr = w.enc.Close()\n\t\tw.pool.Put(w.enc)\n\t\tw.enc = nil\n\t}\n\treturn err\n}\n\n// ZipCompressor returns a compressor that can be registered with zip libraries.\n// The provided encoder options will be used on all encodes.\nfunc ZipCompressor(opts ...EOption) func(w io.Writer) (io.WriteCloser, error) {\n\tvar pool sync.Pool\n\treturn func(w io.Writer) (io.WriteCloser, error) {\n\t\tenc, ok := pool.Get().(*Encoder)\n\t\tif ok {\n\t\t\tenc.Reset(w)\n\t\t} else {\n\t\t\tvar err error\n\t\t\tenc, err = NewWriter(w, opts...)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn &pooledZipWriter{enc: enc, pool: &pool}, nil\n\t}\n}\n\n// ZipDecompressor returns a decompressor that can be registered with zip libraries.\n// See ZipCompressor for example.\n// Options can be specified. WithDecoderConcurrency(1) is forced,\n// and by default a 128MB maximum decompression window is specified.\n// The window size can be overridden if required.\nfunc ZipDecompressor(opts ...DOption) func(r io.Reader) io.ReadCloser {\n\treturn newZipReader(opts...)\n}\n"
  },
  {
    "path": "vendor/github.com/klauspost/compress/zstd/zstd.go",
    "content": "// Package zstd provides decompression of zstandard files.\n//\n// For advanced usage and examples, go to the README: https://github.com/klauspost/compress/tree/master/zstd#zstd\npackage zstd\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"log\"\n\t\"math\"\n\n\t\"github.com/klauspost/compress/internal/le\"\n)\n\n// enable debug printing\nconst debug = false\n\n// enable encoding debug printing\nconst debugEncoder = debug\n\n// enable decoding debug printing\nconst debugDecoder = debug\n\n// Enable extra assertions.\nconst debugAsserts = debug || false\n\n// print sequence details\nconst debugSequences = false\n\n// print detailed matching information\nconst debugMatches = false\n\n// force encoder to use predefined tables.\nconst forcePreDef = false\n\n// zstdMinMatch is the minimum zstd match length.\nconst zstdMinMatch = 3\n\n// fcsUnknown is used for unknown frame content size.\nconst fcsUnknown = math.MaxUint64\n\nvar (\n\t// ErrReservedBlockType is returned when a reserved block type is found.\n\t// Typically this indicates wrong or corrupted input.\n\tErrReservedBlockType = errors.New(\"invalid input: reserved block type encountered\")\n\n\t// ErrCompressedSizeTooBig is returned when a block is bigger than allowed.\n\t// Typically this indicates wrong or corrupted input.\n\tErrCompressedSizeTooBig = errors.New(\"invalid input: compressed size too big\")\n\n\t// ErrBlockTooSmall is returned when a block is too small to be decoded.\n\t// Typically returned on invalid input.\n\tErrBlockTooSmall = errors.New(\"block too small\")\n\n\t// ErrUnexpectedBlockSize is returned when a block has unexpected size.\n\t// Typically returned on invalid input.\n\tErrUnexpectedBlockSize = errors.New(\"unexpected block size\")\n\n\t// ErrMagicMismatch is returned when a \"magic\" number isn't what is expected.\n\t// Typically this indicates wrong or corrupted input.\n\tErrMagicMismatch = errors.New(\"invalid input: magic number mismatch\")\n\n\t// ErrWindowSizeExceeded is returned when a reference exceeds the valid window size.\n\t// Typically this indicates wrong or corrupted input.\n\tErrWindowSizeExceeded = errors.New(\"window size exceeded\")\n\n\t// ErrWindowSizeTooSmall is returned when no window size is specified.\n\t// Typically this indicates wrong or corrupted input.\n\tErrWindowSizeTooSmall = errors.New(\"invalid input: window size was too small\")\n\n\t// ErrDecoderSizeExceeded is returned if decompressed size exceeds the configured limit.\n\tErrDecoderSizeExceeded = errors.New(\"decompressed size exceeds configured limit\")\n\n\t// ErrUnknownDictionary is returned if the dictionary ID is unknown.\n\tErrUnknownDictionary = errors.New(\"unknown dictionary\")\n\n\t// ErrFrameSizeExceeded is returned if the stated frame size is exceeded.\n\t// This is only returned if SingleSegment is specified on the frame.\n\tErrFrameSizeExceeded = errors.New(\"frame size exceeded\")\n\n\t// ErrFrameSizeMismatch is returned if the stated frame size does not match the expected size.\n\t// This is only returned if SingleSegment is specified on the frame.\n\tErrFrameSizeMismatch = errors.New(\"frame size does not match size on stream\")\n\n\t// ErrCRCMismatch is returned if CRC mismatches.\n\tErrCRCMismatch = errors.New(\"CRC check failed\")\n\n\t// ErrDecoderClosed will be returned if the Decoder was used after\n\t// Close has been called.\n\tErrDecoderClosed = errors.New(\"decoder used after Close\")\n\n\t// ErrEncoderClosed will be returned if the Encoder was used after\n\t// Close has been called.\n\tErrEncoderClosed = errors.New(\"encoder used after Close\")\n\n\t// ErrDecoderNilInput is returned when a nil Reader was provided\n\t// and an operation other than Reset/DecodeAll/Close was attempted.\n\tErrDecoderNilInput = errors.New(\"nil input provided as reader\")\n)\n\nfunc println(a ...any) {\n\tif debug || debugDecoder || debugEncoder {\n\t\tlog.Println(a...)\n\t}\n}\n\nfunc printf(format string, a ...any) {\n\tif debug || debugDecoder || debugEncoder {\n\t\tlog.Printf(format, a...)\n\t}\n}\n\nfunc load3232(b []byte, i int32) uint32 {\n\treturn le.Load32(b, i)\n}\n\nfunc load6432(b []byte, i int32) uint64 {\n\treturn le.Load64(b, i)\n}\n\ntype byter interface {\n\tBytes() []byte\n\tLen() int\n}\n\nvar _ byter = &bytes.Buffer{}\n"
  },
  {
    "path": "vendor/github.com/mitchellh/go-homedir/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013 Mitchell Hashimoto\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/mitchellh/go-homedir/README.md",
    "content": "# go-homedir\n\nThis is a Go library for detecting the user's home directory without\nthe use of cgo, so the library can be used in cross-compilation environments.\n\nUsage is incredibly simple, just call `homedir.Dir()` to get the home directory\nfor a user, and `homedir.Expand()` to expand the `~` in a path to the home\ndirectory.\n\n**Why not just use `os/user`?** The built-in `os/user` package requires\ncgo on Darwin systems. This means that any Go code that uses that package\ncannot cross compile. But 99% of the time the use for `os/user` is just to\nretrieve the home directory, which we can do for the current user without\ncgo. This library does that, enabling cross-compilation.\n"
  },
  {
    "path": "vendor/github.com/mitchellh/go-homedir/homedir.go",
    "content": "package homedir\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// DisableCache will disable caching of the home directory. Caching is enabled\n// by default.\nvar DisableCache bool\n\nvar homedirCache string\nvar cacheLock sync.RWMutex\n\n// Dir returns the home directory for the executing user.\n//\n// This uses an OS-specific method for discovering the home directory.\n// An error is returned if a home directory cannot be detected.\nfunc Dir() (string, error) {\n\tif !DisableCache {\n\t\tcacheLock.RLock()\n\t\tcached := homedirCache\n\t\tcacheLock.RUnlock()\n\t\tif cached != \"\" {\n\t\t\treturn cached, nil\n\t\t}\n\t}\n\n\tcacheLock.Lock()\n\tdefer cacheLock.Unlock()\n\n\tvar result string\n\tvar err error\n\tif runtime.GOOS == \"windows\" {\n\t\tresult, err = dirWindows()\n\t} else {\n\t\t// Unix-like system, so just assume Unix\n\t\tresult, err = dirUnix()\n\t}\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\thomedirCache = result\n\treturn result, nil\n}\n\n// Expand expands the path to include the home directory if the path\n// is prefixed with `~`. If it isn't prefixed with `~`, the path is\n// returned as-is.\nfunc Expand(path string) (string, error) {\n\tif len(path) == 0 {\n\t\treturn path, nil\n\t}\n\n\tif path[0] != '~' {\n\t\treturn path, nil\n\t}\n\n\tif len(path) > 1 && path[1] != '/' && path[1] != '\\\\' {\n\t\treturn \"\", errors.New(\"cannot expand user-specific home dir\")\n\t}\n\n\tdir, err := Dir()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn filepath.Join(dir, path[1:]), nil\n}\n\n// Reset clears the cache, forcing the next call to Dir to re-detect\n// the home directory. This generally never has to be called, but can be\n// useful in tests if you're modifying the home directory via the HOME\n// env var or something.\nfunc Reset() {\n\tcacheLock.Lock()\n\tdefer cacheLock.Unlock()\n\thomedirCache = \"\"\n}\n\nfunc dirUnix() (string, error) {\n\thomeEnv := \"HOME\"\n\tif runtime.GOOS == \"plan9\" {\n\t\t// On plan9, env vars are lowercase.\n\t\thomeEnv = \"home\"\n\t}\n\n\t// First prefer the HOME environmental variable\n\tif home := os.Getenv(homeEnv); home != \"\" {\n\t\treturn home, nil\n\t}\n\n\tvar stdout bytes.Buffer\n\n\t// If that fails, try OS specific commands\n\tif runtime.GOOS == \"darwin\" {\n\t\tcmd := exec.Command(\"sh\", \"-c\", `dscl -q . -read /Users/\"$(whoami)\" NFSHomeDirectory | sed 's/^[^ ]*: //'`)\n\t\tcmd.Stdout = &stdout\n\t\tif err := cmd.Run(); err == nil {\n\t\t\tresult := strings.TrimSpace(stdout.String())\n\t\t\tif result != \"\" {\n\t\t\t\treturn result, nil\n\t\t\t}\n\t\t}\n\t} else {\n\t\tcmd := exec.Command(\"getent\", \"passwd\", strconv.Itoa(os.Getuid()))\n\t\tcmd.Stdout = &stdout\n\t\tif err := cmd.Run(); err != nil {\n\t\t\t// If the error is ErrNotFound, we ignore it. Otherwise, return it.\n\t\t\tif err != exec.ErrNotFound {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t} else {\n\t\t\tif passwd := strings.TrimSpace(stdout.String()); passwd != \"\" {\n\t\t\t\t// username:password:uid:gid:gecos:home:shell\n\t\t\t\tpasswdParts := strings.SplitN(passwd, \":\", 7)\n\t\t\t\tif len(passwdParts) > 5 {\n\t\t\t\t\treturn passwdParts[5], nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If all else fails, try the shell\n\tstdout.Reset()\n\tcmd := exec.Command(\"sh\", \"-c\", \"cd && pwd\")\n\tcmd.Stdout = &stdout\n\tif err := cmd.Run(); err != nil {\n\t\treturn \"\", err\n\t}\n\n\tresult := strings.TrimSpace(stdout.String())\n\tif result == \"\" {\n\t\treturn \"\", errors.New(\"blank output when reading home directory\")\n\t}\n\n\treturn result, nil\n}\n\nfunc dirWindows() (string, error) {\n\t// First prefer the HOME environmental variable\n\tif home := os.Getenv(\"HOME\"); home != \"\" {\n\t\treturn home, nil\n\t}\n\n\t// Prefer standard environment variable USERPROFILE\n\tif home := os.Getenv(\"USERPROFILE\"); home != \"\" {\n\t\treturn home, nil\n\t}\n\n\tdrive := os.Getenv(\"HOMEDRIVE\")\n\tpath := os.Getenv(\"HOMEPATH\")\n\thome := drive + path\n\tif drive == \"\" || path == \"\" {\n\t\treturn \"\", errors.New(\"HOMEDRIVE, HOMEPATH, or USERPROFILE are blank\")\n\t}\n\n\treturn home, nil\n}\n"
  },
  {
    "path": "vendor/github.com/morikuni/aec/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Taihei Morikuni\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/morikuni/aec/README.md",
    "content": "# aec\n\n[![GoDoc](https://godoc.org/github.com/morikuni/aec?status.svg)](https://godoc.org/github.com/morikuni/aec)\n\nGo wrapper for ANSI escape code.\n\n## Install\n\n```bash\ngo get github.com/morikuni/aec\n```\n\n## Features\n\nANSI escape codes depend on terminal environment.  \nSome of these features may not work.  \nCheck supported Font-Style/Font-Color features with [checkansi](./checkansi).\n\n[Wikipedia](https://en.wikipedia.org/wiki/ANSI_escape_code) for more detail.\n\n### Cursor\n\n- `Up(n)`\n- `Down(n)`\n- `Right(n)`\n- `Left(n)`\n- `NextLine(n)`\n- `PreviousLine(n)`\n- `Column(col)`\n- `Position(row, col)`\n- `Save`\n- `Restore`\n- `Hide`\n- `Show`\n- `Report`\n\n### Erase\n\n- `EraseDisplay(mode)`\n- `EraseLine(mode)`\n\n### Scroll\n\n- `ScrollUp(n)`\n- `ScrollDown(n)`\n\n### Font Style\n\n- `Bold`\n- `Faint`\n- `Italic`\n- `Underline`\n- `BlinkSlow`\n- `BlinkRapid`\n- `Inverse`\n- `Conceal`\n- `CrossOut`\n- `Frame`\n- `Encircle`\n- `Overline`\n\n### Font Color\n\nForeground color.\n\n- `DefaultF`\n- `BlackF`\n- `RedF`\n- `GreenF`\n- `YellowF`\n- `BlueF`\n- `MagentaF`\n- `CyanF`\n- `WhiteF`\n- `LightBlackF`\n- `LightRedF`\n- `LightGreenF`\n- `LightYellowF`\n- `LightBlueF`\n- `LightMagentaF`\n- `LightCyanF`\n- `LightWhiteF`\n- `Color3BitF(color)`\n- `Color8BitF(color)`\n- `FullColorF(r, g, b)`\n\nBackground color.\n\n- `DefaultB`\n- `BlackB`\n- `RedB`\n- `GreenB`\n- `YellowB`\n- `BlueB`\n- `MagentaB`\n- `CyanB`\n- `WhiteB`\n- `LightBlackB`\n- `LightRedB`\n- `LightGreenB`\n- `LightYellowB`\n- `LightBlueB`\n- `LightMagentaB`\n- `LightCyanB`\n- `LightWhiteB`\n- `Color3BitB(color)`\n- `Color8BitB(color)`\n- `FullColorB(r, g, b)`\n\n### Color Converter\n\n24bit RGB color to ANSI color.\n\n- `NewRGB3Bit(r, g, b)`\n- `NewRGB8Bit(r, g, b)`\n\n### Builder\n\nTo mix these features.\n\n```go\ncustom := aec.EmptyBuilder.Right(2).RGB8BitF(128, 255, 64).RedB().ANSI\ncustom.Apply(\"Hello World\")\n```\n\n## Usage\n\n1. Create ANSI by `aec.XXX().With(aec.YYY())` or `aec.EmptyBuilder.XXX().YYY().ANSI`\n2. Print ANSI by `fmt.Print(ansi, \"some string\", aec.Reset)` or `fmt.Print(ansi.Apply(\"some string\"))`\n\n`aec.Reset` should be added when using font style or font color features.\n\n## Example\n\nSimple progressbar.\n\n![sample](./sample.gif)\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/morikuni/aec\"\n)\n\nfunc main() {\n\tconst n = 20\n\tbuilder := aec.EmptyBuilder\n\n\tup2 := aec.Up(2)\n\tcol := aec.Column(n + 2)\n\tbar := aec.Color8BitF(aec.NewRGB8Bit(64, 255, 64))\n\tlabel := builder.LightRedF().Underline().With(col).Right(1).ANSI\n\n\t// for up2\n\tfmt.Println()\n\tfmt.Println()\n\n\tfor i := 0; i <= n; i++ {\n\t\tfmt.Print(up2)\n\t\tfmt.Println(label.Apply(fmt.Sprint(i, \"/\", n)))\n\t\tfmt.Print(\"[\")\n\t\tfmt.Print(bar.Apply(strings.Repeat(\"=\", i)))\n\t\tfmt.Println(col.Apply(\"]\"))\n\t\ttime.Sleep(100 * time.Millisecond)\n\t}\n}\n```\n\n## License\n\n[MIT](./LICENSE)\n\n\n"
  },
  {
    "path": "vendor/github.com/morikuni/aec/aec.go",
    "content": "package aec\n\nimport \"fmt\"\n\n// EraseMode is listed in a variable EraseModes.\ntype EraseMode uint\n\nvar (\n\t// EraseModes is a list of EraseMode.\n\tEraseModes struct {\n\t\t// All erase all.\n\t\tAll EraseMode\n\n\t\t// Head erase to head.\n\t\tHead EraseMode\n\n\t\t// Tail erase to tail.\n\t\tTail EraseMode\n\t}\n\n\t// Save saves the cursor position.\n\tSave ANSI\n\n\t// Restore restores the cursor position.\n\tRestore ANSI\n\n\t// Hide hides the cursor.\n\tHide ANSI\n\n\t// Show shows the cursor.\n\tShow ANSI\n\n\t// Report reports the cursor position.\n\tReport ANSI\n)\n\n// Up moves up the cursor.\nfunc Up(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dA\", n))\n}\n\n// Down moves down the cursor.\nfunc Down(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dB\", n))\n}\n\n// Right moves right the cursor.\nfunc Right(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dC\", n))\n}\n\n// Left moves left the cursor.\nfunc Left(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dD\", n))\n}\n\n// NextLine moves down the cursor to head of a line.\nfunc NextLine(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dE\", n))\n}\n\n// PreviousLine moves up the cursor to head of a line.\nfunc PreviousLine(n uint) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dF\", n))\n}\n\n// Column set the cursor position to a given column.\nfunc Column(col uint) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dG\", col))\n}\n\n// Position set the cursor position to a given absolute position.\nfunc Position(row, col uint) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%d;%dH\", row, col))\n}\n\n// EraseDisplay erases display by given EraseMode.\nfunc EraseDisplay(m EraseMode) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dJ\", m))\n}\n\n// EraseLine erases lines by given EraseMode.\nfunc EraseLine(m EraseMode) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dK\", m))\n}\n\n// ScrollUp scrolls up the page.\nfunc ScrollUp(n int) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dS\", n))\n}\n\n// ScrollDown scrolls down the page.\nfunc ScrollDown(n int) ANSI {\n\tif n == 0 {\n\t\treturn empty\n\t}\n\treturn newAnsi(fmt.Sprintf(esc+\"%dT\", n))\n}\n\nfunc init() {\n\tEraseModes = struct {\n\t\tAll  EraseMode\n\t\tHead EraseMode\n\t\tTail EraseMode\n\t}{\n\t\tTail: 0,\n\t\tHead: 1,\n\t\tAll:  2,\n\t}\n\n\t// Save use both SCO (ESC[s) and DEC (ESC7) sequences as those were never standardised as part of the ANSI\n\tSave = newAnsi(esc + \"s\" + \"\\x1b7\")\n\t// Restore use both SCO (ESC[u) and DEC (ESC8) and DEC sequences as those were never standardised as part of the ANSI\n\tRestore = newAnsi(esc + \"u\" + \"\\x1b8\")\n\tHide = newAnsi(esc + \"?25l\")\n\tShow = newAnsi(esc + \"?25h\")\n\tReport = newAnsi(esc + \"6n\")\n}\n"
  },
  {
    "path": "vendor/github.com/morikuni/aec/ansi.go",
    "content": "package aec\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst esc = \"\\x1b[\"\n\n// Reset resets SGR effect.\nconst Reset string = \"\\x1b[0m\"\n\nvar empty = newAnsi(\"\")\n\n// ANSI represents ANSI escape code.\ntype ANSI interface {\n\tfmt.Stringer\n\n\t// With adapts given ANSIs.\n\tWith(...ANSI) ANSI\n\n\t// Apply wraps given string in ANSI.\n\tApply(string) string\n}\n\ntype ansiImpl string\n\nfunc newAnsi(s string) *ansiImpl {\n\tr := ansiImpl(s)\n\treturn &r\n}\n\nfunc (a *ansiImpl) With(ansi ...ANSI) ANSI {\n\treturn concat(append([]ANSI{a}, ansi...))\n}\n\nfunc (a *ansiImpl) Apply(s string) string {\n\treturn a.String() + s + Reset\n}\n\nfunc (a *ansiImpl) String() string {\n\treturn string(*a)\n}\n\n// Apply wraps given string in ANSIs.\nfunc Apply(s string, ansi ...ANSI) string {\n\tif len(ansi) == 0 {\n\t\treturn s\n\t}\n\treturn concat(ansi).Apply(s)\n}\n\nfunc concat(ansi []ANSI) ANSI {\n\tstrs := make([]string, 0, len(ansi))\n\tfor _, p := range ansi {\n\t\tstrs = append(strs, p.String())\n\t}\n\treturn newAnsi(strings.Join(strs, \"\"))\n}\n"
  },
  {
    "path": "vendor/github.com/morikuni/aec/builder.go",
    "content": "package aec\n\n// Builder is a lightweight syntax to construct customized ANSI.\ntype Builder struct {\n\tANSI ANSI\n}\n\n// EmptyBuilder is an initialized Builder.\nvar EmptyBuilder *Builder\n\n// NewBuilder creates a Builder from existing ANSI.\nfunc NewBuilder(a ...ANSI) *Builder {\n\treturn &Builder{concat(a)}\n}\n\n// With is a syntax for With.\nfunc (builder *Builder) With(a ...ANSI) *Builder {\n\treturn NewBuilder(builder.ANSI.With(a...))\n}\n\n// Up is a syntax for Up.\nfunc (builder *Builder) Up(n uint) *Builder {\n\treturn builder.With(Up(n))\n}\n\n// Down is a syntax for Down.\nfunc (builder *Builder) Down(n uint) *Builder {\n\treturn builder.With(Down(n))\n}\n\n// Right is a syntax for Right.\nfunc (builder *Builder) Right(n uint) *Builder {\n\treturn builder.With(Right(n))\n}\n\n// Left is a syntax for Left.\nfunc (builder *Builder) Left(n uint) *Builder {\n\treturn builder.With(Left(n))\n}\n\n// NextLine is a syntax for NextLine.\nfunc (builder *Builder) NextLine(n uint) *Builder {\n\treturn builder.With(NextLine(n))\n}\n\n// PreviousLine is a syntax for PreviousLine.\nfunc (builder *Builder) PreviousLine(n uint) *Builder {\n\treturn builder.With(PreviousLine(n))\n}\n\n// Column is a syntax for Column.\nfunc (builder *Builder) Column(col uint) *Builder {\n\treturn builder.With(Column(col))\n}\n\n// Position is a syntax for Position.\nfunc (builder *Builder) Position(row, col uint) *Builder {\n\treturn builder.With(Position(row, col))\n}\n\n// EraseDisplay is a syntax for EraseDisplay.\nfunc (builder *Builder) EraseDisplay(m EraseMode) *Builder {\n\treturn builder.With(EraseDisplay(m))\n}\n\n// EraseLine is a syntax for EraseLine.\nfunc (builder *Builder) EraseLine(m EraseMode) *Builder {\n\treturn builder.With(EraseLine(m))\n}\n\n// ScrollUp is a syntax for ScrollUp.\nfunc (builder *Builder) ScrollUp(n int) *Builder {\n\treturn builder.With(ScrollUp(n))\n}\n\n// ScrollDown is a syntax for ScrollDown.\nfunc (builder *Builder) ScrollDown(n int) *Builder {\n\treturn builder.With(ScrollDown(n))\n}\n\n// Save is a syntax for Save.\nfunc (builder *Builder) Save() *Builder {\n\treturn builder.With(Save)\n}\n\n// Restore is a syntax for Restore.\nfunc (builder *Builder) Restore() *Builder {\n\treturn builder.With(Restore)\n}\n\n// Hide is a syntax for Hide.\nfunc (builder *Builder) Hide() *Builder {\n\treturn builder.With(Hide)\n}\n\n// Show is a syntax for Show.\nfunc (builder *Builder) Show() *Builder {\n\treturn builder.With(Show)\n}\n\n// Report is a syntax for Report.\nfunc (builder *Builder) Report() *Builder {\n\treturn builder.With(Report)\n}\n\n// Bold is a syntax for Bold.\nfunc (builder *Builder) Bold() *Builder {\n\treturn builder.With(Bold)\n}\n\n// Faint is a syntax for Faint.\nfunc (builder *Builder) Faint() *Builder {\n\treturn builder.With(Faint)\n}\n\n// Italic is a syntax for Italic.\nfunc (builder *Builder) Italic() *Builder {\n\treturn builder.With(Italic)\n}\n\n// Underline is a syntax for Underline.\nfunc (builder *Builder) Underline() *Builder {\n\treturn builder.With(Underline)\n}\n\n// BlinkSlow is a syntax for BlinkSlow.\nfunc (builder *Builder) BlinkSlow() *Builder {\n\treturn builder.With(BlinkSlow)\n}\n\n// BlinkRapid is a syntax for BlinkRapid.\nfunc (builder *Builder) BlinkRapid() *Builder {\n\treturn builder.With(BlinkRapid)\n}\n\n// Inverse is a syntax for Inverse.\nfunc (builder *Builder) Inverse() *Builder {\n\treturn builder.With(Inverse)\n}\n\n// Conceal is a syntax for Conceal.\nfunc (builder *Builder) Conceal() *Builder {\n\treturn builder.With(Conceal)\n}\n\n// CrossOut is a syntax for CrossOut.\nfunc (builder *Builder) CrossOut() *Builder {\n\treturn builder.With(CrossOut)\n}\n\n// BlackF is a syntax for BlackF.\nfunc (builder *Builder) BlackF() *Builder {\n\treturn builder.With(BlackF)\n}\n\n// RedF is a syntax for RedF.\nfunc (builder *Builder) RedF() *Builder {\n\treturn builder.With(RedF)\n}\n\n// GreenF is a syntax for GreenF.\nfunc (builder *Builder) GreenF() *Builder {\n\treturn builder.With(GreenF)\n}\n\n// YellowF is a syntax for YellowF.\nfunc (builder *Builder) YellowF() *Builder {\n\treturn builder.With(YellowF)\n}\n\n// BlueF is a syntax for BlueF.\nfunc (builder *Builder) BlueF() *Builder {\n\treturn builder.With(BlueF)\n}\n\n// MagentaF is a syntax for MagentaF.\nfunc (builder *Builder) MagentaF() *Builder {\n\treturn builder.With(MagentaF)\n}\n\n// CyanF is a syntax for CyanF.\nfunc (builder *Builder) CyanF() *Builder {\n\treturn builder.With(CyanF)\n}\n\n// WhiteF is a syntax for WhiteF.\nfunc (builder *Builder) WhiteF() *Builder {\n\treturn builder.With(WhiteF)\n}\n\n// DefaultF is a syntax for DefaultF.\nfunc (builder *Builder) DefaultF() *Builder {\n\treturn builder.With(DefaultF)\n}\n\n// BlackB is a syntax for BlackB.\nfunc (builder *Builder) BlackB() *Builder {\n\treturn builder.With(BlackB)\n}\n\n// RedB is a syntax for RedB.\nfunc (builder *Builder) RedB() *Builder {\n\treturn builder.With(RedB)\n}\n\n// GreenB is a syntax for GreenB.\nfunc (builder *Builder) GreenB() *Builder {\n\treturn builder.With(GreenB)\n}\n\n// YellowB is a syntax for YellowB.\nfunc (builder *Builder) YellowB() *Builder {\n\treturn builder.With(YellowB)\n}\n\n// BlueB is a syntax for BlueB.\nfunc (builder *Builder) BlueB() *Builder {\n\treturn builder.With(BlueB)\n}\n\n// MagentaB is a syntax for MagentaB.\nfunc (builder *Builder) MagentaB() *Builder {\n\treturn builder.With(MagentaB)\n}\n\n// CyanB is a syntax for CyanB.\nfunc (builder *Builder) CyanB() *Builder {\n\treturn builder.With(CyanB)\n}\n\n// WhiteB is a syntax for WhiteB.\nfunc (builder *Builder) WhiteB() *Builder {\n\treturn builder.With(WhiteB)\n}\n\n// DefaultB is a syntax for DefaultB.\nfunc (builder *Builder) DefaultB() *Builder {\n\treturn builder.With(DefaultB)\n}\n\n// Frame is a syntax for Frame.\nfunc (builder *Builder) Frame() *Builder {\n\treturn builder.With(Frame)\n}\n\n// Encircle is a syntax for Encircle.\nfunc (builder *Builder) Encircle() *Builder {\n\treturn builder.With(Encircle)\n}\n\n// Overline is a syntax for Overline.\nfunc (builder *Builder) Overline() *Builder {\n\treturn builder.With(Overline)\n}\n\n// LightBlackF is a syntax for LightBlueF.\nfunc (builder *Builder) LightBlackF() *Builder {\n\treturn builder.With(LightBlackF)\n}\n\n// LightRedF is a syntax for LightRedF.\nfunc (builder *Builder) LightRedF() *Builder {\n\treturn builder.With(LightRedF)\n}\n\n// LightGreenF is a syntax for LightGreenF.\nfunc (builder *Builder) LightGreenF() *Builder {\n\treturn builder.With(LightGreenF)\n}\n\n// LightYellowF is a syntax for LightYellowF.\nfunc (builder *Builder) LightYellowF() *Builder {\n\treturn builder.With(LightYellowF)\n}\n\n// LightBlueF is a syntax for LightBlueF.\nfunc (builder *Builder) LightBlueF() *Builder {\n\treturn builder.With(LightBlueF)\n}\n\n// LightMagentaF is a syntax for LightMagentaF.\nfunc (builder *Builder) LightMagentaF() *Builder {\n\treturn builder.With(LightMagentaF)\n}\n\n// LightCyanF is a syntax for LightCyanF.\nfunc (builder *Builder) LightCyanF() *Builder {\n\treturn builder.With(LightCyanF)\n}\n\n// LightWhiteF is a syntax for LightWhiteF.\nfunc (builder *Builder) LightWhiteF() *Builder {\n\treturn builder.With(LightWhiteF)\n}\n\n// LightBlackB is a syntax for LightBlackB.\nfunc (builder *Builder) LightBlackB() *Builder {\n\treturn builder.With(LightBlackB)\n}\n\n// LightRedB is a syntax for LightRedB.\nfunc (builder *Builder) LightRedB() *Builder {\n\treturn builder.With(LightRedB)\n}\n\n// LightGreenB is a syntax for LightGreenB.\nfunc (builder *Builder) LightGreenB() *Builder {\n\treturn builder.With(LightGreenB)\n}\n\n// LightYellowB is a syntax for LightYellowB.\nfunc (builder *Builder) LightYellowB() *Builder {\n\treturn builder.With(LightYellowB)\n}\n\n// LightBlueB is a syntax for LightBlueB.\nfunc (builder *Builder) LightBlueB() *Builder {\n\treturn builder.With(LightBlueB)\n}\n\n// LightMagentaB is a syntax for LightMagentaB.\nfunc (builder *Builder) LightMagentaB() *Builder {\n\treturn builder.With(LightMagentaB)\n}\n\n// LightCyanB is a syntax for LightCyanB.\nfunc (builder *Builder) LightCyanB() *Builder {\n\treturn builder.With(LightCyanB)\n}\n\n// LightWhiteB is a syntax for LightWhiteB.\nfunc (builder *Builder) LightWhiteB() *Builder {\n\treturn builder.With(LightWhiteB)\n}\n\n// Color3BitF is a syntax for Color3BitF.\nfunc (builder *Builder) Color3BitF(c RGB3Bit) *Builder {\n\treturn builder.With(Color3BitF(c))\n}\n\n// Color3BitB is a syntax for Color3BitB.\nfunc (builder *Builder) Color3BitB(c RGB3Bit) *Builder {\n\treturn builder.With(Color3BitB(c))\n}\n\n// Color8BitF is a syntax for Color8BitF.\nfunc (builder *Builder) Color8BitF(c RGB8Bit) *Builder {\n\treturn builder.With(Color8BitF(c))\n}\n\n// Color8BitB is a syntax for Color8BitB.\nfunc (builder *Builder) Color8BitB(c RGB8Bit) *Builder {\n\treturn builder.With(Color8BitB(c))\n}\n\n// FullColorF is a syntax for FullColorF.\nfunc (builder *Builder) FullColorF(r, g, b uint8) *Builder {\n\treturn builder.With(FullColorF(r, g, b))\n}\n\n// FullColorB is a syntax for FullColorB.\nfunc (builder *Builder) FullColorB(r, g, b uint8) *Builder {\n\treturn builder.With(FullColorB(r, g, b))\n}\n\n// RGB3BitF is a syntax for Color3BitF with NewRGB3Bit.\nfunc (builder *Builder) RGB3BitF(r, g, b uint8) *Builder {\n\treturn builder.Color3BitF(NewRGB3Bit(r, g, b))\n}\n\n// RGB3BitB is a syntax for Color3BitB with NewRGB3Bit.\nfunc (builder *Builder) RGB3BitB(r, g, b uint8) *Builder {\n\treturn builder.Color3BitB(NewRGB3Bit(r, g, b))\n}\n\n// RGB8BitF is a syntax for Color8BitF with NewRGB8Bit.\nfunc (builder *Builder) RGB8BitF(r, g, b uint8) *Builder {\n\treturn builder.Color8BitF(NewRGB8Bit(r, g, b))\n}\n\n// RGB8BitB is a syntax for Color8BitB with NewRGB8Bit.\nfunc (builder *Builder) RGB8BitB(r, g, b uint8) *Builder {\n\treturn builder.Color8BitB(NewRGB8Bit(r, g, b))\n}\n\nfunc init() {\n\tEmptyBuilder = &Builder{empty}\n}\n"
  },
  {
    "path": "vendor/github.com/morikuni/aec/sgr.go",
    "content": "package aec\n\nimport (\n\t\"fmt\"\n)\n\n// RGB3Bit is a 3bit RGB color.\ntype RGB3Bit uint8\n\n// RGB8Bit is a 8bit RGB color.\ntype RGB8Bit uint8\n\nfunc newSGR(n uint) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dm\", n))\n}\n\n// NewRGB3Bit create a RGB3Bit from given RGB.\nfunc NewRGB3Bit(r, g, b uint8) RGB3Bit {\n\treturn RGB3Bit((r >> 7) | ((g >> 6) & 0x2) | ((b >> 5) & 0x4))\n}\n\n// NewRGB8Bit create a RGB8Bit from given RGB.\nfunc NewRGB8Bit(r, g, b uint8) RGB8Bit {\n\treturn RGB8Bit(16 + 36*(r/43) + 6*(g/43) + b/43)\n}\n\n// Color3BitF set the foreground color of text.\nfunc Color3BitF(c RGB3Bit) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dm\", c+30))\n}\n\n// Color3BitB set the background color of text.\nfunc Color3BitB(c RGB3Bit) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"%dm\", c+40))\n}\n\n// Color8BitF set the foreground color of text.\nfunc Color8BitF(c RGB8Bit) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"38;5;%dm\", c))\n}\n\n// Color8BitB set the background color of text.\nfunc Color8BitB(c RGB8Bit) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"48;5;%dm\", c))\n}\n\n// FullColorF set the foreground color of text.\nfunc FullColorF(r, g, b uint8) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"38;2;%d;%d;%dm\", r, g, b))\n}\n\n// FullColorB set the foreground color of text.\nfunc FullColorB(r, g, b uint8) ANSI {\n\treturn newAnsi(fmt.Sprintf(esc+\"48;2;%d;%d;%dm\", r, g, b))\n}\n\n// Style\nvar (\n\t// Bold set the text style to bold or increased intensity.\n\tBold ANSI\n\n\t// Faint set the text style to faint.\n\tFaint ANSI\n\n\t// Italic set the text style to italic.\n\tItalic ANSI\n\n\t// Underline set the text style to underline.\n\tUnderline ANSI\n\n\t// BlinkSlow set the text style to slow blink.\n\tBlinkSlow ANSI\n\n\t// BlinkRapid set the text style to rapid blink.\n\tBlinkRapid ANSI\n\n\t// Inverse swap the foreground color and background color.\n\tInverse ANSI\n\n\t// Conceal set the text style to conceal.\n\tConceal ANSI\n\n\t// CrossOut set the text style to crossed out.\n\tCrossOut ANSI\n\n\t// Frame set the text style to framed.\n\tFrame ANSI\n\n\t// Encircle set the text style to encircled.\n\tEncircle ANSI\n\n\t// Overline set the text style to overlined.\n\tOverline ANSI\n)\n\n// Foreground color of text.\nvar (\n\t// DefaultF is the default color of foreground.\n\tDefaultF ANSI\n\n\t// Normal color\n\tBlackF   ANSI\n\tRedF     ANSI\n\tGreenF   ANSI\n\tYellowF  ANSI\n\tBlueF    ANSI\n\tMagentaF ANSI\n\tCyanF    ANSI\n\tWhiteF   ANSI\n\n\t// Light color\n\tLightBlackF   ANSI\n\tLightRedF     ANSI\n\tLightGreenF   ANSI\n\tLightYellowF  ANSI\n\tLightBlueF    ANSI\n\tLightMagentaF ANSI\n\tLightCyanF    ANSI\n\tLightWhiteF   ANSI\n)\n\n// Background color of text.\nvar (\n\t// DefaultB is the default color of background.\n\tDefaultB ANSI\n\n\t// Normal color\n\tBlackB   ANSI\n\tRedB     ANSI\n\tGreenB   ANSI\n\tYellowB  ANSI\n\tBlueB    ANSI\n\tMagentaB ANSI\n\tCyanB    ANSI\n\tWhiteB   ANSI\n\n\t// Light color\n\tLightBlackB   ANSI\n\tLightRedB     ANSI\n\tLightGreenB   ANSI\n\tLightYellowB  ANSI\n\tLightBlueB    ANSI\n\tLightMagentaB ANSI\n\tLightCyanB    ANSI\n\tLightWhiteB   ANSI\n)\n\nfunc init() {\n\tBold = newSGR(1)\n\tFaint = newSGR(2)\n\tItalic = newSGR(3)\n\tUnderline = newSGR(4)\n\tBlinkSlow = newSGR(5)\n\tBlinkRapid = newSGR(6)\n\tInverse = newSGR(7)\n\tConceal = newSGR(8)\n\tCrossOut = newSGR(9)\n\n\tBlackF = newSGR(30)\n\tRedF = newSGR(31)\n\tGreenF = newSGR(32)\n\tYellowF = newSGR(33)\n\tBlueF = newSGR(34)\n\tMagentaF = newSGR(35)\n\tCyanF = newSGR(36)\n\tWhiteF = newSGR(37)\n\n\tDefaultF = newSGR(39)\n\n\tBlackB = newSGR(40)\n\tRedB = newSGR(41)\n\tGreenB = newSGR(42)\n\tYellowB = newSGR(43)\n\tBlueB = newSGR(44)\n\tMagentaB = newSGR(45)\n\tCyanB = newSGR(46)\n\tWhiteB = newSGR(47)\n\n\tDefaultB = newSGR(49)\n\n\tFrame = newSGR(51)\n\tEncircle = newSGR(52)\n\tOverline = newSGR(53)\n\n\tLightBlackF = newSGR(90)\n\tLightRedF = newSGR(91)\n\tLightGreenF = newSGR(92)\n\tLightYellowF = newSGR(93)\n\tLightBlueF = newSGR(94)\n\tLightMagentaF = newSGR(95)\n\tLightCyanF = newSGR(96)\n\tLightWhiteF = newSGR(97)\n\n\tLightBlackB = newSGR(100)\n\tLightRedB = newSGR(101)\n\tLightGreenB = newSGR(102)\n\tLightYellowB = newSGR(103)\n\tLightBlueB = newSGR(104)\n\tLightMagentaB = newSGR(105)\n\tLightCyanB = newSGR(106)\n\tLightWhiteB = newSGR(107)\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 = 1\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/spf13/cobra/.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# Vim files https://github.com/github/gitignore/blob/master/Global/Vim.gitignore\n# swap\n[._]*.s[a-w][a-z]\n[._]s[a-w][a-z]\n# session\nSession.vim\n# temporary\n.netrwhist\n*~\n# auto-generated tag files\ntags\n\n*.exe\ncobra.test\nbin\n\n.idea/\n*.iml\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.golangci.yml",
    "content": "# Copyright 2013-2023 The Cobra 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\nversion: \"2\"\n\nrun:\n  timeout: 5m\n\nformatters:\n  enable:\n    - gofmt\n    - goimports\n\nlinters:\n  default: none\n  enable:\n    #- bodyclose\n    #- depguard\n    #- dogsled\n    #- dupl\n    - errcheck\n    #- exhaustive\n    #- funlen\n    #- gochecknoinits\n    - goconst\n    - gocritic\n    #- gocyclo\n    #- goprintffuncname\n    - gosec\n    - govet\n    - ineffassign\n    #- lll\n    - misspell\n    #- mnd\n    #- nakedret\n    #- noctx\n    - nolintlint\n    #- rowserrcheck\n    - staticcheck\n    - unconvert\n    #- unparam\n    - unused\n    #- whitespace\n  exclusions:\n    presets:\n      - common-false-positives\n      - legacy\n      - std-error-handling\n  settings:\n    govet:\n      # Disable buildtag check to allow dual build tag syntax (both //go:build and // +build).\n      # This is necessary for Go 1.15 compatibility since //go:build was introduced in Go 1.17.\n      # This can be removed once Cobra requires Go 1.17 or higher.\n      disable:\n        - buildtag\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.mailmap",
    "content": "Steve Francia <steve.francia@gmail.com>\nBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>\nFabiano Franz <ffranz@redhat.com>                   <contact@fabianofranz.com>\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONDUCT.md",
    "content": "## Cobra User Contract\n\n### Versioning\nCobra will follow a steady release cadence. Non breaking changes will be released as minor versions quarterly. Patch bug releases are at the discretion of the maintainers. Users can expect security patch fixes to be released within relatively short order of a CVE becoming known. For more information on security patch fixes see the CVE section below. Releases will follow [Semantic Versioning](https://semver.org/). Users tracking the Master branch should expect unpredictable breaking changes as the project continues to move forward. For stability, it is highly recommended to use a release.\n\n### Backward Compatibility\nWe will maintain two major releases in a moving window. The N-1 release will only receive bug fixes and security updates and will be dropped once N+1 is released.\n\n### Deprecation\nDeprecation of Go versions or dependent packages will only occur in major releases. To reduce the change of this taking users by surprise, any large deprecation will be preceded by an announcement in the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) and an Issue on Github.\n\n### CVE\nMaintainers will make every effort to release security patches in the case of a medium to high severity CVE directly impacting the library. The speed in which these patches reach a release is up to the discretion of the maintainers. A low severity CVE may be a lower priority than a high severity one.\n\n### Communication\nCobra maintainers will use GitHub issues and the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) as the primary means of communication with the community. This is to foster open communication with all users and contributors.\n\n### Breaking Changes\nBreaking changes are generally allowed in the master branch, as this is the branch used to develop the next release of Cobra.\n\nThere may be times, however, when master is closed for breaking changes. This is likely to happen as we near the release of a new version.\n\nBreaking changes are not allowed in release branches, as these represent minor versions that have already been released. These version have consumers who expect the APIs, behaviors, etc, to remain stable during the lifetime of the patch stream for the minor release.\n\nExamples of breaking changes include:\n- Removing or renaming exported constant, variable, type, or function.\n- Updating the version of critical libraries such as `spf13/pflag`, `spf13/viper` etc...\n  - Some version updates may be acceptable for picking up bug fixes, but maintainers must exercise caution when reviewing.\n\nThere may, at times, need to be exceptions where breaking changes are allowed in release branches. These are at the discretion of the project's maintainers, and must be carefully considered before merging.\n\n### CI Testing\nMaintainers will ensure the Cobra test suite utilizes the current supported versions of Golang.\n\n### Disclaimer\nChanges to this document and the contents therein are at the discretion of the maintainers.\nNone of the contents of this document are legally binding in any way to the maintainers or the users.\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONTRIBUTING.md",
    "content": "# Contributing to Cobra\n\nThank you so much for contributing to Cobra. We appreciate your time and help.\nHere are some guidelines to help you get started.\n\n## Code of Conduct\n\nBe kind and respectful to the members of the community. Take time to educate\nothers who are seeking help. Harassment of any kind will not be tolerated.\n\n## Questions\n\nIf you have questions regarding Cobra, feel free to ask it in the community\n[#cobra Slack channel][cobra-slack]\n\n## Filing a bug or feature\n\n1. Before filing an issue, please check the existing issues to see if a\n   similar one was already opened. If there is one already opened, feel free\n   to comment on it.\n1. If you believe you've found a bug, please provide detailed steps of\n   reproduction, the version of Cobra and anything else you believe will be\n   useful to help troubleshoot it (e.g. OS environment, environment variables,\n   etc...). Also state the current behavior vs. the expected behavior.\n1. If you'd like to see a feature or an enhancement please open an issue with\n   a clear title and description of what the feature is and why it would be\n   beneficial to the project and its users.\n\n## Submitting changes\n\n1. CLA: Upon submitting a Pull Request (PR), contributors will be prompted to\n   sign a CLA. Please sign the CLA :slightly_smiling_face:\n1. Tests: If you are submitting code, please ensure you have adequate tests\n   for the feature. Tests can be run via `go test ./...` or `make test`.\n1. Since this is golang project, ensure the new code is properly formatted to\n   ensure code consistency. Run `make all`.\n\n### Quick steps to contribute\n\n1. Fork the project.\n1. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`)\n1. Create your feature branch (`git checkout -b my-new-feature`)\n1. Make changes and run tests (`make test`)\n1. Add them to staging (`git add .`)\n1. Commit your changes (`git commit -m 'Add some feature'`)\n1. Push to the branch (`git push origin my-new-feature`)\n1. Create new pull request\n\n<!-- Links -->\n[cobra-slack]: https://gophers.slack.com/archives/CD3LP1199\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/MAINTAINERS",
    "content": "maintainers:\n- spf13\n- johnSchnake\n- jpmcb\n- marckhouzam\ninactive:\n- anthonyfok\n- bep\n- bogem\n- broady\n- eparis\n- jharshman\n- wfernandes\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/Makefile",
    "content": "BIN=\"./bin\"\nSRC=$(shell find . -name \"*.go\")\n\nifeq (, $(shell which golangci-lint))\n$(warning \"could not find golangci-lint in $(PATH), run: curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh\")\nendif\n\n.PHONY: fmt lint test install_deps clean\n\ndefault: all\n\nall: fmt test\n\nfmt:\n\t$(info ******************** checking formatting ********************)\n\t@test -z $(shell gofmt -l $(SRC)) || (gofmt -d $(SRC); exit 1)\n\nlint:\n\t$(info ******************** running lint tools ********************)\n\tgolangci-lint run -v\n\ntest: install_deps\n\t$(info ******************** running tests ********************)\n\tgo test -v ./...\n\nrichtest: install_deps\n\t$(info ******************** running tests with kyoh86/richgo ********************)\n\trichgo test -v ./...\n\ninstall_deps:\n\t$(info ******************** downloading dependencies ********************)\n\tgo get -v ./...\n\nclean:\n\trm -rf $(BIN)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/README.md",
    "content": "<div align=\"center\">\n<a href=\"https://cobra.dev\">\n<img width=\"512\" height=\"535\" alt=\"cobra-logo\" src=\"https://github.com/user-attachments/assets/c8bf9aad-b5ae-41d3-8899-d83baec10af8\" />\n</a>\n</div>\n\nCobra is a library for creating powerful modern CLI applications.\n\n<a href=\"https://cobra.dev\">Visit Cobra.dev for extensive documentation</a> \n\n\nCobra is used in many Go projects such as [Kubernetes](https://kubernetes.io/),\n[Hugo](https://gohugo.io), and [GitHub CLI](https://github.com/cli/cli) to\nname a few. [This list](site/content/projects_using_cobra.md) contains a more extensive list of projects using Cobra.\n\n[![](https://img.shields.io/github/actions/workflow/status/spf13/cobra/test.yml?branch=main&longCache=true&label=Test&logo=github%20actions&logoColor=fff)](https://github.com/spf13/cobra/actions?query=workflow%3ATest)\n[![Go Reference](https://pkg.go.dev/badge/github.com/spf13/cobra.svg)](https://pkg.go.dev/github.com/spf13/cobra)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cobra)](https://goreportcard.com/report/github.com/spf13/cobra)\n[![Slack](https://img.shields.io/badge/Slack-cobra-brightgreen)](https://gophers.slack.com/archives/CD3LP1199)\n<hr>\n<div align=\"center\" markdown=\"1\">\n   <sup>Supported by:</sup>\n   <br>\n   <br>\n   <a href=\"https://www.warp.dev/cobra\">\n      <img alt=\"Warp sponsorship\" width=\"400\" src=\"https://github.com/user-attachments/assets/ab8dd143-b0fd-4904-bdc5-dd7ecac94eae\">\n   </a>\n\n### [Warp, the AI terminal for devs](https://www.warp.dev/cobra)\n[Try Cobra in Warp today](https://www.warp.dev/cobra)<br>\n\n</div>\n<hr>\n\n# Overview\n\nCobra is a library providing a simple interface to create powerful modern CLI\ninterfaces similar to git & go tools.\n\nCobra provides:\n* Easy subcommand-based CLIs: `app server`, `app fetch`, etc.\n* Fully POSIX-compliant flags (including short & long versions)\n* Nested subcommands\n* Global, local and cascading flags\n* Intelligent suggestions (`app srver`... did you mean `app server`?)\n* Automatic help generation for commands and flags\n* Grouping help for subcommands\n* Automatic help flag recognition of `-h`, `--help`, etc.\n* Automatically generated shell autocomplete for your application (bash, zsh, fish, powershell)\n* Automatically generated man pages for your application\n* Command aliases so you can change things without breaking them\n* The flexibility to define your own help, usage, etc.\n* Optional seamless integration with [viper](https://github.com/spf13/viper) for 12-factor apps\n\n# Concepts\n\nCobra is built on a structure of commands, arguments & flags.\n\n**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions.\n\nThe best applications read like sentences when used, and as a result, users\nintuitively know how to interact with them.\n\nThe pattern to follow is\n`APPNAME VERB NOUN --ADJECTIVE`\n    or\n`APPNAME COMMAND ARG --FLAG`.\n\nA few good real world examples may better illustrate this point.\n\nIn the following example, 'server' is a command, and 'port' is a flag:\n\n    hugo server --port=1313\n\nIn this command we are telling Git to clone the url bare.\n\n    git clone URL --bare\n\n## Commands\n\nCommand is the central point of the application. Each interaction that\nthe application supports will be contained in a Command. A command can\nhave children commands and optionally run an action.\n\nIn the example above, 'server' is the command.\n\n[More about cobra.Command](https://pkg.go.dev/github.com/spf13/cobra#Command)\n\n## Flags\n\nA flag is a way to modify the behavior of a command. Cobra supports\nfully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/).\nA Cobra command can define flags that persist through to children commands\nand flags that are only available to that command.\n\nIn the example above, 'port' is the flag.\n\nFlag functionality is provided by the [pflag\nlibrary](https://github.com/spf13/pflag), a fork of the flag standard library\nwhich maintains the same interface while adding POSIX compliance.\n\n# Installing\nUsing Cobra is easy. First, use `go get` to install the latest version\nof the library.\n\n```\ngo get -u github.com/spf13/cobra@latest\n```\n\nNext, include Cobra in your application:\n\n```go\nimport \"github.com/spf13/cobra\"\n```\n\n# Usage\n`cobra-cli` is a command line program to generate cobra applications and command files.\nIt will bootstrap your application scaffolding to rapidly\ndevelop a Cobra-based application. It is the easiest way to incorporate Cobra into your application.\n\nIt can be installed by running:\n\n```\ngo install github.com/spf13/cobra-cli@latest\n```\n\nFor complete details on using the Cobra-CLI generator, please read [The Cobra Generator README](https://github.com/spf13/cobra-cli/blob/main/README.md)\n\nFor complete details on using the Cobra library, please read [The Cobra User Guide](site/content/user_guide.md).\n\n# License\n\nCobra is released under the Apache 2.0 license. See [LICENSE.txt](LICENSE.txt)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/SECURITY.md",
    "content": "# Security Policy\n\n## Reporting a Vulnerability\n\nThe `cobra` maintainers take security issues seriously and\nwe appreciate your efforts to _**responsibly**_ disclose your findings.\nWe will make every effort to swiftly respond and address concerns.\n\nTo report a security vulnerability:\n\n1. **DO NOT** create a public GitHub issue for the vulnerability!\n2. **DO NOT** create a public GitHub Pull Request with a fix for the vulnerability!\n3. Send an email to `cobra-security@googlegroups.com`.\n4. Include the following details in your report:\n   - Description of the vulnerability\n   - Steps to reproduce\n   - Potential impact of the vulnerability (to your downstream project, to the Go ecosystem, etc.)\n   - Any potential mitigations you've already identified\n5. Allow up to 7 days for an initial response.\n   You should receive an acknowledgment of your report and an estimated timeline for a fix.\n6. (Optional) If you have a fix and would like to contribute your patch, please work\n   directly with the maintainers via `cobra-security@googlegroups.com` to\n   coordinate pushing the patch to GitHub, cutting a new release, and disclosing the change.\n\n## Response Process\n\nWhen a security vulnerability report is received, the `cobra` maintainers will:\n\n1. Confirm receipt of the vulnerability report within 7 days.\n2. Assess the report to determine if it constitutes a security vulnerability.\n3. If confirmed, assign the vulnerability a severity level and create a timeline for addressing it.\n4. Develop and test a fix.\n5. Patch the vulnerability and make a new GitHub release: the maintainers will coordinate disclosure with the reporter.\n6. Create a new GitHub Security Advisory to inform the broader Go ecosystem\n\n## Disclosure Policy\n\nThe `cobra` maintainers follow a coordinated disclosure process:\n\n1. Security vulnerabilities will be addressed as quickly as possible.\n2. A CVE (Common Vulnerabilities and Exposures) identifier will be requested for significant vulnerabilities\n   that are within `cobra` itself.\n3. Once a fix is ready, the maintainers will:\n   - Release a new version containing the fix.\n   - Update the security advisory with details about the vulnerability.\n   - Credit the reporter (unless they wish to remain anonymous).\n   - Credit the fixer (unless they wish to remain anonymous, this may be the same as the reporter).\n   - Announce the vulnerability through appropriate channels\n     (GitHub Security Advisory, mailing lists, GitHub Releases, etc.)\n\n## Supported Versions\n\nSecurity fixes will typically only be released for the most recent major release.\n\n## Upstream Security Issues\n\n`cobra` generally will not accept vulnerability reports that originate in upstream\ndependencies. I.e., if there is a problem in Go code that `cobra` depends on,\nit is best to engage that project's maintainers and owners.\n\nThis security policy primarily pertains only to `cobra` itself but if you believe you've\nidentified a problem that originates in an upstream dependency and is being widely\ndistributed by `cobra`, please follow the disclosure procedure above: the `cobra`\nmaintainers will work with you to determine the severity and ecosystem impact.\n\n## Security Updates and CVEs\n\nInformation about known security vulnerabilities and CVEs affecting `cobra` will\nbe published as GitHub Security Advisories at\nhttps://github.com/spf13/cobra/security/advisories.\n\nAll users are encouraged to watch the repository and upgrade promptly when\nsecurity releases are published.\n\n## `cobra` Security Best Practices for Users\n\nWhen using `cobra` in your CLIs, the `cobra` maintainers recommend the following:\n\n1. Always use the latest version of `cobra`.\n2. [Use Go modules](https://go.dev/blog/using-go-modules) for dependency management.\n3. Always use the latest possible version of Go.\n\n## Security Best Practices for Contributors\n\nWhen contributing to `cobra`:\n\n1. Be mindful of security implications when adding new features or modifying existing ones.\n2. Be aware of `cobra`'s extremely large reach: it is used in nearly every Go CLI\n   (like Kubernetes, Docker, Prometheus, etc. etc.)\n3. Write tests that explicitly cover edge cases and potential issues.\n4. If you discover a security issue while working on `cobra`, please report it\n   following the process above rather than opening a public pull request or issue that\n   addresses the vulnerability.\n5. Take personal sec-ops seriously and secure your GitHub account: use [two-factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa),\n   [sign your commits with a GPG or SSH key](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification),\n   etc.\n\n## Acknowledgments\n\nThe `cobra` maintainers would like to thank all security researchers and\ncommunity members who help keep cobra, its users, and the entire Go ecosystem secure through responsible disclosures!!\n\n---\n\n*This security policy is inspired by the [Open Web Application Security Project (OWASP)](https://owasp.org/) guidelines and security best practices.*\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/active_help.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n)\n\nconst (\n\tactiveHelpMarker = \"_activeHelp_ \"\n\t// The below values should not be changed: programs will be using them explicitly\n\t// in their user documentation, and users will be using them explicitly.\n\tactiveHelpEnvVarSuffix  = \"ACTIVE_HELP\"\n\tactiveHelpGlobalEnvVar  = configEnvVarGlobalPrefix + \"_\" + activeHelpEnvVarSuffix\n\tactiveHelpGlobalDisable = \"0\"\n)\n\n// AppendActiveHelp adds the specified string to the specified array to be used as ActiveHelp.\n// Such strings will be processed by the completion script and will be shown as ActiveHelp\n// to the user.\n// The array parameter should be the array that will contain the completions.\n// This function can be called multiple times before and/or after completions are added to\n// the array.  Each time this function is called with the same array, the new\n// ActiveHelp line will be shown below the previous ones when completion is triggered.\nfunc AppendActiveHelp(compArray []Completion, activeHelpStr string) []Completion {\n\treturn append(compArray, fmt.Sprintf(\"%s%s\", activeHelpMarker, activeHelpStr))\n}\n\n// GetActiveHelpConfig returns the value of the ActiveHelp environment variable\n// <PROGRAM>_ACTIVE_HELP where <PROGRAM> is the name of the root command in upper\n// case, with all non-ASCII-alphanumeric characters replaced by `_`.\n// It will always return \"0\" if the global environment variable COBRA_ACTIVE_HELP\n// is set to \"0\".\nfunc GetActiveHelpConfig(cmd *Command) string {\n\tactiveHelpCfg := os.Getenv(activeHelpGlobalEnvVar)\n\tif activeHelpCfg != activeHelpGlobalDisable {\n\t\tactiveHelpCfg = os.Getenv(activeHelpEnvVar(cmd.Root().Name()))\n\t}\n\treturn activeHelpCfg\n}\n\n// activeHelpEnvVar returns the name of the program-specific ActiveHelp environment\n// variable.  It has the format <PROGRAM>_ACTIVE_HELP where <PROGRAM> is the name of the\n// root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`.\nfunc activeHelpEnvVar(name string) string {\n\treturn configEnvVar(name, activeHelpEnvVarSuffix)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/args.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype PositionalArgs func(cmd *Command, args []string) error\n\n// legacyArgs validation has the following behaviour:\n// - root commands with no subcommands can take arbitrary arguments\n// - root commands with subcommands will do subcommand validity checking\n// - subcommands will always accept arbitrary arguments\nfunc legacyArgs(cmd *Command, args []string) error {\n\t// no subcommand, always take args\n\tif !cmd.HasSubCommands() {\n\t\treturn nil\n\t}\n\n\t// root command with subcommands, do subcommand checking.\n\tif !cmd.HasParent() && len(args) > 0 {\n\t\treturn fmt.Errorf(\"unknown command %q for %q%s\", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))\n\t}\n\treturn nil\n}\n\n// NoArgs returns an error if any args are included.\nfunc NoArgs(cmd *Command, args []string) error {\n\tif len(args) > 0 {\n\t\treturn fmt.Errorf(\"unknown command %q for %q\", args[0], cmd.CommandPath())\n\t}\n\treturn nil\n}\n\n// OnlyValidArgs returns an error if there are any positional args that are not in\n// the `ValidArgs` field of `Command`\nfunc OnlyValidArgs(cmd *Command, args []string) error {\n\tif len(cmd.ValidArgs) > 0 {\n\t\t// Remove any description that may be included in ValidArgs.\n\t\t// A description is following a tab character.\n\t\tvalidArgs := make([]string, 0, len(cmd.ValidArgs))\n\t\tfor _, v := range cmd.ValidArgs {\n\t\t\tvalidArgs = append(validArgs, strings.SplitN(v, \"\\t\", 2)[0])\n\t\t}\n\t\tfor _, v := range args {\n\t\t\tif !stringInSlice(v, validArgs) {\n\t\t\t\treturn fmt.Errorf(\"invalid argument %q for %q%s\", v, cmd.CommandPath(), cmd.findSuggestions(args[0]))\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ArbitraryArgs never returns an error.\nfunc ArbitraryArgs(cmd *Command, args []string) error {\n\treturn nil\n}\n\n// MinimumNArgs returns an error if there is not at least N args.\nfunc MinimumNArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) < n {\n\t\t\treturn fmt.Errorf(\"requires at least %d arg(s), only received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// MaximumNArgs returns an error if there are more than N args.\nfunc MaximumNArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) > n {\n\t\t\treturn fmt.Errorf(\"accepts at most %d arg(s), received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ExactArgs returns an error if there are not exactly n args.\nfunc ExactArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) != n {\n\t\t\treturn fmt.Errorf(\"accepts %d arg(s), received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// RangeArgs returns an error if the number of args is not within the expected range.\nfunc RangeArgs(min int, max int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) < min || len(args) > max {\n\t\t\treturn fmt.Errorf(\"accepts between %d and %d arg(s), received %d\", min, max, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// MatchAll allows combining several PositionalArgs to work in concert.\nfunc MatchAll(pargs ...PositionalArgs) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tfor _, parg := range pargs {\n\t\t\tif err := parg(cmd, args); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ExactValidArgs returns an error if there are not exactly N positional args OR\n// there are any positional args that are not in the `ValidArgs` field of `Command`\n//\n// Deprecated: use MatchAll(ExactArgs(n), OnlyValidArgs) instead\nfunc ExactValidArgs(n int) PositionalArgs {\n\treturn MatchAll(ExactArgs(n), OnlyValidArgs)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n)\n\n// Annotations for Bash completion.\nconst (\n\tBashCompFilenameExt     = \"cobra_annotation_bash_completion_filename_extensions\"\n\tBashCompCustom          = \"cobra_annotation_bash_completion_custom\"\n\tBashCompOneRequiredFlag = \"cobra_annotation_bash_completion_one_required_flag\"\n\tBashCompSubdirsInDir    = \"cobra_annotation_bash_completion_subdirs_in_dir\"\n)\n\nfunc writePreamble(buf io.StringWriter, name string) {\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"# bash completion for %-36s -*- shell-script -*-\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`\n__%[1]s_debug()\n{\n    if [[ -n ${BASH_COMP_DEBUG_FILE:-} ]]; then\n        echo \"$*\" >> \"${BASH_COMP_DEBUG_FILE}\"\n    fi\n}\n\n# Homebrew on Macs have version 1.3 of bash-completion which doesn't include\n# _init_completion. This is a very minimal version of that function.\n__%[1]s_init_completion()\n{\n    COMPREPLY=()\n    _get_comp_words_by_ref \"$@\" cur prev words cword\n}\n\n__%[1]s_index_of_word()\n{\n    local w word=$1\n    shift\n    index=0\n    for w in \"$@\"; do\n        [[ $w = \"$word\" ]] && return\n        index=$((index+1))\n    done\n    index=-1\n}\n\n__%[1]s_contains_word()\n{\n    local w word=$1; shift\n    for w in \"$@\"; do\n        [[ $w = \"$word\" ]] && return\n    done\n    return 1\n}\n\n__%[1]s_handle_go_custom_completion()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}\"\n\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n\n    local out requestComp lastParam lastChar comp directive args\n\n    # Prepare the command to request completions for the program.\n    # Calling ${words[0]} instead of directly %[1]s allows handling aliases\n    args=(\"${words[@]:1}\")\n    # Disable ActiveHelp which is not supported for bash completion v1\n    requestComp=\"%[8]s=0 ${words[0]} %[2]s ${args[*]}\"\n\n    lastParam=${words[$((${#words[@]}-1))]}\n    lastChar=${lastParam:$((${#lastParam}-1)):1}\n    __%[1]s_debug \"${FUNCNAME[0]}: lastParam ${lastParam}, lastChar ${lastChar}\"\n\n    if [ -z \"${cur}\" ] && [ \"${lastChar}\" != \"=\" ]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"${FUNCNAME[0]}: Adding extra empty parameter\"\n        requestComp=\"${requestComp} \\\"\\\"\"\n    fi\n\n    __%[1]s_debug \"${FUNCNAME[0]}: calling ${requestComp}\"\n    # Use eval to handle any environment variables and such\n    out=$(eval \"${requestComp}\" 2>/dev/null)\n\n    # Extract the directive integer at the very end of the output following a colon (:)\n    directive=${out##*:}\n    # Remove the directive\n    out=${out%%:*}\n    if [ \"${directive}\" = \"${out}\" ]; then\n        # There is not directive specified\n        directive=0\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: the completion directive is: ${directive}\"\n    __%[1]s_debug \"${FUNCNAME[0]}: the completions are: ${out}\"\n\n    if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then\n        # Error code.  No completion.\n        __%[1]s_debug \"${FUNCNAME[0]}: received error from custom completion go code\"\n        return\n    else\n        if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                __%[1]s_debug \"${FUNCNAME[0]}: activating no space\"\n                compopt -o nospace\n            fi\n        fi\n        if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                __%[1]s_debug \"${FUNCNAME[0]}: activating no file completion\"\n                compopt +o default\n            fi\n        fi\n    fi\n\n    if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then\n        # File extension filtering\n        local fullFilter filter filteringCmd\n        # Do not use quotes around the $out variable or else newline\n        # characters will be kept.\n        for filter in ${out}; do\n            fullFilter+=\"$filter|\"\n        done\n\n        filteringCmd=\"_filedir $fullFilter\"\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        $filteringCmd\n    elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then\n        # File completion for directories only\n        local subdir\n        # Use printf to strip any trailing newline\n        subdir=$(printf \"%%s\" \"${out}\")\n        if [ -n \"$subdir\" ]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            __%[1]s_handle_subdirs_in_dir_flag \"$subdir\"\n        else\n            __%[1]s_debug \"Listing directories in .\"\n            _filedir -d\n        fi\n    else\n        while IFS='' read -r comp; do\n            COMPREPLY+=(\"$comp\")\n        done < <(compgen -W \"${out}\" -- \"$cur\")\n    fi\n}\n\n__%[1]s_handle_reply()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}\"\n    local comp\n    case $cur in\n        -*)\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                compopt -o nospace\n            fi\n            local allflags\n            if [ ${#must_have_one_flag[@]} -ne 0 ]; then\n                allflags=(\"${must_have_one_flag[@]}\")\n            else\n                allflags=(\"${flags[*]} ${two_word_flags[*]}\")\n            fi\n            while IFS='' read -r comp; do\n                COMPREPLY+=(\"$comp\")\n            done < <(compgen -W \"${allflags[*]}\" -- \"$cur\")\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                [[ \"${COMPREPLY[0]}\" == *= ]] || compopt +o nospace\n            fi\n\n            # complete after --flag=abc\n            if [[ $cur == *=* ]]; then\n                if [[ $(type -t compopt) = \"builtin\" ]]; then\n                    compopt +o nospace\n                fi\n\n                local index flag\n                flag=\"${cur%%=*}\"\n                __%[1]s_index_of_word \"${flag}\" \"${flags_with_completion[@]}\"\n                COMPREPLY=()\n                if [[ ${index} -ge 0 ]]; then\n                    PREFIX=\"\"\n                    cur=\"${cur#*=}\"\n                    ${flags_completion[${index}]}\n                    if [ -n \"${ZSH_VERSION:-}\" ]; then\n                        # zsh completion needs --flag= prefix\n                        eval \"COMPREPLY=( \\\"\\${COMPREPLY[@]/#/${flag}=}\\\" )\"\n                    fi\n                fi\n            fi\n\n            if [[ -z \"${flag_parsing_disabled}\" ]]; then\n                # If flag parsing is enabled, we have completed the flags and can return.\n                # If flag parsing is disabled, we may not know all (or any) of the flags, so we fallthrough\n                # to possibly call handle_go_custom_completion.\n                return 0;\n            fi\n            ;;\n    esac\n\n    # check if we are handling a flag with special work handling\n    local index\n    __%[1]s_index_of_word \"${prev}\" \"${flags_with_completion[@]}\"\n    if [[ ${index} -ge 0 ]]; then\n        ${flags_completion[${index}]}\n        return\n    fi\n\n    # we are parsing a flag and don't have a special handler, no completion\n    if [[ ${cur} != \"${words[cword]}\" ]]; then\n        return\n    fi\n\n    local completions\n    completions=(\"${commands[@]}\")\n    if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then\n        completions+=(\"${must_have_one_noun[@]}\")\n    elif [[ -n \"${has_completion_function}\" ]]; then\n        # if a go completion function is provided, defer to that function\n        __%[1]s_handle_go_custom_completion\n    fi\n    if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then\n        completions+=(\"${must_have_one_flag[@]}\")\n    fi\n    while IFS='' read -r comp; do\n        COMPREPLY+=(\"$comp\")\n    done < <(compgen -W \"${completions[*]}\" -- \"$cur\")\n\n    if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then\n        while IFS='' read -r comp; do\n            COMPREPLY+=(\"$comp\")\n        done < <(compgen -W \"${noun_aliases[*]}\" -- \"$cur\")\n    fi\n\n    if [[ ${#COMPREPLY[@]} -eq 0 ]]; then\n        if declare -F __%[1]s_custom_func >/dev/null; then\n            # try command name qualified custom func\n            __%[1]s_custom_func\n        else\n            # otherwise fall back to unqualified for compatibility\n            declare -F __custom_func >/dev/null && __custom_func\n        fi\n    fi\n\n    # available in bash-completion >= 2, not always present on macOS\n    if declare -F __ltrim_colon_completions >/dev/null; then\n        __ltrim_colon_completions \"$cur\"\n    fi\n\n    # If there is only 1 completion and it is a flag with an = it will be completed\n    # but we don't want a space after the =\n    if [[ \"${#COMPREPLY[@]}\" -eq \"1\" ]] && [[ $(type -t compopt) = \"builtin\" ]] && [[ \"${COMPREPLY[0]}\" == --*= ]]; then\n       compopt -o nospace\n    fi\n}\n\n# The arguments should be in the form \"ext1|ext2|extn\"\n__%[1]s_handle_filename_extension_flag()\n{\n    local ext=\"$1\"\n    _filedir \"@(${ext})\"\n}\n\n__%[1]s_handle_subdirs_in_dir_flag()\n{\n    local dir=\"$1\"\n    pushd \"${dir}\" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return\n}\n\n__%[1]s_handle_flag()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    # if a command required a flag, and we found it, unset must_have_one_flag()\n    local flagname=${words[c]}\n    local flagvalue=\"\"\n    # if the word contained an =\n    if [[ ${words[c]} == *\"=\"* ]]; then\n        flagvalue=${flagname#*=} # take in as flagvalue after the =\n        flagname=${flagname%%=*} # strip everything after the =\n        flagname=\"${flagname}=\" # but put the = back\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: looking for ${flagname}\"\n    if __%[1]s_contains_word \"${flagname}\" \"${must_have_one_flag[@]}\"; then\n        must_have_one_flag=()\n    fi\n\n    # if you set a flag which only applies to this command, don't show subcommands\n    if __%[1]s_contains_word \"${flagname}\" \"${local_nonpersistent_flags[@]}\"; then\n      commands=()\n    fi\n\n    # keep flag value with flagname as flaghash\n    # flaghash variable is an associative array which is only supported in bash > 3.\n    if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then\n        if [ -n \"${flagvalue}\" ] ; then\n            flaghash[${flagname}]=${flagvalue}\n        elif [ -n \"${words[ $((c+1)) ]}\" ] ; then\n            flaghash[${flagname}]=${words[ $((c+1)) ]}\n        else\n            flaghash[${flagname}]=\"true\" # pad \"true\" for bool flag\n        fi\n    fi\n\n    # skip the argument to a two word flag\n    if [[ ${words[c]} != *\"=\"* ]] && __%[1]s_contains_word \"${words[c]}\" \"${two_word_flags[@]}\"; then\n        __%[1]s_debug \"${FUNCNAME[0]}: found a flag ${words[c]}, skip the next argument\"\n        c=$((c+1))\n        # if we are looking for a flags value, don't show commands\n        if [[ $c -eq $cword ]]; then\n            commands=()\n        fi\n    fi\n\n    c=$((c+1))\n\n}\n\n__%[1]s_handle_noun()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    if __%[1]s_contains_word \"${words[c]}\" \"${must_have_one_noun[@]}\"; then\n        must_have_one_noun=()\n    elif __%[1]s_contains_word \"${words[c]}\" \"${noun_aliases[@]}\"; then\n        must_have_one_noun=()\n    fi\n\n    nouns+=(\"${words[c]}\")\n    c=$((c+1))\n}\n\n__%[1]s_handle_command()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    local next_command\n    if [[ -n ${last_command} ]]; then\n        next_command=\"_${last_command}_${words[c]//:/__}\"\n    else\n        if [[ $c -eq 0 ]]; then\n            next_command=\"_%[1]s_root_command\"\n        else\n            next_command=\"_${words[c]//:/__}\"\n        fi\n    fi\n    c=$((c+1))\n    __%[1]s_debug \"${FUNCNAME[0]}: looking for ${next_command}\"\n    declare -F \"$next_command\" >/dev/null && $next_command\n}\n\n__%[1]s_handle_word()\n{\n    if [[ $c -ge $cword ]]; then\n        __%[1]s_handle_reply\n        return\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n    if [[ \"${words[c]}\" == -* ]]; then\n        __%[1]s_handle_flag\n    elif __%[1]s_contains_word \"${words[c]}\" \"${commands[@]}\"; then\n        __%[1]s_handle_command\n    elif [[ $c -eq 0 ]]; then\n        __%[1]s_handle_command\n    elif __%[1]s_contains_word \"${words[c]}\" \"${command_aliases[@]}\"; then\n        # aliashash variable is an associative array which is only supported in bash > 3.\n        if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then\n            words[c]=${aliashash[${words[c]}]}\n            __%[1]s_handle_command\n        else\n            __%[1]s_handle_noun\n        fi\n    else\n        __%[1]s_handle_noun\n    fi\n    __%[1]s_handle_word\n}\n\n`, name, ShellCompNoDescRequestCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, activeHelpEnvVar(name)))\n}\n\nfunc writePostscript(buf io.StringWriter, name string) {\n\tname = strings.ReplaceAll(name, \":\", \"__\")\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"__start_%s()\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`{\n    local cur prev words cword split\n    declare -A flaghash 2>/dev/null || :\n    declare -A aliashash 2>/dev/null || :\n    if declare -F _init_completion >/dev/null 2>&1; then\n        _init_completion -s || return\n    else\n        __%[1]s_init_completion -n \"=\" || return\n    fi\n\n    local c=0\n    local flag_parsing_disabled=\n    local flags=()\n    local two_word_flags=()\n    local local_nonpersistent_flags=()\n    local flags_with_completion=()\n    local flags_completion=()\n    local commands=(\"%[1]s\")\n    local command_aliases=()\n    local must_have_one_flag=()\n    local must_have_one_noun=()\n    local has_completion_function=\"\"\n    local last_command=\"\"\n    local nouns=()\n    local noun_aliases=()\n\n    __%[1]s_handle_word\n}\n\n`, name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`if [[ $(type -t compopt) = \"builtin\" ]]; then\n    complete -o default -F __start_%s %s\nelse\n    complete -o default -o nospace -F __start_%s %s\nfi\n\n`, name, name, name, name))\n\tWriteStringAndCheck(buf, \"# ex: ts=4 sw=4 et filetype=sh\\n\")\n}\n\nfunc writeCommands(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    commands=()\\n\")\n\tfor _, c := range cmd.Commands() {\n\t\tif !c.IsAvailableCommand() && c != cmd.helpCommand {\n\t\t\tcontinue\n\t\t}\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    commands+=(%q)\\n\", c.Name()))\n\t\twriteCmdAliases(buf, c)\n\t}\n\tWriteStringAndCheck(buf, \"\\n\")\n}\n\nfunc writeFlagHandler(buf io.StringWriter, name string, annotations map[string][]string, cmd *Command) {\n\tfor key, value := range annotations {\n\t\tswitch key {\n\t\tcase BashCompFilenameExt:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tvar ext string\n\t\t\tif len(value) > 0 {\n\t\t\t\text = fmt.Sprintf(\"__%s_handle_filename_extension_flag \", cmd.Root().Name()) + strings.Join(value, \"|\")\n\t\t\t} else {\n\t\t\t\text = \"_filedir\"\n\t\t\t}\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", ext))\n\t\tcase BashCompCustom:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tif len(value) > 0 {\n\t\t\t\thandlers := strings.Join(value, \"; \")\n\t\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", handlers))\n\t\t\t} else {\n\t\t\t\tWriteStringAndCheck(buf, \"    flags_completion+=(:)\\n\")\n\t\t\t}\n\t\tcase BashCompSubdirsInDir:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tvar ext string\n\t\t\tif len(value) == 1 {\n\t\t\t\text = fmt.Sprintf(\"__%s_handle_subdirs_in_dir_flag \", cmd.Root().Name()) + value[0]\n\t\t\t} else {\n\t\t\t\text = \"_filedir -d\"\n\t\t\t}\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", ext))\n\t\t}\n\t}\n}\n\nconst cbn = \"\\\")\\n\"\n\nfunc writeShortFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {\n\tname := flag.Shorthand\n\tformat := \"    \"\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"two_word_\"\n\t}\n\tformat += \"flags+=(\\\"-%s\" + cbn\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\twriteFlagHandler(buf, \"-\"+name, flag.Annotations, cmd)\n}\n\nfunc writeFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {\n\tname := flag.Name\n\tformat := \"    flags+=(\\\"--%s\"\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"=\"\n\t}\n\tformat += cbn\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat = \"    two_word_flags+=(\\\"--%s\" + cbn\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\t}\n\twriteFlagHandler(buf, \"--\"+name, flag.Annotations, cmd)\n}\n\nfunc writeLocalNonPersistentFlag(buf io.StringWriter, flag *pflag.Flag) {\n\tname := flag.Name\n\tformat := \"    local_nonpersistent_flags+=(\\\"--%[1]s\" + cbn\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"    local_nonpersistent_flags+=(\\\"--%[1]s=\" + cbn\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\tif len(flag.Shorthand) > 0 {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    local_nonpersistent_flags+=(\\\"-%s\\\")\\n\", flag.Shorthand))\n\t}\n}\n\n// prepareCustomAnnotationsForFlags setup annotations for go completions for registered flags\nfunc prepareCustomAnnotationsForFlags(cmd *Command) {\n\tflagCompletionMutex.RLock()\n\tdefer flagCompletionMutex.RUnlock()\n\tfor flag := range flagCompletionFunctions {\n\t\t// Make sure the completion script calls the __*_go_custom_completion function for\n\t\t// every registered flag.  We need to do this here (and not when the flag was registered\n\t\t// for completion) so that we can know the root command name for the prefix\n\t\t// of __<prefix>_go_custom_completion\n\t\tif flag.Annotations == nil {\n\t\t\tflag.Annotations = map[string][]string{}\n\t\t}\n\t\tflag.Annotations[BashCompCustom] = []string{fmt.Sprintf(\"__%[1]s_handle_go_custom_completion\", cmd.Root().Name())}\n\t}\n}\n\nfunc writeFlags(buf io.StringWriter, cmd *Command) {\n\tprepareCustomAnnotationsForFlags(cmd)\n\tWriteStringAndCheck(buf, `    flags=()\n    two_word_flags=()\n    local_nonpersistent_flags=()\n    flags_with_completion=()\n    flags_completion=()\n\n`)\n\n\tif cmd.DisableFlagParsing {\n\t\tWriteStringAndCheck(buf, \"    flag_parsing_disabled=1\\n\")\n\t}\n\n\tlocalNonPersistentFlags := cmd.LocalNonPersistentFlags()\n\tcmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\twriteFlag(buf, flag, cmd)\n\t\tif len(flag.Shorthand) > 0 {\n\t\t\twriteShortFlag(buf, flag, cmd)\n\t\t}\n\t\t// localNonPersistentFlags are used to stop the completion of subcommands when one is set\n\t\t// if TraverseChildren is true we should allow to complete subcommands\n\t\tif localNonPersistentFlags.Lookup(flag.Name) != nil && !cmd.Root().TraverseChildren {\n\t\t\twriteLocalNonPersistentFlag(buf, flag)\n\t\t}\n\t})\n\tcmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\twriteFlag(buf, flag, cmd)\n\t\tif len(flag.Shorthand) > 0 {\n\t\t\twriteShortFlag(buf, flag, cmd)\n\t\t}\n\t})\n\n\tWriteStringAndCheck(buf, \"\\n\")\n}\n\nfunc writeRequiredFlag(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    must_have_one_flag=()\\n\")\n\tflags := cmd.NonInheritedFlags()\n\tflags.VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\tif _, ok := flag.Annotations[BashCompOneRequiredFlag]; ok {\n\t\t\tformat := \"    must_have_one_flag+=(\\\"--%s\"\n\t\t\tif flag.Value.Type() != \"bool\" {\n\t\t\t\tformat += \"=\"\n\t\t\t}\n\t\t\tformat += cbn\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(format, flag.Name))\n\n\t\t\tif len(flag.Shorthand) > 0 {\n\t\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    must_have_one_flag+=(\\\"-%s\"+cbn, flag.Shorthand))\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc writeRequiredNouns(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    must_have_one_noun=()\\n\")\n\tsort.Strings(cmd.ValidArgs)\n\tfor _, value := range cmd.ValidArgs {\n\t\t// Remove any description that may be included following a tab character.\n\t\t// Descriptions are not supported by bash completion.\n\t\tvalue = strings.SplitN(value, \"\\t\", 2)[0]\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    must_have_one_noun+=(%q)\\n\", value))\n\t}\n\tif cmd.ValidArgsFunction != nil {\n\t\tWriteStringAndCheck(buf, \"    has_completion_function=1\\n\")\n\t}\n}\n\nfunc writeCmdAliases(buf io.StringWriter, cmd *Command) {\n\tif len(cmd.Aliases) == 0 {\n\t\treturn\n\t}\n\n\tsort.Strings(cmd.Aliases)\n\n\tWriteStringAndCheck(buf, fmt.Sprint(`    if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then`, \"\\n\"))\n\tfor _, value := range cmd.Aliases {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"        command_aliases+=(%q)\\n\", value))\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"        aliashash[%q]=%q\\n\", value, cmd.Name()))\n\t}\n\tWriteStringAndCheck(buf, `    fi`)\n\tWriteStringAndCheck(buf, \"\\n\")\n}\nfunc writeArgAliases(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    noun_aliases=()\\n\")\n\tsort.Strings(cmd.ArgAliases)\n\tfor _, value := range cmd.ArgAliases {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    noun_aliases+=(%q)\\n\", value))\n\t}\n}\n\nfunc gen(buf io.StringWriter, cmd *Command) {\n\tfor _, c := range cmd.Commands() {\n\t\tif !c.IsAvailableCommand() && c != cmd.helpCommand {\n\t\t\tcontinue\n\t\t}\n\t\tgen(buf, c)\n\t}\n\tcommandName := cmd.CommandPath()\n\tcommandName = strings.ReplaceAll(commandName, \" \", \"_\")\n\tcommandName = strings.ReplaceAll(commandName, \":\", \"__\")\n\n\tif cmd.Root() == cmd {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"_%s_root_command()\\n{\\n\", commandName))\n\t} else {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"_%s()\\n{\\n\", commandName))\n\t}\n\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"    last_command=%q\\n\", commandName))\n\tWriteStringAndCheck(buf, \"\\n\")\n\tWriteStringAndCheck(buf, \"    command_aliases=()\\n\")\n\tWriteStringAndCheck(buf, \"\\n\")\n\n\twriteCommands(buf, cmd)\n\twriteFlags(buf, cmd)\n\twriteRequiredFlag(buf, cmd)\n\twriteRequiredNouns(buf, cmd)\n\twriteArgAliases(buf, cmd)\n\tWriteStringAndCheck(buf, \"}\\n\\n\")\n}\n\n// GenBashCompletion generates bash completion file and writes to the passed writer.\nfunc (c *Command) GenBashCompletion(w io.Writer) error {\n\tbuf := new(bytes.Buffer)\n\twritePreamble(buf, c.Name())\n\tif len(c.BashCompletionFunction) > 0 {\n\t\tbuf.WriteString(c.BashCompletionFunction + \"\\n\")\n\t}\n\tgen(buf, c)\n\twritePostscript(buf, c.Name())\n\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc nonCompletableFlag(flag *pflag.Flag) bool {\n\treturn flag.Hidden || len(flag.Deprecated) > 0\n}\n\n// GenBashCompletionFile generates bash completion file.\nfunc (c *Command) GenBashCompletionFile(filename string) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenBashCompletion(outFile)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completionsV2.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\nfunc (c *Command) genBashCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenBashComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc genBashComp(buf io.StringWriter, name string, includeDesc bool) {\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\n\tWriteStringAndCheck(buf, fmt.Sprintf(`# bash completion V2 for %-36[1]s -*- shell-script -*-\n\n__%[1]s_debug()\n{\n    if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then\n        echo \"$*\" >> \"${BASH_COMP_DEBUG_FILE}\"\n    fi\n}\n\n# Macs have bash3 for which the bash-completion package doesn't include\n# _init_completion. This is a minimal version of that function.\n__%[1]s_init_completion()\n{\n    COMPREPLY=()\n    _get_comp_words_by_ref \"$@\" cur prev words cword\n}\n\n# This function calls the %[1]s program to obtain the completion\n# results and the directive.  It fills the 'out' and 'directive' vars.\n__%[1]s_get_completion_results() {\n    local requestComp lastParam lastChar args\n\n    # Prepare the command to request completions for the program.\n    # Calling ${words[0]} instead of directly %[1]s allows handling aliases\n    args=(\"${words[@]:1}\")\n    requestComp=\"${words[0]} %[2]s ${args[*]}\"\n\n    lastParam=${words[$((${#words[@]}-1))]}\n    lastChar=${lastParam:$((${#lastParam}-1)):1}\n    __%[1]s_debug \"lastParam ${lastParam}, lastChar ${lastChar}\"\n\n    if [[ -z ${cur} && ${lastChar} != = ]]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        requestComp=\"${requestComp} ''\"\n    fi\n\n    # When completing a flag with an = (e.g., %[1]s -n=<TAB>)\n    # bash focuses on the part after the =, so we need to remove\n    # the flag part from $cur\n    if [[ ${cur} == -*=* ]]; then\n        cur=\"${cur#*=}\"\n    fi\n\n    __%[1]s_debug \"Calling ${requestComp}\"\n    # Use eval to handle any environment variables and such\n    out=$(eval \"${requestComp}\" 2>/dev/null)\n\n    # Extract the directive integer at the very end of the output following a colon (:)\n    directive=${out##*:}\n    # Remove the directive\n    out=${out%%:*}\n    if [[ ${directive} == \"${out}\" ]]; then\n        # There is not directive specified\n        directive=0\n    fi\n    __%[1]s_debug \"The completion directive is: ${directive}\"\n    __%[1]s_debug \"The completions are: ${out}\"\n}\n\n__%[1]s_process_completion_results() {\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n    local shellCompDirectiveKeepOrder=%[8]d\n\n    if (((directive & shellCompDirectiveError) != 0)); then\n        # Error code.  No completion.\n        __%[1]s_debug \"Received error from custom completion go code\"\n        return\n    else\n        if (((directive & shellCompDirectiveNoSpace) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                __%[1]s_debug \"Activating no space\"\n                compopt -o nospace\n            else\n                __%[1]s_debug \"No space directive not supported in this version of bash\"\n            fi\n        fi\n        if (((directive & shellCompDirectiveKeepOrder) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                # no sort isn't supported for bash less than < 4.4\n                if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then\n                    __%[1]s_debug \"No sort directive not supported in this version of bash\"\n                else\n                    __%[1]s_debug \"Activating keep order\"\n                    compopt -o nosort\n                fi\n            else\n                __%[1]s_debug \"No sort directive not supported in this version of bash\"\n            fi\n        fi\n        if (((directive & shellCompDirectiveNoFileComp) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                __%[1]s_debug \"Activating no file completion\"\n                compopt +o default\n            else\n                __%[1]s_debug \"No file completion directive not supported in this version of bash\"\n            fi\n        fi\n    fi\n\n    # Separate activeHelp from normal completions\n    local completions=()\n    local activeHelp=()\n    __%[1]s_extract_activeHelp\n\n    if (((directive & shellCompDirectiveFilterFileExt) != 0)); then\n        # File extension filtering\n        local fullFilter=\"\" filter filteringCmd\n\n        # Do not use quotes around the $completions variable or else newline\n        # characters will be kept.\n        for filter in ${completions[*]}; do\n            fullFilter+=\"$filter|\"\n        done\n\n        filteringCmd=\"_filedir $fullFilter\"\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        $filteringCmd\n    elif (((directive & shellCompDirectiveFilterDirs) != 0)); then\n        # File completion for directories only\n\n        local subdir\n        subdir=${completions[0]}\n        if [[ -n $subdir ]]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            pushd \"$subdir\" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return\n        else\n            __%[1]s_debug \"Listing directories in .\"\n            _filedir -d\n        fi\n    else\n        __%[1]s_handle_completion_types\n    fi\n\n    __%[1]s_handle_special_char \"$cur\" :\n    __%[1]s_handle_special_char \"$cur\" =\n\n    # Print the activeHelp statements before we finish\n    __%[1]s_handle_activeHelp\n}\n\n__%[1]s_handle_activeHelp() {\n    # Print the activeHelp statements\n    if ((${#activeHelp[*]} != 0)); then\n        if [ -z $COMP_TYPE ]; then\n            # Bash v3 does not set the COMP_TYPE variable.\n            printf \"\\n\";\n            printf \"%%s\\n\" \"${activeHelp[@]}\"\n            printf \"\\n\"\n            __%[1]s_reprint_commandLine\n            return\n        fi\n\n        # Only print ActiveHelp on the second TAB press\n        if [ $COMP_TYPE -eq 63 ]; then\n            printf \"\\n\"\n            printf \"%%s\\n\" \"${activeHelp[@]}\"\n\n            if ((${#COMPREPLY[*]} == 0)); then\n                # When there are no completion choices from the program, file completion\n                # may kick in if the program has not disabled it; in such a case, we want\n                # to know if any files will match what the user typed, so that we know if\n                # there will be completions presented, so that we know how to handle ActiveHelp.\n                # To find out, we actually trigger the file completion ourselves;\n                # the call to _filedir will fill COMPREPLY if files match.\n                if (((directive & shellCompDirectiveNoFileComp) == 0)); then\n                    __%[1]s_debug \"Listing files\"\n                    _filedir\n                fi\n            fi\n\n            if ((${#COMPREPLY[*]} != 0)); then\n                # If there are completion choices to be shown, print a delimiter.\n                # Re-printing the command-line will automatically be done\n                # by the shell when it prints the completion choices.\n                printf -- \"--\"\n            else\n                # When there are no completion choices at all, we need\n                # to re-print the command-line since the shell will\n                # not be doing it itself.\n                __%[1]s_reprint_commandLine\n            fi\n        elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then\n            # For completion type: menu-complete/menu-complete-backward and insert-completions\n            # the completions are immediately inserted into the command-line, so we first\n            # print the activeHelp message and reprint the command-line since the shell won't.\n            printf \"\\n\"\n            printf \"%%s\\n\" \"${activeHelp[@]}\"\n\n            __%[1]s_reprint_commandLine\n        fi\n    fi\n}\n\n__%[1]s_reprint_commandLine() {\n    # The prompt format is only available from bash 4.4.\n    # We test if it is available before using it.\n    if (x=${PS1@P}) 2> /dev/null; then\n        printf \"%%s\" \"${PS1@P}${COMP_LINE[@]}\"\n    else\n        # Can't print the prompt.  Just print the\n        # text the user had typed, it is workable enough.\n        printf \"%%s\" \"${COMP_LINE[@]}\"\n    fi\n}\n\n# Separate activeHelp lines from real completions.\n# Fills the $activeHelp and $completions arrays.\n__%[1]s_extract_activeHelp() {\n    local activeHelpMarker=\"%[9]s\"\n    local endIndex=${#activeHelpMarker}\n\n    while IFS='' read -r comp; do\n        [[ -z $comp ]] && continue\n\n        if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then\n            comp=${comp:endIndex}\n            __%[1]s_debug \"ActiveHelp found: $comp\"\n            if [[ -n $comp ]]; then\n                activeHelp+=(\"$comp\")\n            fi\n        else\n            # Not an activeHelp line but a normal completion\n            completions+=(\"$comp\")\n        fi\n    done <<<\"${out}\"\n}\n\n__%[1]s_handle_completion_types() {\n    __%[1]s_debug \"__%[1]s_handle_completion_types: COMP_TYPE is $COMP_TYPE\"\n\n    case $COMP_TYPE in\n    37|42)\n        # Type: menu-complete/menu-complete-backward and insert-completions\n        # If the user requested inserting one completion at a time, or all\n        # completions at once on the command-line we must remove the descriptions.\n        # https://github.com/spf13/cobra/issues/1508\n\n        # If there are no completions, we don't need to do anything\n        (( ${#completions[@]} == 0 )) && return 0\n\n        local tab=$'\\t'\n\n        # Strip any description and escape the completion to handled special characters\n        IFS=$'\\n' read -ra completions -d '' < <(printf \"%%q\\n\" \"${completions[@]%%%%$tab*}\")\n\n        # Only consider the completions that match\n        IFS=$'\\n' read -ra COMPREPLY -d '' < <(IFS=$'\\n'; compgen -W \"${completions[*]}\" -- \"${cur}\")\n\n        # compgen looses the escaping so we need to escape all completions again since they will\n        # all be inserted on the command-line.\n        IFS=$'\\n' read -ra COMPREPLY -d '' < <(printf \"%%q\\n\" \"${COMPREPLY[@]}\")\n        ;;\n\n    *)\n        # Type: complete (normal completion)\n        __%[1]s_handle_standard_completion_case\n        ;;\n    esac\n}\n\n__%[1]s_handle_standard_completion_case() {\n    local tab=$'\\t'\n\n    # If there are no completions, we don't need to do anything\n    (( ${#completions[@]} == 0 )) && return 0\n\n    # Short circuit to optimize if we don't have descriptions\n    if [[ \"${completions[*]}\" != *$tab* ]]; then\n        # First, escape the completions to handle special characters\n        IFS=$'\\n' read -ra completions -d '' < <(printf \"%%q\\n\" \"${completions[@]}\")\n        # Only consider the completions that match what the user typed\n        IFS=$'\\n' read -ra COMPREPLY -d '' < <(IFS=$'\\n'; compgen -W \"${completions[*]}\" -- \"${cur}\")\n\n        # compgen looses the escaping so, if there is only a single completion, we need to\n        # escape it again because it will be inserted on the command-line.  If there are multiple\n        # completions, we don't want to escape them because they will be printed in a list\n        # and we don't want to show escape characters in that list.\n        if (( ${#COMPREPLY[@]} == 1 )); then\n            COMPREPLY[0]=$(printf \"%%q\" \"${COMPREPLY[0]}\")\n        fi\n        return 0\n    fi\n\n    local longest=0\n    local compline\n    # Look for the longest completion so that we can format things nicely\n    while IFS='' read -r compline; do\n        [[ -z $compline ]] && continue\n\n        # Before checking if the completion matches what the user typed,\n        # we need to strip any description and escape the completion to handle special\n        # characters because those escape characters are part of what the user typed.\n        # Don't call \"printf\" in a sub-shell because it will be much slower\n        # since we are in a loop.\n        printf -v comp \"%%q\" \"${compline%%%%$tab*}\" &>/dev/null || comp=$(printf \"%%q\" \"${compline%%%%$tab*}\")\n\n        # Only consider the completions that match\n        [[ $comp == \"$cur\"* ]] || continue\n\n        # The completions matches.  Add it to the list of full completions including\n        # its description.  We don't escape the completion because it may get printed\n        # in a list if there are more than one and we don't want show escape characters\n        # in that list.\n        COMPREPLY+=(\"$compline\")\n\n        # Strip any description before checking the length, and again, don't escape\n        # the completion because this length is only used when printing the completions\n        # in a list and we don't want show escape characters in that list.\n        comp=${compline%%%%$tab*}\n        if ((${#comp}>longest)); then\n            longest=${#comp}\n        fi\n    done < <(printf \"%%s\\n\" \"${completions[@]}\")\n\n    # If there is a single completion left, remove the description text and escape any special characters\n    if ((${#COMPREPLY[*]} == 1)); then\n        __%[1]s_debug \"COMPREPLY[0]: ${COMPREPLY[0]}\"\n        COMPREPLY[0]=$(printf \"%%q\" \"${COMPREPLY[0]%%%%$tab*}\")\n        __%[1]s_debug \"Removed description from single completion, which is now: ${COMPREPLY[0]}\"\n    else\n        # Format the descriptions\n        __%[1]s_format_comp_descriptions $longest\n    fi\n}\n\n__%[1]s_handle_special_char()\n{\n    local comp=\"$1\"\n    local char=$2\n    if [[ \"$comp\" == *${char}* && \"$COMP_WORDBREAKS\" == *${char}* ]]; then\n        local word=${comp%%\"${comp##*${char}}\"}\n        local idx=${#COMPREPLY[*]}\n        while ((--idx >= 0)); do\n            COMPREPLY[idx]=${COMPREPLY[idx]#\"$word\"}\n        done\n    fi\n}\n\n__%[1]s_format_comp_descriptions()\n{\n    local tab=$'\\t'\n    local comp desc maxdesclength\n    local longest=$1\n\n    local i ci\n    for ci in ${!COMPREPLY[*]}; do\n        comp=${COMPREPLY[ci]}\n        # Properly format the description string which follows a tab character if there is one\n        if [[ \"$comp\" == *$tab* ]]; then\n            __%[1]s_debug \"Original comp: $comp\"\n            desc=${comp#*$tab}\n            comp=${comp%%%%$tab*}\n\n            # $COLUMNS stores the current shell width.\n            # Remove an extra 4 because we add 2 spaces and 2 parentheses.\n            maxdesclength=$(( COLUMNS - longest - 4 ))\n\n            # Make sure we can fit a description of at least 8 characters\n            # if we are to align the descriptions.\n            if ((maxdesclength > 8)); then\n                # Add the proper number of spaces to align the descriptions\n                for ((i = ${#comp} ; i < longest ; i++)); do\n                    comp+=\" \"\n                done\n            else\n                # Don't pad the descriptions so we can fit more text after the completion\n                maxdesclength=$(( COLUMNS - ${#comp} - 4 ))\n            fi\n\n            # If there is enough space for any description text,\n            # truncate the descriptions that are too long for the shell width\n            if ((maxdesclength > 0)); then\n                if ((${#desc} > maxdesclength)); then\n                    desc=${desc:0:$(( maxdesclength - 1 ))}\n                    desc+=\"…\"\n                fi\n                comp+=\"  ($desc)\"\n            fi\n            COMPREPLY[ci]=$comp\n            __%[1]s_debug \"Final comp: $comp\"\n        fi\n    done\n}\n\n__start_%[1]s()\n{\n    local cur prev words cword split\n\n    COMPREPLY=()\n\n    # Call _init_completion from the bash-completion package\n    # to prepare the arguments properly\n    if declare -F _init_completion >/dev/null 2>&1; then\n        _init_completion -n =: || return\n    else\n        __%[1]s_init_completion -n =: || return\n    fi\n\n    __%[1]s_debug\n    __%[1]s_debug \"========= starting completion logic ==========\"\n    __%[1]s_debug \"cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $cword location, so we need\n    # to truncate the command-line ($words) up to the $cword location.\n    words=(\"${words[@]:0:$cword+1}\")\n    __%[1]s_debug \"Truncated words[*]: ${words[*]},\"\n\n    local out directive\n    __%[1]s_get_completion_results\n    __%[1]s_process_completion_results\n}\n\nif [[ $(type -t compopt) = \"builtin\" ]]; then\n    complete -o default -F __start_%[1]s %[1]s\nelse\n    complete -o default -o nospace -F __start_%[1]s %[1]s\nfi\n\n# ex: ts=4 sw=4 et filetype=sh\n`, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder,\n\t\tactiveHelpMarker))\n}\n\n// GenBashCompletionFileV2 generates Bash completion version 2.\nfunc (c *Command) GenBashCompletionFileV2(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenBashCompletionV2(outFile, includeDesc)\n}\n\n// GenBashCompletionV2 generates Bash completion file version 2\n// and writes it to the passed writer.\nfunc (c *Command) GenBashCompletionV2(w io.Writer, includeDesc bool) error {\n\treturn c.genBashCompletion(w, includeDesc)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/cobra.go",
    "content": "// Copyright 2013-2023 The Cobra 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// Commands similar to git, go tools and other modern CLI tools\n// inspired by go, go-Commander, gh and subcommand\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"text/template\"\n\t\"time\"\n\t\"unicode\"\n)\n\nvar templateFuncs = template.FuncMap{\n\t\"trim\":                    strings.TrimSpace,\n\t\"trimRightSpace\":          trimRightSpace,\n\t\"trimTrailingWhitespaces\": trimRightSpace,\n\t\"appendIfNotPresent\":      appendIfNotPresent,\n\t\"rpad\":                    rpad,\n\t\"gt\":                      Gt,\n\t\"eq\":                      Eq,\n}\n\nvar initializers []func()\nvar finalizers []func()\n\nconst (\n\tdefaultPrefixMatching   = false\n\tdefaultCommandSorting   = true\n\tdefaultCaseInsensitive  = false\n\tdefaultTraverseRunHooks = false\n)\n\n// EnablePrefixMatching allows setting automatic prefix matching. Automatic prefix matching can be a dangerous thing\n// to automatically enable in CLI tools.\n// Set this to true to enable it.\nvar EnablePrefixMatching = defaultPrefixMatching\n\n// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default.\n// To disable sorting, set it to false.\nvar EnableCommandSorting = defaultCommandSorting\n\n// EnableCaseInsensitive allows case-insensitive commands names. (case sensitive by default)\nvar EnableCaseInsensitive = defaultCaseInsensitive\n\n// EnableTraverseRunHooks executes persistent pre-run and post-run hooks from all parents.\n// By default this is disabled, which means only the first run hook to be found is executed.\nvar EnableTraverseRunHooks = defaultTraverseRunHooks\n\n// MousetrapHelpText enables an information splash screen on Windows\n// if the CLI is started from explorer.exe.\n// To disable the mousetrap, just set this variable to blank string (\"\").\n// Works only on Microsoft Windows.\nvar MousetrapHelpText = `This is a command line tool.\n\nYou need to open cmd.exe and run it from there.\n`\n\n// MousetrapDisplayDuration controls how long the MousetrapHelpText message is displayed on Windows\n// if the CLI is started from explorer.exe. Set to 0 to wait for the return key to be pressed.\n// To disable the mousetrap, just set MousetrapHelpText to blank string (\"\").\n// Works only on Microsoft Windows.\nvar MousetrapDisplayDuration = 5 * time.Second\n\n// AddTemplateFunc adds a template function that's available to Usage and Help\n// template generation.\nfunc AddTemplateFunc(name string, tmplFunc interface{}) {\n\ttemplateFuncs[name] = tmplFunc\n}\n\n// AddTemplateFuncs adds multiple template functions that are available to Usage and\n// Help template generation.\nfunc AddTemplateFuncs(tmplFuncs template.FuncMap) {\n\tfor k, v := range tmplFuncs {\n\t\ttemplateFuncs[k] = v\n\t}\n}\n\n// OnInitialize sets the passed functions to be run when each command's\n// Execute method is called.\nfunc OnInitialize(y ...func()) {\n\tinitializers = append(initializers, y...)\n}\n\n// OnFinalize sets the passed functions to be run when each command's\n// Execute method is terminated.\nfunc OnFinalize(y ...func()) {\n\tfinalizers = append(finalizers, y...)\n}\n\n// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans,\n// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as\n// ints and then compared.\nfunc Gt(a interface{}, b interface{}) bool {\n\tvar left, right int64\n\tav := reflect.ValueOf(a)\n\n\tswitch av.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tleft = int64(av.Len())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tleft = av.Int()\n\tcase reflect.String:\n\t\tleft, _ = strconv.ParseInt(av.String(), 10, 64)\n\t}\n\n\tbv := reflect.ValueOf(b)\n\n\tswitch bv.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tright = int64(bv.Len())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tright = bv.Int()\n\tcase reflect.String:\n\t\tright, _ = strconv.ParseInt(bv.String(), 10, 64)\n\t}\n\n\treturn left > right\n}\n\n// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic.\nfunc Eq(a interface{}, b interface{}) bool {\n\tav := reflect.ValueOf(a)\n\tbv := reflect.ValueOf(b)\n\n\tswitch av.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tpanic(\"Eq called on unsupported type\")\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn av.Int() == bv.Int()\n\tcase reflect.String:\n\t\treturn av.String() == bv.String()\n\t}\n\treturn false\n}\n\nfunc trimRightSpace(s string) string {\n\treturn strings.TrimRightFunc(s, unicode.IsSpace)\n}\n\n// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s.\nfunc appendIfNotPresent(s, stringToAppend string) string {\n\tif strings.Contains(s, stringToAppend) {\n\t\treturn s\n\t}\n\treturn s + \" \" + stringToAppend\n}\n\n// rpad adds padding to the right of a string.\nfunc rpad(s string, padding int) string {\n\tformattedString := fmt.Sprintf(\"%%-%ds\", padding)\n\treturn fmt.Sprintf(formattedString, s)\n}\n\nfunc tmpl(text string) *tmplFunc {\n\treturn &tmplFunc{\n\t\ttmpl: text,\n\t\tfn: func(w io.Writer, data interface{}) error {\n\t\t\tt := template.New(\"top\")\n\t\t\tt.Funcs(templateFuncs)\n\t\t\ttemplate.Must(t.Parse(text))\n\t\t\treturn t.Execute(w, data)\n\t\t},\n\t}\n}\n\n// ld compares two strings and returns the levenshtein distance between them.\nfunc ld(s, t string, ignoreCase bool) int {\n\tif ignoreCase {\n\t\ts = strings.ToLower(s)\n\t\tt = strings.ToLower(t)\n\t}\n\td := make([][]int, len(s)+1)\n\tfor i := range d {\n\t\td[i] = make([]int, len(t)+1)\n\t\td[i][0] = i\n\t}\n\tfor j := range d[0] {\n\t\td[0][j] = j\n\t}\n\tfor j := 1; j <= len(t); j++ {\n\t\tfor i := 1; i <= len(s); i++ {\n\t\t\tif s[i-1] == t[j-1] {\n\t\t\t\td[i][j] = d[i-1][j-1]\n\t\t\t} else {\n\t\t\t\tmin := d[i-1][j]\n\t\t\t\tif d[i][j-1] < min {\n\t\t\t\t\tmin = d[i][j-1]\n\t\t\t\t}\n\t\t\t\tif d[i-1][j-1] < min {\n\t\t\t\t\tmin = d[i-1][j-1]\n\t\t\t\t}\n\t\t\t\td[i][j] = min + 1\n\t\t\t}\n\t\t}\n\n\t}\n\treturn d[len(s)][len(t)]\n}\n\nfunc stringInSlice(a string, list []string) bool {\n\tfor _, b := range list {\n\t\tif b == a {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// CheckErr prints the msg with the prefix 'Error:' and exits with error code 1. If the msg is nil, it does nothing.\nfunc CheckErr(msg interface{}) {\n\tif msg != nil {\n\t\tfmt.Fprintln(os.Stderr, \"Error:\", msg)\n\t\tos.Exit(1)\n\t}\n}\n\n// WriteStringAndCheck writes a string into a buffer, and checks if the error is not nil.\nfunc WriteStringAndCheck(b io.StringWriter, s string) {\n\t_, err := b.WriteString(s)\n\tCheckErr(err)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command.go",
    "content": "// Copyright 2013-2023 The Cobra 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// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.\n// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code.\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\n\tflag \"github.com/spf13/pflag\"\n)\n\nconst (\n\tFlagSetByCobraAnnotation     = \"cobra_annotation_flag_set_by_cobra\"\n\tCommandDisplayNameAnnotation = \"cobra_annotation_command_display_name\"\n\n\thelpFlagName    = \"help\"\n\thelpCommandName = \"help\"\n)\n\n// FParseErrWhitelist configures Flag parse errors to be ignored\ntype FParseErrWhitelist flag.ParseErrorsAllowlist\n\n// Group Structure to manage groups for commands\ntype Group struct {\n\tID    string\n\tTitle string\n}\n\n// Command is just that, a command for your application.\n// E.g.  'go run ...' - 'run' is the command. Cobra requires\n// you to define the usage and description as part of your command\n// definition to ensure usability.\ntype Command struct {\n\t// Use is the one-line usage message.\n\t// Recommended syntax is as follows:\n\t//   [ ] identifies an optional argument. Arguments that are not enclosed in brackets are required.\n\t//   ... indicates that you can specify multiple values for the previous argument.\n\t//   |   indicates mutually exclusive information. You can use the argument to the left of the separator or the\n\t//       argument to the right of the separator. You cannot use both arguments in a single use of the command.\n\t//   { } delimits a set of mutually exclusive arguments when one of the arguments is required. If the arguments are\n\t//       optional, they are enclosed in brackets ([ ]).\n\t// Example: add [-F file | -D dir]... [-f format] profile\n\tUse string\n\n\t// Aliases is an array of aliases that can be used instead of the first word in Use.\n\tAliases []string\n\n\t// SuggestFor is an array of command names for which this command will be suggested -\n\t// similar to aliases but only suggests.\n\tSuggestFor []string\n\n\t// Short is the short description shown in the 'help' output.\n\tShort string\n\n\t// The group id under which this subcommand is grouped in the 'help' output of its parent.\n\tGroupID string\n\n\t// Long is the long message shown in the 'help <this-command>' output.\n\tLong string\n\n\t// Example is examples of how to use the command.\n\tExample string\n\n\t// ValidArgs is list of all valid non-flag arguments that are accepted in shell completions\n\tValidArgs []Completion\n\t// ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion.\n\t// It is a dynamic version of using ValidArgs.\n\t// Only one of ValidArgs and ValidArgsFunction can be used for a command.\n\tValidArgsFunction CompletionFunc\n\n\t// Expected arguments\n\tArgs PositionalArgs\n\n\t// ArgAliases is List of aliases for ValidArgs.\n\t// These are not suggested to the user in the shell completion,\n\t// but accepted if entered manually.\n\tArgAliases []string\n\n\t// BashCompletionFunction is custom bash functions used by the legacy bash autocompletion generator.\n\t// For portability with other shells, it is recommended to instead use ValidArgsFunction\n\tBashCompletionFunction string\n\n\t// Deprecated defines, if this command is deprecated and should print this string when used.\n\tDeprecated string\n\n\t// Annotations are key/value pairs that can be used by applications to identify or\n\t// group commands or set special options.\n\tAnnotations map[string]string\n\n\t// Version defines the version for this command. If this value is non-empty and the command does not\n\t// define a \"version\" flag, a \"version\" boolean flag will be added to the command and, if specified,\n\t// will print content of the \"Version\" variable. A shorthand \"v\" flag will also be added if the\n\t// command does not define one.\n\tVersion string\n\n\t// The *Run functions are executed in the following order:\n\t//   * PersistentPreRun()\n\t//   * PreRun()\n\t//   * Run()\n\t//   * PostRun()\n\t//   * PersistentPostRun()\n\t// All functions get the same args, the arguments after the command name.\n\t// The *PreRun and *PostRun functions will only be executed if the Run function of the current\n\t// command has been declared.\n\t//\n\t// PersistentPreRun: children of this command will inherit and execute.\n\tPersistentPreRun func(cmd *Command, args []string)\n\t// PersistentPreRunE: PersistentPreRun but returns an error.\n\tPersistentPreRunE func(cmd *Command, args []string) error\n\t// PreRun: children of this command will not inherit.\n\tPreRun func(cmd *Command, args []string)\n\t// PreRunE: PreRun but returns an error.\n\tPreRunE func(cmd *Command, args []string) error\n\t// Run: Typically the actual work function. Most commands will only implement this.\n\tRun func(cmd *Command, args []string)\n\t// RunE: Run but returns an error.\n\tRunE func(cmd *Command, args []string) error\n\t// PostRun: run after the Run command.\n\tPostRun func(cmd *Command, args []string)\n\t// PostRunE: PostRun but returns an error.\n\tPostRunE func(cmd *Command, args []string) error\n\t// PersistentPostRun: children of this command will inherit and execute after PostRun.\n\tPersistentPostRun func(cmd *Command, args []string)\n\t// PersistentPostRunE: PersistentPostRun but returns an error.\n\tPersistentPostRunE func(cmd *Command, args []string) error\n\n\t// groups for subcommands\n\tcommandgroups []*Group\n\n\t// args is actual args parsed from flags.\n\targs []string\n\t// flagErrorBuf contains all error messages from pflag.\n\tflagErrorBuf *bytes.Buffer\n\t// flags is full set of flags.\n\tflags *flag.FlagSet\n\t// pflags contains persistent flags.\n\tpflags *flag.FlagSet\n\t// lflags contains local flags.\n\t// This field does not represent internal state, it's used as a cache to optimise LocalFlags function call\n\tlflags *flag.FlagSet\n\t// iflags contains inherited flags.\n\t// This field does not represent internal state, it's used as a cache to optimise InheritedFlags function call\n\tiflags *flag.FlagSet\n\t// parentsPflags is all persistent flags of cmd's parents.\n\tparentsPflags *flag.FlagSet\n\t// globNormFunc is the global normalization function\n\t// that we can use on every pflag set and children commands\n\tglobNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName\n\n\t// usageFunc is usage func defined by user.\n\tusageFunc func(*Command) error\n\t// usageTemplate is usage template defined by user.\n\tusageTemplate *tmplFunc\n\t// flagErrorFunc is func defined by user and it's called when the parsing of\n\t// flags returns an error.\n\tflagErrorFunc func(*Command, error) error\n\t// helpTemplate is help template defined by user.\n\thelpTemplate *tmplFunc\n\t// helpFunc is help func defined by user.\n\thelpFunc func(*Command, []string)\n\t// helpCommand is command with usage 'help'. If it's not defined by user,\n\t// cobra uses default help command.\n\thelpCommand *Command\n\t// helpCommandGroupID is the group id for the helpCommand\n\thelpCommandGroupID string\n\n\t// completionCommandGroupID is the group id for the completion command\n\tcompletionCommandGroupID string\n\n\t// versionTemplate is the version template defined by user.\n\tversionTemplate *tmplFunc\n\n\t// errPrefix is the error message prefix defined by user.\n\terrPrefix string\n\n\t// inReader is a reader defined by the user that replaces stdin\n\tinReader io.Reader\n\t// outWriter is a writer defined by the user that replaces stdout\n\toutWriter io.Writer\n\t// errWriter is a writer defined by the user that replaces stderr\n\terrWriter io.Writer\n\n\t// FParseErrWhitelist flag parse errors to be ignored\n\tFParseErrWhitelist FParseErrWhitelist\n\n\t// CompletionOptions is a set of options to control the handling of shell completion\n\tCompletionOptions CompletionOptions\n\n\t// commandsAreSorted defines, if command slice are sorted or not.\n\tcommandsAreSorted bool\n\t// commandCalledAs is the name or alias value used to call this command.\n\tcommandCalledAs struct {\n\t\tname   string\n\t\tcalled bool\n\t}\n\n\tctx context.Context\n\n\t// commands is the list of commands supported by this program.\n\tcommands []*Command\n\t// parent is a parent command for this command.\n\tparent *Command\n\t// Max lengths of commands' string lengths for use in padding.\n\tcommandsMaxUseLen         int\n\tcommandsMaxCommandPathLen int\n\tcommandsMaxNameLen        int\n\n\t// TraverseChildren parses flags on all parents before executing child command.\n\tTraverseChildren bool\n\n\t// Hidden defines, if this command is hidden and should NOT show up in the list of available commands.\n\tHidden bool\n\n\t// SilenceErrors is an option to quiet errors down stream.\n\tSilenceErrors bool\n\n\t// SilenceUsage is an option to silence usage when an error occurs.\n\tSilenceUsage bool\n\n\t// DisableFlagParsing disables the flag parsing.\n\t// If this is true all flags will be passed to the command as arguments.\n\tDisableFlagParsing bool\n\n\t// DisableAutoGenTag defines, if gen tag (\"Auto generated by spf13/cobra...\")\n\t// will be printed by generating docs for this command.\n\tDisableAutoGenTag bool\n\n\t// DisableFlagsInUseLine will disable the addition of [flags] to the usage\n\t// line of a command when printing help or generating docs\n\tDisableFlagsInUseLine bool\n\n\t// DisableSuggestions disables the suggestions based on Levenshtein distance\n\t// that go along with 'unknown command' messages.\n\tDisableSuggestions bool\n\n\t// SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.\n\t// Must be > 0.\n\tSuggestionsMinimumDistance int\n}\n\n// Context returns underlying command context. If command was executed\n// with ExecuteContext or the context was set with SetContext, the\n// previously set context will be returned. Otherwise, nil is returned.\n//\n// Notice that a call to Execute and ExecuteC will replace a nil context of\n// a command with a context.Background, so a background context will be\n// returned by Context after one of these functions has been called.\nfunc (c *Command) Context() context.Context {\n\treturn c.ctx\n}\n\n// SetContext sets context for the command. This context will be overwritten by\n// Command.ExecuteContext or Command.ExecuteContextC.\nfunc (c *Command) SetContext(ctx context.Context) {\n\tc.ctx = ctx\n}\n\n// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden\n// particularly useful when testing.\nfunc (c *Command) SetArgs(a []string) {\n\tc.args = a\n}\n\n// SetOutput sets the destination for usage and error messages.\n// If output is nil, os.Stderr is used.\n//\n// Deprecated: Use SetOut and/or SetErr instead\nfunc (c *Command) SetOutput(output io.Writer) {\n\tc.outWriter = output\n\tc.errWriter = output\n}\n\n// SetOut sets the destination for usage messages.\n// If newOut is nil, os.Stdout is used.\nfunc (c *Command) SetOut(newOut io.Writer) {\n\tc.outWriter = newOut\n}\n\n// SetErr sets the destination for error messages.\n// If newErr is nil, os.Stderr is used.\nfunc (c *Command) SetErr(newErr io.Writer) {\n\tc.errWriter = newErr\n}\n\n// SetIn sets the source for input data\n// If newIn is nil, os.Stdin is used.\nfunc (c *Command) SetIn(newIn io.Reader) {\n\tc.inReader = newIn\n}\n\n// SetUsageFunc sets usage function. Usage can be defined by application.\nfunc (c *Command) SetUsageFunc(f func(*Command) error) {\n\tc.usageFunc = f\n}\n\n// SetUsageTemplate sets usage template. Can be defined by Application.\nfunc (c *Command) SetUsageTemplate(s string) {\n\tif s == \"\" {\n\t\tc.usageTemplate = nil\n\t\treturn\n\t}\n\tc.usageTemplate = tmpl(s)\n}\n\n// SetFlagErrorFunc sets a function to generate an error when flag parsing\n// fails.\nfunc (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {\n\tc.flagErrorFunc = f\n}\n\n// SetHelpFunc sets help function. Can be defined by Application.\nfunc (c *Command) SetHelpFunc(f func(*Command, []string)) {\n\tc.helpFunc = f\n}\n\n// SetHelpCommand sets help command.\nfunc (c *Command) SetHelpCommand(cmd *Command) {\n\tc.helpCommand = cmd\n}\n\n// SetHelpCommandGroupID sets the group id of the help command.\nfunc (c *Command) SetHelpCommandGroupID(groupID string) {\n\tif c.helpCommand != nil {\n\t\tc.helpCommand.GroupID = groupID\n\t}\n\t// helpCommandGroupID is used if no helpCommand is defined by the user\n\tc.helpCommandGroupID = groupID\n}\n\n// SetCompletionCommandGroupID sets the group id of the completion command.\nfunc (c *Command) SetCompletionCommandGroupID(groupID string) {\n\t// completionCommandGroupID is used if no completion command is defined by the user\n\tc.Root().completionCommandGroupID = groupID\n}\n\n// SetHelpTemplate sets help template to be used. Application can use it to set custom template.\nfunc (c *Command) SetHelpTemplate(s string) {\n\tif s == \"\" {\n\t\tc.helpTemplate = nil\n\t\treturn\n\t}\n\tc.helpTemplate = tmpl(s)\n}\n\n// SetVersionTemplate sets version template to be used. Application can use it to set custom template.\nfunc (c *Command) SetVersionTemplate(s string) {\n\tif s == \"\" {\n\t\tc.versionTemplate = nil\n\t\treturn\n\t}\n\tc.versionTemplate = tmpl(s)\n}\n\n// SetErrPrefix sets error message prefix to be used. Application can use it to set custom prefix.\nfunc (c *Command) SetErrPrefix(s string) {\n\tc.errPrefix = s\n}\n\n// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands.\n// The user should not have a cyclic dependency on commands.\nfunc (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {\n\tc.Flags().SetNormalizeFunc(n)\n\tc.PersistentFlags().SetNormalizeFunc(n)\n\tc.globNormFunc = n\n\n\tfor _, command := range c.commands {\n\t\tcommand.SetGlobalNormalizationFunc(n)\n\t}\n}\n\n// OutOrStdout returns output to stdout.\nfunc (c *Command) OutOrStdout() io.Writer {\n\treturn c.getOut(os.Stdout)\n}\n\n// OutOrStderr returns output to stderr\nfunc (c *Command) OutOrStderr() io.Writer {\n\treturn c.getOut(os.Stderr)\n}\n\n// ErrOrStderr returns output to stderr\nfunc (c *Command) ErrOrStderr() io.Writer {\n\treturn c.getErr(os.Stderr)\n}\n\n// InOrStdin returns input to stdin\nfunc (c *Command) InOrStdin() io.Reader {\n\treturn c.getIn(os.Stdin)\n}\n\nfunc (c *Command) getOut(def io.Writer) io.Writer {\n\tif c.outWriter != nil {\n\t\treturn c.outWriter\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getOut(def)\n\t}\n\treturn def\n}\n\nfunc (c *Command) getErr(def io.Writer) io.Writer {\n\tif c.errWriter != nil {\n\t\treturn c.errWriter\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getErr(def)\n\t}\n\treturn def\n}\n\nfunc (c *Command) getIn(def io.Reader) io.Reader {\n\tif c.inReader != nil {\n\t\treturn c.inReader\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getIn(def)\n\t}\n\treturn def\n}\n\n// UsageFunc returns either the function set by SetUsageFunc for this command\n// or a parent, or it returns a default usage function.\nfunc (c *Command) UsageFunc() (f func(*Command) error) {\n\tif c.usageFunc != nil {\n\t\treturn c.usageFunc\n\t}\n\tif c.HasParent() {\n\t\treturn c.Parent().UsageFunc()\n\t}\n\treturn func(c *Command) error {\n\t\tc.mergePersistentFlags()\n\t\tfn := c.getUsageTemplateFunc()\n\t\terr := fn(c.OutOrStderr(), c)\n\t\tif err != nil {\n\t\t\tc.PrintErrln(err)\n\t\t}\n\t\treturn err\n\t}\n}\n\n// getUsageTemplateFunc returns the usage template function for the command\n// going up the command tree if necessary.\nfunc (c *Command) getUsageTemplateFunc() func(w io.Writer, data interface{}) error {\n\tif c.usageTemplate != nil {\n\t\treturn c.usageTemplate.fn\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.getUsageTemplateFunc()\n\t}\n\treturn defaultUsageFunc\n}\n\n// Usage puts out the usage for the command.\n// Used when a user provides invalid input.\n// Can be defined by user by overriding UsageFunc.\nfunc (c *Command) Usage() error {\n\treturn c.UsageFunc()(c)\n}\n\n// HelpFunc returns either the function set by SetHelpFunc for this command\n// or a parent, or it returns a function with default help behavior.\nfunc (c *Command) HelpFunc() func(*Command, []string) {\n\tif c.helpFunc != nil {\n\t\treturn c.helpFunc\n\t}\n\tif c.HasParent() {\n\t\treturn c.Parent().HelpFunc()\n\t}\n\treturn func(c *Command, a []string) {\n\t\tc.mergePersistentFlags()\n\t\tfn := c.getHelpTemplateFunc()\n\t\t// The help should be sent to stdout\n\t\t// See https://github.com/spf13/cobra/issues/1002\n\t\terr := fn(c.OutOrStdout(), c)\n\t\tif err != nil {\n\t\t\tc.PrintErrln(err)\n\t\t}\n\t}\n}\n\n// getHelpTemplateFunc returns the help template function for the command\n// going up the command tree if necessary.\nfunc (c *Command) getHelpTemplateFunc() func(w io.Writer, data interface{}) error {\n\tif c.helpTemplate != nil {\n\t\treturn c.helpTemplate.fn\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.getHelpTemplateFunc()\n\t}\n\n\treturn defaultHelpFunc\n}\n\n// Help puts out the help for the command.\n// Used when a user calls help [command].\n// Can be defined by user by overriding HelpFunc.\nfunc (c *Command) Help() error {\n\tc.HelpFunc()(c, []string{})\n\treturn nil\n}\n\n// UsageString returns usage string.\nfunc (c *Command) UsageString() string {\n\t// Storing normal writers\n\ttmpOutput := c.outWriter\n\ttmpErr := c.errWriter\n\n\tbb := new(bytes.Buffer)\n\tc.outWriter = bb\n\tc.errWriter = bb\n\n\tCheckErr(c.Usage())\n\n\t// Setting things back to normal\n\tc.outWriter = tmpOutput\n\tc.errWriter = tmpErr\n\n\treturn bb.String()\n}\n\n// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this\n// command or a parent, or it returns a function which returns the original\n// error.\nfunc (c *Command) FlagErrorFunc() (f func(*Command, error) error) {\n\tif c.flagErrorFunc != nil {\n\t\treturn c.flagErrorFunc\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.FlagErrorFunc()\n\t}\n\treturn func(c *Command, err error) error {\n\t\treturn err\n\t}\n}\n\nconst minUsagePadding = 25\n\n// UsagePadding return padding for the usage.\nfunc (c *Command) UsagePadding() int {\n\tif c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen {\n\t\treturn minUsagePadding\n\t}\n\treturn c.parent.commandsMaxUseLen\n}\n\nconst minCommandPathPadding = 11\n\n// CommandPathPadding return padding for the command path.\nfunc (c *Command) CommandPathPadding() int {\n\tif c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen {\n\t\treturn minCommandPathPadding\n\t}\n\treturn c.parent.commandsMaxCommandPathLen\n}\n\nconst minNamePadding = 11\n\n// NamePadding returns padding for the name.\nfunc (c *Command) NamePadding() int {\n\tif c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen {\n\t\treturn minNamePadding\n\t}\n\treturn c.parent.commandsMaxNameLen\n}\n\n// UsageTemplate returns usage template for the command.\n// This function is kept for backwards-compatibility reasons.\nfunc (c *Command) UsageTemplate() string {\n\tif c.usageTemplate != nil {\n\t\treturn c.usageTemplate.tmpl\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.UsageTemplate()\n\t}\n\treturn defaultUsageTemplate\n}\n\n// HelpTemplate return help template for the command.\n// This function is kept for backwards-compatibility reasons.\nfunc (c *Command) HelpTemplate() string {\n\tif c.helpTemplate != nil {\n\t\treturn c.helpTemplate.tmpl\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.HelpTemplate()\n\t}\n\treturn defaultHelpTemplate\n}\n\n// VersionTemplate return version template for the command.\n// This function is kept for backwards-compatibility reasons.\nfunc (c *Command) VersionTemplate() string {\n\tif c.versionTemplate != nil {\n\t\treturn c.versionTemplate.tmpl\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.VersionTemplate()\n\t}\n\treturn defaultVersionTemplate\n}\n\n// getVersionTemplateFunc returns the version template function for the command\n// going up the command tree if necessary.\nfunc (c *Command) getVersionTemplateFunc() func(w io.Writer, data interface{}) error {\n\tif c.versionTemplate != nil {\n\t\treturn c.versionTemplate.fn\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.getVersionTemplateFunc()\n\t}\n\treturn defaultVersionFunc\n}\n\n// ErrPrefix return error message prefix for the command\nfunc (c *Command) ErrPrefix() string {\n\tif c.errPrefix != \"\" {\n\t\treturn c.errPrefix\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.ErrPrefix()\n\t}\n\treturn \"Error:\"\n}\n\nfunc hasNoOptDefVal(name string, fs *flag.FlagSet) bool {\n\tflag := fs.Lookup(name)\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.NoOptDefVal != \"\"\n}\n\nfunc shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {\n\tif len(name) == 0 {\n\t\treturn false\n\t}\n\n\tflag := fs.ShorthandLookup(name[:1])\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.NoOptDefVal != \"\"\n}\n\nfunc stripFlags(args []string, c *Command) []string {\n\tif len(args) == 0 {\n\t\treturn args\n\t}\n\tc.mergePersistentFlags()\n\n\tcommands := []string{}\n\tflags := c.Flags()\n\nLoop:\n\tfor len(args) > 0 {\n\t\ts := args[0]\n\t\targs = args[1:]\n\t\tswitch {\n\t\tcase s == \"--\":\n\t\t\t// \"--\" terminates the flags\n\t\t\tbreak Loop\n\t\tcase strings.HasPrefix(s, \"--\") && !strings.Contains(s, \"=\") && !hasNoOptDefVal(s[2:], flags):\n\t\t\t// If '--flag arg' then\n\t\t\t// delete arg from args.\n\t\t\tfallthrough // (do the same as below)\n\t\tcase strings.HasPrefix(s, \"-\") && !strings.Contains(s, \"=\") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):\n\t\t\t// If '-f arg' then\n\t\t\t// delete 'arg' from args or break the loop if len(args) <= 1.\n\t\t\tif len(args) <= 1 {\n\t\t\t\tbreak Loop\n\t\t\t} else {\n\t\t\t\targs = args[1:]\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase s != \"\" && !strings.HasPrefix(s, \"-\"):\n\t\t\tcommands = append(commands, s)\n\t\t}\n\t}\n\n\treturn commands\n}\n\n// argsMinusFirstX removes only the first x from args.  Otherwise, commands that look like\n// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]).\n// Special care needs to be taken not to remove a flag value.\nfunc (c *Command) argsMinusFirstX(args []string, x string) []string {\n\tif len(args) == 0 {\n\t\treturn args\n\t}\n\tc.mergePersistentFlags()\n\tflags := c.Flags()\n\nLoop:\n\tfor pos := 0; pos < len(args); pos++ {\n\t\ts := args[pos]\n\t\tswitch {\n\t\tcase s == \"--\":\n\t\t\t// -- means we have reached the end of the parseable args. Break out of the loop now.\n\t\t\tbreak Loop\n\t\tcase strings.HasPrefix(s, \"--\") && !strings.Contains(s, \"=\") && !hasNoOptDefVal(s[2:], flags):\n\t\t\tfallthrough\n\t\tcase strings.HasPrefix(s, \"-\") && !strings.Contains(s, \"=\") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):\n\t\t\t// This is a flag without a default value, and an equal sign is not used. Increment pos in order to skip\n\t\t\t// over the next arg, because that is the value of this flag.\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase !strings.HasPrefix(s, \"-\"):\n\t\t\t// This is not a flag or a flag value. Check to see if it matches what we're looking for, and if so,\n\t\t\t// return the args, excluding the one at this position.\n\t\t\tif s == x {\n\t\t\t\tret := make([]string, 0, len(args)-1)\n\t\t\t\tret = append(ret, args[:pos]...)\n\t\t\t\tret = append(ret, args[pos+1:]...)\n\t\t\t\treturn ret\n\t\t\t}\n\t\t}\n\t}\n\treturn args\n}\n\nfunc isFlagArg(arg string) bool {\n\treturn ((len(arg) >= 3 && arg[0:2] == \"--\") ||\n\t\t(len(arg) >= 2 && arg[0] == '-' && arg[1] != '-'))\n}\n\n// Find the target command given the args and command tree\n// Meant to be run on the highest node. Only searches down.\nfunc (c *Command) Find(args []string) (*Command, []string, error) {\n\tvar innerfind func(*Command, []string) (*Command, []string)\n\n\tinnerfind = func(c *Command, innerArgs []string) (*Command, []string) {\n\t\targsWOflags := stripFlags(innerArgs, c)\n\t\tif len(argsWOflags) == 0 {\n\t\t\treturn c, innerArgs\n\t\t}\n\t\tnextSubCmd := argsWOflags[0]\n\n\t\tcmd := c.findNext(nextSubCmd)\n\t\tif cmd != nil {\n\t\t\treturn innerfind(cmd, c.argsMinusFirstX(innerArgs, nextSubCmd))\n\t\t}\n\t\treturn c, innerArgs\n\t}\n\n\tcommandFound, a := innerfind(c, args)\n\tif commandFound.Args == nil {\n\t\treturn commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound))\n\t}\n\treturn commandFound, a, nil\n}\n\nfunc (c *Command) findSuggestions(arg string) string {\n\tif c.DisableSuggestions {\n\t\treturn \"\"\n\t}\n\tif c.SuggestionsMinimumDistance <= 0 {\n\t\tc.SuggestionsMinimumDistance = 2\n\t}\n\tvar sb strings.Builder\n\tif suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 {\n\t\tsb.WriteString(\"\\n\\nDid you mean this?\\n\")\n\t\tfor _, s := range suggestions {\n\t\t\t_, _ = fmt.Fprintf(&sb, \"\\t%v\\n\", s)\n\t\t}\n\t}\n\treturn sb.String()\n}\n\nfunc (c *Command) findNext(next string) *Command {\n\tmatches := make([]*Command, 0)\n\tfor _, cmd := range c.commands {\n\t\tif commandNameMatches(cmd.Name(), next) || cmd.HasAlias(next) {\n\t\t\tcmd.commandCalledAs.name = next\n\t\t\treturn cmd\n\t\t}\n\t\tif EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) {\n\t\t\tmatches = append(matches, cmd)\n\t\t}\n\t}\n\n\tif len(matches) == 1 {\n\t\t// Temporarily disable gosec G602, which produces a false positive.\n\t\t// See https://github.com/securego/gosec/issues/1005.\n\t\treturn matches[0] // #nosec G602\n\t}\n\n\treturn nil\n}\n\n// Traverse the command tree to find the command, and parse args for\n// each parent.\nfunc (c *Command) Traverse(args []string) (*Command, []string, error) {\n\tflags := []string{}\n\tinFlag := false\n\n\tfor i, arg := range args {\n\t\tswitch {\n\t\t// A long flag with a space separated value\n\t\tcase strings.HasPrefix(arg, \"--\") && !strings.Contains(arg, \"=\"):\n\t\t\t// TODO: this isn't quite right, we should really check ahead for 'true' or 'false'\n\t\t\tinFlag = !hasNoOptDefVal(arg[2:], c.Flags())\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// A short flag with a space separated value\n\t\tcase strings.HasPrefix(arg, \"-\") && !strings.Contains(arg, \"=\") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()):\n\t\t\tinFlag = true\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// The value for a flag\n\t\tcase inFlag:\n\t\t\tinFlag = false\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// A flag without a value, or with an `=` separated value\n\t\tcase isFlagArg(arg):\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t}\n\n\t\tcmd := c.findNext(arg)\n\t\tif cmd == nil {\n\t\t\treturn c, args, nil\n\t\t}\n\n\t\tif err := c.ParseFlags(flags); err != nil {\n\t\t\treturn nil, args, err\n\t\t}\n\t\treturn cmd.Traverse(args[i+1:])\n\t}\n\treturn c, args, nil\n}\n\n// SuggestionsFor provides suggestions for the typedName.\nfunc (c *Command) SuggestionsFor(typedName string) []string {\n\tsuggestions := []string{}\n\tfor _, cmd := range c.commands {\n\t\tif cmd.IsAvailableCommand() {\n\t\t\tlevenshteinDistance := ld(typedName, cmd.Name(), true)\n\t\t\tsuggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance\n\t\t\tsuggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName))\n\t\t\tif suggestByLevenshtein || suggestByPrefix {\n\t\t\t\tsuggestions = append(suggestions, cmd.Name())\n\t\t\t}\n\t\t\tfor _, explicitSuggestion := range cmd.SuggestFor {\n\t\t\t\tif strings.EqualFold(typedName, explicitSuggestion) {\n\t\t\t\t\tsuggestions = append(suggestions, cmd.Name())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn suggestions\n}\n\n// VisitParents visits all parents of the command and invokes fn on each parent.\nfunc (c *Command) VisitParents(fn func(*Command)) {\n\tif c.HasParent() {\n\t\tfn(c.Parent())\n\t\tc.Parent().VisitParents(fn)\n\t}\n}\n\n// Root finds root command.\nfunc (c *Command) Root() *Command {\n\tif c.HasParent() {\n\t\treturn c.Parent().Root()\n\t}\n\treturn c\n}\n\n// ArgsLenAtDash will return the length of c.Flags().Args at the moment\n// when a -- was found during args parsing.\nfunc (c *Command) ArgsLenAtDash() int {\n\treturn c.Flags().ArgsLenAtDash()\n}\n\nfunc (c *Command) execute(a []string) (err error) {\n\tif c == nil {\n\t\treturn fmt.Errorf(\"called Execute() on a nil Command\")\n\t}\n\n\tif len(c.Deprecated) > 0 {\n\t\tc.Printf(\"Command %q is deprecated, %s\\n\", c.Name(), c.Deprecated)\n\t}\n\n\t// initialize help and version flag at the last point possible to allow for user\n\t// overriding\n\tc.InitDefaultHelpFlag()\n\tc.InitDefaultVersionFlag()\n\n\terr = c.ParseFlags(a)\n\tif err != nil {\n\t\treturn c.FlagErrorFunc()(c, err)\n\t}\n\n\t// If help is called, regardless of other flags, return we want help.\n\t// Also say we need help if the command isn't runnable.\n\thelpVal, err := c.Flags().GetBool(helpFlagName)\n\tif err != nil {\n\t\t// should be impossible to get here as we always declare a help\n\t\t// flag in InitDefaultHelpFlag()\n\t\tc.Println(\"\\\"help\\\" flag declared as non-bool. Please correct your code\")\n\t\treturn err\n\t}\n\n\tif helpVal {\n\t\treturn flag.ErrHelp\n\t}\n\n\t// for back-compat, only add version flag behavior if version is defined\n\tif c.Version != \"\" {\n\t\tversionVal, err := c.Flags().GetBool(\"version\")\n\t\tif err != nil {\n\t\t\tc.Println(\"\\\"version\\\" flag declared as non-bool. Please correct your code\")\n\t\t\treturn err\n\t\t}\n\t\tif versionVal {\n\t\t\tfn := c.getVersionTemplateFunc()\n\t\t\terr := fn(c.OutOrStdout(), c)\n\t\t\tif err != nil {\n\t\t\t\tc.Println(err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif !c.Runnable() {\n\t\treturn flag.ErrHelp\n\t}\n\n\tc.preRun()\n\n\tdefer c.postRun()\n\n\targWoFlags := c.Flags().Args()\n\tif c.DisableFlagParsing {\n\t\targWoFlags = a\n\t}\n\n\tif err := c.ValidateArgs(argWoFlags); err != nil {\n\t\treturn err\n\t}\n\n\tparents := make([]*Command, 0, 5)\n\tfor p := c; p != nil; p = p.Parent() {\n\t\tif EnableTraverseRunHooks {\n\t\t\t// When EnableTraverseRunHooks is set:\n\t\t\t// - Execute all persistent pre-runs from the root parent till this command.\n\t\t\t// - Execute all persistent post-runs from this command till the root parent.\n\t\t\tparents = append([]*Command{p}, parents...)\n\t\t} else {\n\t\t\t// Otherwise, execute only the first found persistent hook.\n\t\t\tparents = append(parents, p)\n\t\t}\n\t}\n\tfor _, p := range parents {\n\t\tif p.PersistentPreRunE != nil {\n\t\t\tif err := p.PersistentPreRunE(c, argWoFlags); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else if p.PersistentPreRun != nil {\n\t\t\tp.PersistentPreRun(c, argWoFlags)\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif c.PreRunE != nil {\n\t\tif err := c.PreRunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if c.PreRun != nil {\n\t\tc.PreRun(c, argWoFlags)\n\t}\n\n\tif err := c.ValidateRequiredFlags(); err != nil {\n\t\treturn err\n\t}\n\tif err := c.ValidateFlagGroups(); err != nil {\n\t\treturn err\n\t}\n\n\tif c.RunE != nil {\n\t\tif err := c.RunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tc.Run(c, argWoFlags)\n\t}\n\tif c.PostRunE != nil {\n\t\tif err := c.PostRunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if c.PostRun != nil {\n\t\tc.PostRun(c, argWoFlags)\n\t}\n\tfor p := c; p != nil; p = p.Parent() {\n\t\tif p.PersistentPostRunE != nil {\n\t\t\tif err := p.PersistentPostRunE(c, argWoFlags); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else if p.PersistentPostRun != nil {\n\t\t\tp.PersistentPostRun(c, argWoFlags)\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (c *Command) preRun() {\n\tfor _, x := range initializers {\n\t\tx()\n\t}\n}\n\nfunc (c *Command) postRun() {\n\tfor _, x := range finalizers {\n\t\tx()\n\t}\n}\n\n// ExecuteContext is the same as Execute(), but sets the ctx on the command.\n// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs\n// functions.\nfunc (c *Command) ExecuteContext(ctx context.Context) error {\n\tc.ctx = ctx\n\treturn c.Execute()\n}\n\n// Execute uses the args (os.Args[1:] by default)\n// and run through the command tree finding appropriate matches\n// for commands and then corresponding flags.\nfunc (c *Command) Execute() error {\n\t_, err := c.ExecuteC()\n\treturn err\n}\n\n// ExecuteContextC is the same as ExecuteC(), but sets the ctx on the command.\n// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs\n// functions.\nfunc (c *Command) ExecuteContextC(ctx context.Context) (*Command, error) {\n\tc.ctx = ctx\n\treturn c.ExecuteC()\n}\n\n// ExecuteC executes the command.\nfunc (c *Command) ExecuteC() (cmd *Command, err error) {\n\tif c.ctx == nil {\n\t\tc.ctx = context.Background()\n\t}\n\n\t// Regardless of what command execute is called on, run on Root only\n\tif c.HasParent() {\n\t\treturn c.Root().ExecuteC()\n\t}\n\n\t// windows hook\n\tif preExecHookFn != nil {\n\t\tpreExecHookFn(c)\n\t}\n\n\t// initialize help at the last point to allow for user overriding\n\tc.InitDefaultHelpCmd()\n\n\targs := c.args\n\n\t// Workaround FAIL with \"go test -v\" or \"cobra.test -test.v\", see #155\n\tif c.args == nil && filepath.Base(os.Args[0]) != \"cobra.test\" {\n\t\targs = os.Args[1:]\n\t}\n\n\t// initialize the __complete command to be used for shell completion\n\tc.initCompleteCmd(args)\n\n\t// initialize the default completion command\n\tc.InitDefaultCompletionCmd(args...)\n\n\t// Now that all commands have been created, let's make sure all groups\n\t// are properly created also\n\tc.checkCommandGroups()\n\n\tvar flags []string\n\tif c.TraverseChildren {\n\t\tcmd, flags, err = c.Traverse(args)\n\t} else {\n\t\tcmd, flags, err = c.Find(args)\n\t}\n\tif err != nil {\n\t\t// If found parse to a subcommand and then failed, talk about the subcommand\n\t\tif cmd != nil {\n\t\t\tc = cmd\n\t\t}\n\t\tif !c.SilenceErrors {\n\t\t\tc.PrintErrln(c.ErrPrefix(), err.Error())\n\t\t\tc.PrintErrf(\"Run '%v --help' for usage.\\n\", c.CommandPath())\n\t\t}\n\t\treturn c, err\n\t}\n\n\tcmd.commandCalledAs.called = true\n\tif cmd.commandCalledAs.name == \"\" {\n\t\tcmd.commandCalledAs.name = cmd.Name()\n\t}\n\n\t// We have to pass global context to children command\n\t// if context is present on the parent command.\n\tif cmd.ctx == nil {\n\t\tcmd.ctx = c.ctx\n\t}\n\n\terr = cmd.execute(flags)\n\tif err != nil {\n\t\t// Always show help if requested, even if SilenceErrors is in\n\t\t// effect\n\t\tif errors.Is(err, flag.ErrHelp) {\n\t\t\tcmd.HelpFunc()(cmd, args)\n\t\t\treturn cmd, nil\n\t\t}\n\n\t\t// If root command has SilenceErrors flagged,\n\t\t// all subcommands should respect it\n\t\tif !cmd.SilenceErrors && !c.SilenceErrors {\n\t\t\tc.PrintErrln(cmd.ErrPrefix(), err.Error())\n\t\t}\n\n\t\t// If root command has SilenceUsage flagged,\n\t\t// all subcommands should respect it\n\t\tif !cmd.SilenceUsage && !c.SilenceUsage {\n\t\t\tc.Println(cmd.UsageString())\n\t\t}\n\t}\n\treturn cmd, err\n}\n\nfunc (c *Command) ValidateArgs(args []string) error {\n\tif c.Args == nil {\n\t\treturn ArbitraryArgs(c, args)\n\t}\n\treturn c.Args(c, args)\n}\n\n// ValidateRequiredFlags validates all required flags are present and returns an error otherwise\nfunc (c *Command) ValidateRequiredFlags() error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tflags := c.Flags()\n\tmissingFlagNames := []string{}\n\tflags.VisitAll(func(pflag *flag.Flag) {\n\t\trequiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag]\n\t\tif !found {\n\t\t\treturn\n\t\t}\n\t\tif (requiredAnnotation[0] == \"true\") && !pflag.Changed {\n\t\t\tmissingFlagNames = append(missingFlagNames, pflag.Name)\n\t\t}\n\t})\n\n\tif len(missingFlagNames) > 0 {\n\t\treturn fmt.Errorf(`required flag(s) \"%s\" not set`, strings.Join(missingFlagNames, `\", \"`))\n\t}\n\treturn nil\n}\n\n// checkCommandGroups checks if a command has been added to a group that does not exists.\n// If so, we panic because it indicates a coding error that should be corrected.\nfunc (c *Command) checkCommandGroups() {\n\tfor _, sub := range c.commands {\n\t\t// if Group is not defined let the developer know right away\n\t\tif sub.GroupID != \"\" && !c.ContainsGroup(sub.GroupID) {\n\t\t\tpanic(fmt.Sprintf(\"group id '%s' is not defined for subcommand '%s'\", sub.GroupID, sub.CommandPath()))\n\t\t}\n\n\t\tsub.checkCommandGroups()\n\t}\n}\n\n// InitDefaultHelpFlag adds default help flag to c.\n// It is called automatically by executing the c or by calling help and usage.\n// If c already has help flag, it will do nothing.\nfunc (c *Command) InitDefaultHelpFlag() {\n\tc.mergePersistentFlags()\n\tif c.Flags().Lookup(helpFlagName) == nil {\n\t\tusage := \"help for \"\n\t\tname := c.DisplayName()\n\t\tif name == \"\" {\n\t\t\tusage += \"this command\"\n\t\t} else {\n\t\t\tusage += name\n\t\t}\n\t\tc.Flags().BoolP(helpFlagName, \"h\", false, usage)\n\t\t_ = c.Flags().SetAnnotation(helpFlagName, FlagSetByCobraAnnotation, []string{\"true\"})\n\t}\n}\n\n// InitDefaultVersionFlag adds default version flag to c.\n// It is called automatically by executing the c.\n// If c already has a version flag, it will do nothing.\n// If c.Version is empty, it will do nothing.\nfunc (c *Command) InitDefaultVersionFlag() {\n\tif c.Version == \"\" {\n\t\treturn\n\t}\n\n\tc.mergePersistentFlags()\n\tif c.Flags().Lookup(\"version\") == nil {\n\t\tusage := \"version for \"\n\t\tif c.Name() == \"\" {\n\t\t\tusage += \"this command\"\n\t\t} else {\n\t\t\tusage += c.DisplayName()\n\t\t}\n\t\tif c.Flags().ShorthandLookup(\"v\") == nil {\n\t\t\tc.Flags().BoolP(\"version\", \"v\", false, usage)\n\t\t} else {\n\t\t\tc.Flags().Bool(\"version\", false, usage)\n\t\t}\n\t\t_ = c.Flags().SetAnnotation(\"version\", FlagSetByCobraAnnotation, []string{\"true\"})\n\t}\n}\n\n// InitDefaultHelpCmd adds default help command to c.\n// It is called automatically by executing the c or by calling help and usage.\n// If c already has help command or c has no subcommands, it will do nothing.\nfunc (c *Command) InitDefaultHelpCmd() {\n\tif !c.HasSubCommands() {\n\t\treturn\n\t}\n\n\tif c.helpCommand == nil {\n\t\tc.helpCommand = &Command{\n\t\t\tUse:   \"help [command]\",\n\t\t\tShort: \"Help about any command\",\n\t\t\tLong: `Help provides help for any command in the application.\nSimply type ` + c.DisplayName() + ` help [path to command] for full details.`,\n\t\t\tValidArgsFunction: func(c *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) {\n\t\t\t\tvar completions []Completion\n\t\t\t\tcmd, _, e := c.Root().Find(args)\n\t\t\t\tif e != nil {\n\t\t\t\t\treturn nil, ShellCompDirectiveNoFileComp\n\t\t\t\t}\n\t\t\t\tif cmd == nil {\n\t\t\t\t\t// Root help command.\n\t\t\t\t\tcmd = c.Root()\n\t\t\t\t}\n\t\t\t\tfor _, subCmd := range cmd.Commands() {\n\t\t\t\t\tif subCmd.IsAvailableCommand() || subCmd == cmd.helpCommand {\n\t\t\t\t\t\tif strings.HasPrefix(subCmd.Name(), toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, CompletionWithDesc(subCmd.Name(), subCmd.Short))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn completions, ShellCompDirectiveNoFileComp\n\t\t\t},\n\t\t\tRun: func(c *Command, args []string) {\n\t\t\t\tcmd, _, e := c.Root().Find(args)\n\t\t\t\tif cmd == nil || e != nil {\n\t\t\t\t\tc.Printf(\"Unknown help topic %#q\\n\", args)\n\t\t\t\t\tCheckErr(c.Root().Usage())\n\t\t\t\t} else {\n\t\t\t\t\t// FLow the context down to be used in help text\n\t\t\t\t\tif cmd.ctx == nil {\n\t\t\t\t\t\tcmd.ctx = c.ctx\n\t\t\t\t\t}\n\n\t\t\t\t\tcmd.InitDefaultHelpFlag()    // make possible 'help' flag to be shown\n\t\t\t\t\tcmd.InitDefaultVersionFlag() // make possible 'version' flag to be shown\n\t\t\t\t\tCheckErr(cmd.Help())\n\t\t\t\t}\n\t\t\t},\n\t\t\tGroupID: c.helpCommandGroupID,\n\t\t}\n\t}\n\tc.RemoveCommand(c.helpCommand)\n\tc.AddCommand(c.helpCommand)\n}\n\n// ResetCommands delete parent, subcommand and help command from c.\nfunc (c *Command) ResetCommands() {\n\tc.parent = nil\n\tc.commands = nil\n\tc.helpCommand = nil\n\tc.parentsPflags = nil\n}\n\n// Sorts commands by their names.\ntype commandSorterByName []*Command\n\nfunc (c commandSorterByName) Len() int           { return len(c) }\nfunc (c commandSorterByName) Swap(i, j int)      { c[i], c[j] = c[j], c[i] }\nfunc (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() }\n\n// Commands returns a sorted slice of child commands.\nfunc (c *Command) Commands() []*Command {\n\t// do not sort commands if it already sorted or sorting was disabled\n\tif EnableCommandSorting && !c.commandsAreSorted {\n\t\tsort.Sort(commandSorterByName(c.commands))\n\t\tc.commandsAreSorted = true\n\t}\n\treturn c.commands\n}\n\n// AddCommand adds one or more commands to this parent command.\nfunc (c *Command) AddCommand(cmds ...*Command) {\n\tfor i, x := range cmds {\n\t\tif cmds[i] == c {\n\t\t\tpanic(\"Command can't be a child of itself\")\n\t\t}\n\t\tcmds[i].parent = c\n\t\t// update max lengths\n\t\tusageLen := len(x.Use)\n\t\tif usageLen > c.commandsMaxUseLen {\n\t\t\tc.commandsMaxUseLen = usageLen\n\t\t}\n\t\tcommandPathLen := len(x.CommandPath())\n\t\tif commandPathLen > c.commandsMaxCommandPathLen {\n\t\t\tc.commandsMaxCommandPathLen = commandPathLen\n\t\t}\n\t\tnameLen := len(x.Name())\n\t\tif nameLen > c.commandsMaxNameLen {\n\t\t\tc.commandsMaxNameLen = nameLen\n\t\t}\n\t\t// If global normalization function exists, update all children\n\t\tif c.globNormFunc != nil {\n\t\t\tx.SetGlobalNormalizationFunc(c.globNormFunc)\n\t\t}\n\t\tc.commands = append(c.commands, x)\n\t\tc.commandsAreSorted = false\n\t}\n}\n\n// Groups returns a slice of child command groups.\nfunc (c *Command) Groups() []*Group {\n\treturn c.commandgroups\n}\n\n// AllChildCommandsHaveGroup returns if all subcommands are assigned to a group\nfunc (c *Command) AllChildCommandsHaveGroup() bool {\n\tfor _, sub := range c.commands {\n\t\tif (sub.IsAvailableCommand() || sub == c.helpCommand) && sub.GroupID == \"\" {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ContainsGroup return if groupID exists in the list of command groups.\nfunc (c *Command) ContainsGroup(groupID string) bool {\n\tfor _, x := range c.commandgroups {\n\t\tif x.ID == groupID {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddGroup adds one or more command groups to this parent command.\nfunc (c *Command) AddGroup(groups ...*Group) {\n\tc.commandgroups = append(c.commandgroups, groups...)\n}\n\n// RemoveCommand removes one or more commands from a parent command.\nfunc (c *Command) RemoveCommand(cmds ...*Command) {\n\tcommands := []*Command{}\nmain:\n\tfor _, command := range c.commands {\n\t\tfor _, cmd := range cmds {\n\t\t\tif command == cmd {\n\t\t\t\tcommand.parent = nil\n\t\t\t\tcontinue main\n\t\t\t}\n\t\t}\n\t\tcommands = append(commands, command)\n\t}\n\tc.commands = commands\n\t// recompute all lengths\n\tc.commandsMaxUseLen = 0\n\tc.commandsMaxCommandPathLen = 0\n\tc.commandsMaxNameLen = 0\n\tfor _, command := range c.commands {\n\t\tusageLen := len(command.Use)\n\t\tif usageLen > c.commandsMaxUseLen {\n\t\t\tc.commandsMaxUseLen = usageLen\n\t\t}\n\t\tcommandPathLen := len(command.CommandPath())\n\t\tif commandPathLen > c.commandsMaxCommandPathLen {\n\t\t\tc.commandsMaxCommandPathLen = commandPathLen\n\t\t}\n\t\tnameLen := len(command.Name())\n\t\tif nameLen > c.commandsMaxNameLen {\n\t\t\tc.commandsMaxNameLen = nameLen\n\t\t}\n\t}\n}\n\n// Print is a convenience method to Print to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Print(i ...interface{}) {\n\tfmt.Fprint(c.OutOrStderr(), i...)\n}\n\n// Println is a convenience method to Println to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Println(i ...interface{}) {\n\tc.Print(fmt.Sprintln(i...))\n}\n\n// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Printf(format string, i ...interface{}) {\n\tc.Print(fmt.Sprintf(format, i...))\n}\n\n// PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErr(i ...interface{}) {\n\tfmt.Fprint(c.ErrOrStderr(), i...)\n}\n\n// PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErrln(i ...interface{}) {\n\tc.PrintErr(fmt.Sprintln(i...))\n}\n\n// PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErrf(format string, i ...interface{}) {\n\tc.PrintErr(fmt.Sprintf(format, i...))\n}\n\n// CommandPath returns the full path to this command.\nfunc (c *Command) CommandPath() string {\n\tif c.HasParent() {\n\t\treturn c.Parent().CommandPath() + \" \" + c.Name()\n\t}\n\treturn c.DisplayName()\n}\n\n// DisplayName returns the name to display in help text. Returns command Name()\n// If CommandDisplayNameAnnoation is not set\nfunc (c *Command) DisplayName() string {\n\tif displayName, ok := c.Annotations[CommandDisplayNameAnnotation]; ok {\n\t\treturn displayName\n\t}\n\treturn c.Name()\n}\n\n// UseLine puts out the full usage for a given command (including parents).\nfunc (c *Command) UseLine() string {\n\tvar useline string\n\tuse := strings.Replace(c.Use, c.Name(), c.DisplayName(), 1)\n\tif c.HasParent() {\n\t\tuseline = c.parent.CommandPath() + \" \" + use\n\t} else {\n\t\tuseline = use\n\t}\n\tif c.DisableFlagsInUseLine {\n\t\treturn useline\n\t}\n\tif c.HasAvailableFlags() && !strings.Contains(useline, \"[flags]\") {\n\t\tuseline += \" [flags]\"\n\t}\n\treturn useline\n}\n\n// DebugFlags used to determine which flags have been assigned to which commands\n// and which persist.\nfunc (c *Command) DebugFlags() {\n\tc.Println(\"DebugFlags called on\", c.Name())\n\tvar debugflags func(*Command)\n\n\tdebugflags = func(x *Command) {\n\t\tif x.HasFlags() || x.HasPersistentFlags() {\n\t\t\tc.Println(x.Name())\n\t\t}\n\t\tif x.HasFlags() {\n\t\t\tx.flags.VisitAll(func(f *flag.Flag) {\n\t\t\t\tif x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [LP]\")\n\t\t\t\t} else {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [L]\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tif x.HasPersistentFlags() {\n\t\t\tx.pflags.VisitAll(func(f *flag.Flag) {\n\t\t\t\tif x.HasFlags() {\n\t\t\t\t\tif x.flags.Lookup(f.Name) == nil {\n\t\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [P]\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [P]\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tc.Println(x.flagErrorBuf)\n\t\tif x.HasSubCommands() {\n\t\t\tfor _, y := range x.commands {\n\t\t\t\tdebugflags(y)\n\t\t\t}\n\t\t}\n\t}\n\n\tdebugflags(c)\n}\n\n// Name returns the command's name: the first word in the use line.\nfunc (c *Command) Name() string {\n\tname := c.Use\n\ti := strings.Index(name, \" \")\n\tif i >= 0 {\n\t\tname = name[:i]\n\t}\n\treturn name\n}\n\n// HasAlias determines if a given string is an alias of the command.\nfunc (c *Command) HasAlias(s string) bool {\n\tfor _, a := range c.Aliases {\n\t\tif commandNameMatches(a, s) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// CalledAs returns the command name or alias that was used to invoke\n// this command or an empty string if the command has not been called.\nfunc (c *Command) CalledAs() string {\n\tif c.commandCalledAs.called {\n\t\treturn c.commandCalledAs.name\n\t}\n\treturn \"\"\n}\n\n// hasNameOrAliasPrefix returns true if the Name or any of aliases start\n// with prefix\nfunc (c *Command) hasNameOrAliasPrefix(prefix string) bool {\n\tif strings.HasPrefix(c.Name(), prefix) {\n\t\tc.commandCalledAs.name = c.Name()\n\t\treturn true\n\t}\n\tfor _, alias := range c.Aliases {\n\t\tif strings.HasPrefix(alias, prefix) {\n\t\t\tc.commandCalledAs.name = alias\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// NameAndAliases returns a list of the command name and all aliases\nfunc (c *Command) NameAndAliases() string {\n\treturn strings.Join(append([]string{c.Name()}, c.Aliases...), \", \")\n}\n\n// HasExample determines if the command has example.\nfunc (c *Command) HasExample() bool {\n\treturn len(c.Example) > 0\n}\n\n// Runnable determines if the command is itself runnable.\nfunc (c *Command) Runnable() bool {\n\treturn c.Run != nil || c.RunE != nil\n}\n\n// HasSubCommands determines if the command has children commands.\nfunc (c *Command) HasSubCommands() bool {\n\treturn len(c.commands) > 0\n}\n\n// IsAvailableCommand determines if a command is available as a non-help command\n// (this includes all non deprecated/hidden commands).\nfunc (c *Command) IsAvailableCommand() bool {\n\tif len(c.Deprecated) != 0 || c.Hidden {\n\t\treturn false\n\t}\n\n\tif c.HasParent() && c.Parent().helpCommand == c {\n\t\treturn false\n\t}\n\n\tif c.Runnable() || c.HasAvailableSubCommands() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// IsAdditionalHelpTopicCommand determines if a command is an additional\n// help topic command; additional help topic command is determined by the\n// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that\n// are runnable/hidden/deprecated.\n// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924.\nfunc (c *Command) IsAdditionalHelpTopicCommand() bool {\n\t// if a command is runnable, deprecated, or hidden it is not a 'help' command\n\tif c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {\n\t\treturn false\n\t}\n\n\t// if any non-help sub commands are found, the command is not a 'help' command\n\tfor _, sub := range c.commands {\n\t\tif !sub.IsAdditionalHelpTopicCommand() {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no non-help sub commands\n\treturn true\n}\n\n// HasHelpSubCommands determines if a command has any available 'help' sub commands\n// that need to be shown in the usage/help default template under 'additional help\n// topics'.\nfunc (c *Command) HasHelpSubCommands() bool {\n\t// return true on the first found available 'help' sub command\n\tfor _, sub := range c.commands {\n\t\tif sub.IsAdditionalHelpTopicCommand() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no available 'help' sub commands\n\treturn false\n}\n\n// HasAvailableSubCommands determines if a command has available sub commands that\n// need to be shown in the usage/help default template under 'available commands'.\nfunc (c *Command) HasAvailableSubCommands() bool {\n\t// return true on the first found available (non deprecated/help/hidden)\n\t// sub command\n\tfor _, sub := range c.commands {\n\t\tif sub.IsAvailableCommand() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no available (non deprecated/help/hidden)\n\t// sub commands\n\treturn false\n}\n\n// HasParent determines if the command is a child command.\nfunc (c *Command) HasParent() bool {\n\treturn c.parent != nil\n}\n\n// GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist.\nfunc (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName {\n\treturn c.globNormFunc\n}\n\n// Flags returns the complete FlagSet that applies\n// to this command (local and persistent declared here and by all parents).\nfunc (c *Command) Flags() *flag.FlagSet {\n\tif c.flags == nil {\n\t\tc.flags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.flags.SetOutput(c.flagErrorBuf)\n\t}\n\n\treturn c.flags\n}\n\n// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) LocalNonPersistentFlags() *flag.FlagSet {\n\tpersistentFlags := c.PersistentFlags()\n\n\tout := flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\tc.LocalFlags().VisitAll(func(f *flag.Flag) {\n\t\tif persistentFlags.Lookup(f.Name) == nil {\n\t\t\tout.AddFlag(f)\n\t\t}\n\t})\n\treturn out\n}\n\n// LocalFlags returns the local FlagSet specifically set in the current command.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) LocalFlags() *flag.FlagSet {\n\tc.mergePersistentFlags()\n\n\tif c.lflags == nil {\n\t\tc.lflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.lflags.SetOutput(c.flagErrorBuf)\n\t}\n\tc.lflags.SortFlags = c.Flags().SortFlags\n\tif c.globNormFunc != nil {\n\t\tc.lflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\taddToLocal := func(f *flag.Flag) {\n\t\t// Add the flag if it is not a parent PFlag, or it shadows a parent PFlag\n\t\tif c.lflags.Lookup(f.Name) == nil && f != c.parentsPflags.Lookup(f.Name) {\n\t\t\tc.lflags.AddFlag(f)\n\t\t}\n\t}\n\tc.Flags().VisitAll(addToLocal)\n\tc.PersistentFlags().VisitAll(addToLocal)\n\treturn c.lflags\n}\n\n// InheritedFlags returns all flags which were inherited from parent commands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) InheritedFlags() *flag.FlagSet {\n\tc.mergePersistentFlags()\n\n\tif c.iflags == nil {\n\t\tc.iflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.iflags.SetOutput(c.flagErrorBuf)\n\t}\n\n\tlocal := c.LocalFlags()\n\tif c.globNormFunc != nil {\n\t\tc.iflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\tc.parentsPflags.VisitAll(func(f *flag.Flag) {\n\t\tif c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil {\n\t\t\tc.iflags.AddFlag(f)\n\t\t}\n\t})\n\treturn c.iflags\n}\n\n// NonInheritedFlags returns all flags which were not inherited from parent commands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) NonInheritedFlags() *flag.FlagSet {\n\treturn c.LocalFlags()\n}\n\n// PersistentFlags returns the persistent FlagSet specifically set in the current command.\nfunc (c *Command) PersistentFlags() *flag.FlagSet {\n\tif c.pflags == nil {\n\t\tc.pflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.pflags.SetOutput(c.flagErrorBuf)\n\t}\n\treturn c.pflags\n}\n\n// ResetFlags deletes all flags from command.\nfunc (c *Command) ResetFlags() {\n\tc.flagErrorBuf = new(bytes.Buffer)\n\tc.flagErrorBuf.Reset()\n\tc.flags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\tc.flags.SetOutput(c.flagErrorBuf)\n\tc.pflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\tc.pflags.SetOutput(c.flagErrorBuf)\n\n\tc.lflags = nil\n\tc.iflags = nil\n\tc.parentsPflags = nil\n}\n\n// HasFlags checks if the command contains any flags (local plus persistent from the entire structure).\nfunc (c *Command) HasFlags() bool {\n\treturn c.Flags().HasFlags()\n}\n\n// HasPersistentFlags checks if the command contains persistent flags.\nfunc (c *Command) HasPersistentFlags() bool {\n\treturn c.PersistentFlags().HasFlags()\n}\n\n// HasLocalFlags checks if the command has flags specifically declared locally.\nfunc (c *Command) HasLocalFlags() bool {\n\treturn c.LocalFlags().HasFlags()\n}\n\n// HasInheritedFlags checks if the command has flags inherited from its parent command.\nfunc (c *Command) HasInheritedFlags() bool {\n\treturn c.InheritedFlags().HasFlags()\n}\n\n// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire\n// structure) which are not hidden or deprecated.\nfunc (c *Command) HasAvailableFlags() bool {\n\treturn c.Flags().HasAvailableFlags()\n}\n\n// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated.\nfunc (c *Command) HasAvailablePersistentFlags() bool {\n\treturn c.PersistentFlags().HasAvailableFlags()\n}\n\n// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden\n// or deprecated.\nfunc (c *Command) HasAvailableLocalFlags() bool {\n\treturn c.LocalFlags().HasAvailableFlags()\n}\n\n// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are\n// not hidden or deprecated.\nfunc (c *Command) HasAvailableInheritedFlags() bool {\n\treturn c.InheritedFlags().HasAvailableFlags()\n}\n\n// Flag climbs up the command tree looking for matching flag.\nfunc (c *Command) Flag(name string) (flag *flag.Flag) {\n\tflag = c.Flags().Lookup(name)\n\n\tif flag == nil {\n\t\tflag = c.persistentFlag(name)\n\t}\n\n\treturn\n}\n\n// Recursively find matching persistent flag.\nfunc (c *Command) persistentFlag(name string) (flag *flag.Flag) {\n\tif c.HasPersistentFlags() {\n\t\tflag = c.PersistentFlags().Lookup(name)\n\t}\n\n\tif flag == nil {\n\t\tc.updateParentsPflags()\n\t\tflag = c.parentsPflags.Lookup(name)\n\t}\n\treturn\n}\n\n// ParseFlags parses persistent flag tree and local flags.\nfunc (c *Command) ParseFlags(args []string) error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tif c.flagErrorBuf == nil {\n\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t}\n\tbeforeErrorBufLen := c.flagErrorBuf.Len()\n\tc.mergePersistentFlags()\n\n\t// do it here after merging all flags and just before parse\n\tc.Flags().ParseErrorsAllowlist = flag.ParseErrorsAllowlist(c.FParseErrWhitelist)\n\n\terr := c.Flags().Parse(args)\n\t// Print warnings if they occurred (e.g. deprecated flag messages).\n\tif c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil {\n\t\tc.Print(c.flagErrorBuf.String())\n\t}\n\n\treturn err\n}\n\n// Parent returns a commands parent command.\nfunc (c *Command) Parent() *Command {\n\treturn c.parent\n}\n\n// mergePersistentFlags merges c.PersistentFlags() to c.Flags()\n// and adds missing persistent flags of all parents.\nfunc (c *Command) mergePersistentFlags() {\n\tc.updateParentsPflags()\n\tc.Flags().AddFlagSet(c.PersistentFlags())\n\tc.Flags().AddFlagSet(c.parentsPflags)\n}\n\n// updateParentsPflags updates c.parentsPflags by adding\n// new persistent flags of all parents.\n// If c.parentsPflags == nil, it makes new.\nfunc (c *Command) updateParentsPflags() {\n\tif c.parentsPflags == nil {\n\t\tc.parentsPflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError)\n\t\tc.parentsPflags.SetOutput(c.flagErrorBuf)\n\t\tc.parentsPflags.SortFlags = false\n\t}\n\n\tif c.globNormFunc != nil {\n\t\tc.parentsPflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\tc.Root().PersistentFlags().AddFlagSet(flag.CommandLine)\n\n\tc.VisitParents(func(parent *Command) {\n\t\tc.parentsPflags.AddFlagSet(parent.PersistentFlags())\n\t})\n}\n\n// commandNameMatches checks if two command names are equal\n// taking into account case sensitivity according to\n// EnableCaseInsensitive global configuration.\nfunc commandNameMatches(s string, t string) bool {\n\tif EnableCaseInsensitive {\n\t\treturn strings.EqualFold(s, t)\n\t}\n\n\treturn s == t\n}\n\n// tmplFunc holds a template and a function that will execute said template.\ntype tmplFunc struct {\n\ttmpl string\n\tfn   func(io.Writer, interface{}) error\n}\n\nconst defaultUsageTemplate = `Usage:{{if .Runnable}}\n  {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}\n  {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}}\n\nAliases:\n  {{.NameAndAliases}}{{end}}{{if .HasExample}}\n\nExamples:\n{{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}}\n\nAvailable Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name \"help\"))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}}\n\n{{.Title}}{{range $cmds}}{{if (and (eq .GroupID $group.ID) (or .IsAvailableCommand (eq .Name \"help\")))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .AllChildCommandsHaveGroup}}\n\nAdditional Commands:{{range $cmds}}{{if (and (eq .GroupID \"\") (or .IsAvailableCommand (eq .Name \"help\")))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}\n\nFlags:\n{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}\n\nGlobal Flags:\n{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}\n\nAdditional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}\n  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}\n\nUse \"{{.CommandPath}} [command] --help\" for more information about a command.{{end}}\n`\n\n// defaultUsageFunc is equivalent to executing defaultUsageTemplate. The two should be changed in sync.\nfunc defaultUsageFunc(w io.Writer, in interface{}) error {\n\tc := in.(*Command)\n\tfmt.Fprint(w, \"Usage:\")\n\tif c.Runnable() {\n\t\tfmt.Fprintf(w, \"\\n  %s\", c.UseLine())\n\t}\n\tif c.HasAvailableSubCommands() {\n\t\tfmt.Fprintf(w, \"\\n  %s [command]\", c.CommandPath())\n\t}\n\tif len(c.Aliases) > 0 {\n\t\tfmt.Fprintf(w, \"\\n\\nAliases:\\n\")\n\t\tfmt.Fprintf(w, \"  %s\", c.NameAndAliases())\n\t}\n\tif c.HasExample() {\n\t\tfmt.Fprintf(w, \"\\n\\nExamples:\\n\")\n\t\tfmt.Fprintf(w, \"%s\", c.Example)\n\t}\n\tif c.HasAvailableSubCommands() {\n\t\tcmds := c.Commands()\n\t\tif len(c.Groups()) == 0 {\n\t\t\tfmt.Fprintf(w, \"\\n\\nAvailable Commands:\")\n\t\t\tfor _, subcmd := range cmds {\n\t\t\t\tif subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName {\n\t\t\t\t\tfmt.Fprintf(w, \"\\n  %s %s\", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor _, group := range c.Groups() {\n\t\t\t\tfmt.Fprintf(w, \"\\n\\n%s\", group.Title)\n\t\t\t\tfor _, subcmd := range cmds {\n\t\t\t\t\tif subcmd.GroupID == group.ID && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) {\n\t\t\t\t\t\tfmt.Fprintf(w, \"\\n  %s %s\", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !c.AllChildCommandsHaveGroup() {\n\t\t\t\tfmt.Fprintf(w, \"\\n\\nAdditional Commands:\")\n\t\t\t\tfor _, subcmd := range cmds {\n\t\t\t\t\tif subcmd.GroupID == \"\" && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) {\n\t\t\t\t\t\tfmt.Fprintf(w, \"\\n  %s %s\", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif c.HasAvailableLocalFlags() {\n\t\tfmt.Fprintf(w, \"\\n\\nFlags:\\n\")\n\t\tfmt.Fprint(w, trimRightSpace(c.LocalFlags().FlagUsages()))\n\t}\n\tif c.HasAvailableInheritedFlags() {\n\t\tfmt.Fprintf(w, \"\\n\\nGlobal Flags:\\n\")\n\t\tfmt.Fprint(w, trimRightSpace(c.InheritedFlags().FlagUsages()))\n\t}\n\tif c.HasHelpSubCommands() {\n\t\tfmt.Fprintf(w, \"\\n\\nAdditional help topics:\")\n\t\tfor _, subcmd := range c.Commands() {\n\t\t\tif subcmd.IsAdditionalHelpTopicCommand() {\n\t\t\t\tfmt.Fprintf(w, \"\\n  %s %s\", rpad(subcmd.CommandPath(), subcmd.CommandPathPadding()), subcmd.Short)\n\t\t\t}\n\t\t}\n\t}\n\tif c.HasAvailableSubCommands() {\n\t\tfmt.Fprintf(w, \"\\n\\nUse \\\"%s [command] --help\\\" for more information about a command.\", c.CommandPath())\n\t}\n\tfmt.Fprintln(w)\n\treturn nil\n}\n\nconst defaultHelpTemplate = `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}\n\n{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`\n\n// defaultHelpFunc is equivalent to executing defaultHelpTemplate. The two should be changed in sync.\nfunc defaultHelpFunc(w io.Writer, in interface{}) error {\n\tc := in.(*Command)\n\tusage := c.Long\n\tif usage == \"\" {\n\t\tusage = c.Short\n\t}\n\tusage = trimRightSpace(usage)\n\tif usage != \"\" {\n\t\tfmt.Fprintln(w, usage)\n\t\tfmt.Fprintln(w)\n\t}\n\tif c.Runnable() || c.HasSubCommands() {\n\t\tfmt.Fprint(w, c.UsageString())\n\t}\n\treturn nil\n}\n\nconst defaultVersionTemplate = `{{with .DisplayName}}{{printf \"%s \" .}}{{end}}{{printf \"version %s\" .Version}}\n`\n\n// defaultVersionFunc is equivalent to executing defaultVersionTemplate. The two should be changed in sync.\nfunc defaultVersionFunc(w io.Writer, in interface{}) error {\n\tc := in.(*Command)\n\t_, err := fmt.Fprintf(w, \"%s version %s\\n\", c.DisplayName(), c.Version)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_notwin.go",
    "content": "// Copyright 2013-2023 The Cobra 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//go:build !windows\n// +build !windows\n\npackage cobra\n\nvar preExecHookFn func(*Command)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_win.go",
    "content": "// Copyright 2013-2023 The Cobra 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//go:build windows\n// +build windows\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/inconshreveable/mousetrap\"\n)\n\nvar preExecHookFn = preExecHook\n\nfunc preExecHook(c *Command) {\n\tif MousetrapHelpText != \"\" && mousetrap.StartedByExplorer() {\n\t\tc.Print(MousetrapHelpText)\n\t\tif MousetrapDisplayDuration > 0 {\n\t\t\ttime.Sleep(MousetrapDisplayDuration)\n\t\t} else {\n\t\t\tc.Println(\"Press return to continue...\")\n\t\t\tfmt.Scanln()\n\t\t}\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nconst (\n\t// ShellCompRequestCmd is the name of the hidden command that is used to request\n\t// completion results from the program.  It is used by the shell completion scripts.\n\tShellCompRequestCmd = \"__complete\"\n\t// ShellCompNoDescRequestCmd is the name of the hidden command that is used to request\n\t// completion results without their description.  It is used by the shell completion scripts.\n\tShellCompNoDescRequestCmd = \"__completeNoDesc\"\n)\n\n// Global map of flag completion functions. Make sure to use flagCompletionMutex before you try to read and write from it.\nvar flagCompletionFunctions = map[*pflag.Flag]CompletionFunc{}\n\n// lock for reading and writing from flagCompletionFunctions\nvar flagCompletionMutex = &sync.RWMutex{}\n\n// ShellCompDirective is a bit map representing the different behaviors the shell\n// can be instructed to have once completions have been provided.\ntype ShellCompDirective int\n\ntype flagCompError struct {\n\tsubCommand string\n\tflagName   string\n}\n\nfunc (e *flagCompError) Error() string {\n\treturn \"Subcommand '\" + e.subCommand + \"' does not support flag '\" + e.flagName + \"'\"\n}\n\nconst (\n\t// ShellCompDirectiveError indicates an error occurred and completions should be ignored.\n\tShellCompDirectiveError ShellCompDirective = 1 << iota\n\n\t// ShellCompDirectiveNoSpace indicates that the shell should not add a space\n\t// after the completion even if there is a single completion provided.\n\tShellCompDirectiveNoSpace\n\n\t// ShellCompDirectiveNoFileComp indicates that the shell should not provide\n\t// file completion even when no completion is provided.\n\tShellCompDirectiveNoFileComp\n\n\t// ShellCompDirectiveFilterFileExt indicates that the provided completions\n\t// should be used as file extension filters.\n\t// For flags, using Command.MarkFlagFilename() and Command.MarkPersistentFlagFilename()\n\t// is a shortcut to using this directive explicitly.  The BashCompFilenameExt\n\t// annotation can also be used to obtain the same behavior for flags.\n\tShellCompDirectiveFilterFileExt\n\n\t// ShellCompDirectiveFilterDirs indicates that only directory names should\n\t// be provided in file completion.  To request directory names within another\n\t// directory, the returned completions should specify the directory within\n\t// which to search.  The BashCompSubdirsInDir annotation can be used to\n\t// obtain the same behavior but only for flags.\n\tShellCompDirectiveFilterDirs\n\n\t// ShellCompDirectiveKeepOrder indicates that the shell should preserve the order\n\t// in which the completions are provided\n\tShellCompDirectiveKeepOrder\n\n\t// ===========================================================================\n\n\t// All directives using iota should be above this one.\n\t// For internal use.\n\tshellCompDirectiveMaxValue\n\n\t// ShellCompDirectiveDefault indicates to let the shell perform its default\n\t// behavior after completions have been provided.\n\t// This one must be last to avoid messing up the iota count.\n\tShellCompDirectiveDefault ShellCompDirective = 0\n)\n\nconst (\n\t// Constants for the completion command\n\tcompCmdName              = \"completion\"\n\tcompCmdNoDescFlagName    = \"no-descriptions\"\n\tcompCmdNoDescFlagDesc    = \"disable completion descriptions\"\n\tcompCmdNoDescFlagDefault = false\n)\n\n// CompletionOptions are the options to control shell completion\ntype CompletionOptions struct {\n\t// DisableDefaultCmd prevents Cobra from creating a default 'completion' command\n\tDisableDefaultCmd bool\n\t// DisableNoDescFlag prevents Cobra from creating the '--no-descriptions' flag\n\t// for shells that support completion descriptions\n\tDisableNoDescFlag bool\n\t// DisableDescriptions turns off all completion descriptions for shells\n\t// that support them\n\tDisableDescriptions bool\n\t// HiddenDefaultCmd makes the default 'completion' command hidden\n\tHiddenDefaultCmd bool\n\t// DefaultShellCompDirective sets the ShellCompDirective that is returned\n\t// if no special directive can be determined\n\tDefaultShellCompDirective *ShellCompDirective\n}\n\nfunc (receiver *CompletionOptions) SetDefaultShellCompDirective(directive ShellCompDirective) {\n\treceiver.DefaultShellCompDirective = &directive\n}\n\n// Completion is a string that can be used for completions\n//\n// two formats are supported:\n//   - the completion choice\n//   - the completion choice with a textual description (separated by a TAB).\n//\n// [CompletionWithDesc] can be used to create a completion string with a textual description.\n//\n// Note: Go type alias is used to provide a more descriptive name in the documentation, but any string can be used.\ntype Completion = string\n\n// CompletionFunc is a function that provides completion results.\ntype CompletionFunc = func(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective)\n\n// CompletionWithDesc returns a [Completion] with a description by using the TAB delimited format.\nfunc CompletionWithDesc(choice string, description string) Completion {\n\treturn choice + \"\\t\" + description\n}\n\n// NoFileCompletions can be used to disable file completion for commands that should\n// not trigger file completions.\n//\n// This method satisfies [CompletionFunc].\n// It can be used with [Command.RegisterFlagCompletionFunc] and for [Command.ValidArgsFunction].\nfunc NoFileCompletions(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) {\n\treturn nil, ShellCompDirectiveNoFileComp\n}\n\n// FixedCompletions can be used to create a completion function which always\n// returns the same results.\n//\n// This method returns a function that satisfies [CompletionFunc]\n// It can be used with [Command.RegisterFlagCompletionFunc] and for [Command.ValidArgsFunction].\nfunc FixedCompletions(choices []Completion, directive ShellCompDirective) CompletionFunc {\n\treturn func(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) {\n\t\treturn choices, directive\n\t}\n}\n\n// RegisterFlagCompletionFunc should be called to register a function to provide completion for a flag.\n//\n// You can use pre-defined completion functions such as [FixedCompletions] or [NoFileCompletions],\n// or you can define your own.\nfunc (c *Command) RegisterFlagCompletionFunc(flagName string, f CompletionFunc) error {\n\tflag := c.Flag(flagName)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"RegisterFlagCompletionFunc: flag '%s' does not exist\", flagName)\n\t}\n\tflagCompletionMutex.Lock()\n\tdefer flagCompletionMutex.Unlock()\n\n\tif _, exists := flagCompletionFunctions[flag]; exists {\n\t\treturn fmt.Errorf(\"RegisterFlagCompletionFunc: flag '%s' already registered\", flagName)\n\t}\n\tflagCompletionFunctions[flag] = f\n\treturn nil\n}\n\n// GetFlagCompletionFunc returns the completion function for the given flag of the command, if available.\nfunc (c *Command) GetFlagCompletionFunc(flagName string) (CompletionFunc, bool) {\n\tflag := c.Flag(flagName)\n\tif flag == nil {\n\t\treturn nil, false\n\t}\n\n\tflagCompletionMutex.RLock()\n\tdefer flagCompletionMutex.RUnlock()\n\n\tcompletionFunc, exists := flagCompletionFunctions[flag]\n\treturn completionFunc, exists\n}\n\n// Returns a string listing the different directive enabled in the specified parameter\nfunc (d ShellCompDirective) string() string {\n\tvar directives []string\n\tif d&ShellCompDirectiveError != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveError\")\n\t}\n\tif d&ShellCompDirectiveNoSpace != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveNoSpace\")\n\t}\n\tif d&ShellCompDirectiveNoFileComp != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveNoFileComp\")\n\t}\n\tif d&ShellCompDirectiveFilterFileExt != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveFilterFileExt\")\n\t}\n\tif d&ShellCompDirectiveFilterDirs != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveFilterDirs\")\n\t}\n\tif d&ShellCompDirectiveKeepOrder != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveKeepOrder\")\n\t}\n\tif len(directives) == 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveDefault\")\n\t}\n\n\tif d >= shellCompDirectiveMaxValue {\n\t\treturn fmt.Sprintf(\"ERROR: unexpected ShellCompDirective value: %d\", d)\n\t}\n\treturn strings.Join(directives, \", \")\n}\n\n// initCompleteCmd adds a special hidden command that can be used to request custom completions.\nfunc (c *Command) initCompleteCmd(args []string) {\n\tcompleteCmd := &Command{\n\t\tUse:                   fmt.Sprintf(\"%s [command-line]\", ShellCompRequestCmd),\n\t\tAliases:               []string{ShellCompNoDescRequestCmd},\n\t\tDisableFlagsInUseLine: true,\n\t\tHidden:                true,\n\t\tDisableFlagParsing:    true,\n\t\tArgs:                  MinimumNArgs(1),\n\t\tShort:                 \"Request shell completion choices for the specified command-line\",\n\t\tLong: fmt.Sprintf(\"%[2]s is a special command that is used by the shell completion logic\\n%[1]s\",\n\t\t\t\"to request completion choices for the specified command-line.\", ShellCompRequestCmd),\n\t\tRun: func(cmd *Command, args []string) {\n\t\t\tfinalCmd, completions, directive, err := cmd.getCompletions(args)\n\t\t\tif err != nil {\n\t\t\t\tCompErrorln(err.Error())\n\t\t\t\t// Keep going for multiple reasons:\n\t\t\t\t// 1- There could be some valid completions even though there was an error\n\t\t\t\t// 2- Even without completions, we need to print the directive\n\t\t\t}\n\n\t\t\tnoDescriptions := cmd.CalledAs() == ShellCompNoDescRequestCmd\n\t\t\tif !noDescriptions {\n\t\t\t\tif doDescriptions, err := strconv.ParseBool(getEnvConfig(cmd, configEnvVarSuffixDescriptions)); err == nil {\n\t\t\t\t\tnoDescriptions = !doDescriptions\n\t\t\t\t}\n\t\t\t}\n\t\t\tnoActiveHelp := GetActiveHelpConfig(finalCmd) == activeHelpGlobalDisable\n\t\t\tout := finalCmd.OutOrStdout()\n\t\t\tfor _, comp := range completions {\n\t\t\t\tif noActiveHelp && strings.HasPrefix(comp, activeHelpMarker) {\n\t\t\t\t\t// Remove all activeHelp entries if it's disabled.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif noDescriptions {\n\t\t\t\t\t// Remove any description that may be included following a tab character.\n\t\t\t\t\tcomp = strings.SplitN(comp, \"\\t\", 2)[0]\n\t\t\t\t}\n\n\t\t\t\t// Make sure we only write the first line to the output.\n\t\t\t\t// This is needed if a description contains a linebreak.\n\t\t\t\t// Otherwise the shell scripts will interpret the other lines as new flags\n\t\t\t\t// and could therefore provide a wrong completion.\n\t\t\t\tcomp = strings.SplitN(comp, \"\\n\", 2)[0]\n\n\t\t\t\t// Finally trim the completion.  This is especially important to get rid\n\t\t\t\t// of a trailing tab when there are no description following it.\n\t\t\t\t// For example, a sub-command without a description should not be completed\n\t\t\t\t// with a tab at the end (or else zsh will show a -- following it\n\t\t\t\t// although there is no description).\n\t\t\t\tcomp = strings.TrimSpace(comp)\n\n\t\t\t\t// Print each possible completion to the output for the completion script to consume.\n\t\t\t\tfmt.Fprintln(out, comp)\n\t\t\t}\n\n\t\t\t// As the last printout, print the completion directive for the completion script to parse.\n\t\t\t// The directive integer must be that last character following a single colon (:).\n\t\t\t// The completion script expects :<directive>\n\t\t\tfmt.Fprintf(out, \":%d\\n\", directive)\n\n\t\t\t// Print some helpful info to stderr for the user to understand.\n\t\t\t// Output from stderr must be ignored by the completion script.\n\t\t\tfmt.Fprintf(finalCmd.ErrOrStderr(), \"Completion ended with directive: %s\\n\", directive.string())\n\t\t},\n\t}\n\tc.AddCommand(completeCmd)\n\tsubCmd, _, err := c.Find(args)\n\tif err != nil || subCmd.Name() != ShellCompRequestCmd {\n\t\t// Only create this special command if it is actually being called.\n\t\t// This reduces possible side-effects of creating such a command;\n\t\t// for example, having this command would cause problems to a\n\t\t// cobra program that only consists of the root command, since this\n\t\t// command would cause the root command to suddenly have a subcommand.\n\t\tc.RemoveCommand(completeCmd)\n\t}\n}\n\n// SliceValue is a reduced version of [pflag.SliceValue]. It is used to detect\n// flags that accept multiple values and therefore can provide completion\n// multiple times.\ntype SliceValue interface {\n\t// GetSlice returns the flag value list as an array of strings.\n\tGetSlice() []string\n}\n\nfunc (c *Command) getCompletions(args []string) (*Command, []Completion, ShellCompDirective, error) {\n\t// The last argument, which is not completely typed by the user,\n\t// should not be part of the list of arguments\n\ttoComplete := args[len(args)-1]\n\ttrimmedArgs := args[:len(args)-1]\n\n\tvar finalCmd *Command\n\tvar finalArgs []string\n\tvar err error\n\t// Find the real command for which completion must be performed\n\t// check if we need to traverse here to parse local flags on parent commands\n\tif c.Root().TraverseChildren {\n\t\tfinalCmd, finalArgs, err = c.Root().Traverse(trimmedArgs)\n\t} else {\n\t\t// For Root commands that don't specify any value for their Args fields, when we call\n\t\t// Find(), if those Root commands don't have any sub-commands, they will accept arguments.\n\t\t// However, because we have added the __complete sub-command in the current code path, the\n\t\t// call to Find() -> legacyArgs() will return an error if there are any arguments.\n\t\t// To avoid this, we first remove the __complete command to get back to having no sub-commands.\n\t\trootCmd := c.Root()\n\t\tif len(rootCmd.Commands()) == 1 {\n\t\t\trootCmd.RemoveCommand(c)\n\t\t}\n\n\t\tfinalCmd, finalArgs, err = rootCmd.Find(trimmedArgs)\n\t}\n\tif err != nil {\n\t\t// Unable to find the real command. E.g., <program> someInvalidCmd <TAB>\n\t\treturn c, []Completion{}, ShellCompDirectiveDefault, fmt.Errorf(\"unable to find a command for arguments: %v\", trimmedArgs)\n\t}\n\tfinalCmd.ctx = c.ctx\n\n\t// These flags are normally added when `execute()` is called on `finalCmd`,\n\t// however, when doing completion, we don't call `finalCmd.execute()`.\n\t// Let's add the --help and --version flag ourselves but only if the finalCmd\n\t// has not disabled flag parsing; if flag parsing is disabled, it is up to the\n\t// finalCmd itself to handle the completion of *all* flags.\n\tif !finalCmd.DisableFlagParsing {\n\t\tfinalCmd.InitDefaultHelpFlag()\n\t\tfinalCmd.InitDefaultVersionFlag()\n\t}\n\n\t// Check if we are doing flag value completion before parsing the flags.\n\t// This is important because if we are completing a flag value, we need to also\n\t// remove the flag name argument from the list of finalArgs or else the parsing\n\t// could fail due to an invalid value (incomplete) for the flag.\n\tflag, finalArgs, toComplete, flagErr := checkIfFlagCompletion(finalCmd, finalArgs, toComplete)\n\n\t// Check if interspersed is false or -- was set on a previous arg.\n\t// This works by counting the arguments. Normally -- is not counted as arg but\n\t// if -- was already set or interspersed is false and there is already one arg then\n\t// the extra added -- is counted as arg.\n\tflagCompletion := true\n\t_ = finalCmd.ParseFlags(append(finalArgs, \"--\"))\n\tnewArgCount := finalCmd.Flags().NArg()\n\n\t// Parse the flags early so we can check if required flags are set\n\tif err = finalCmd.ParseFlags(finalArgs); err != nil {\n\t\treturn finalCmd, []Completion{}, ShellCompDirectiveDefault, fmt.Errorf(\"Error while parsing flags from args %v: %s\", finalArgs, err.Error())\n\t}\n\n\trealArgCount := finalCmd.Flags().NArg()\n\tif newArgCount > realArgCount {\n\t\t// don't do flag completion (see above)\n\t\tflagCompletion = false\n\t}\n\t// Error while attempting to parse flags\n\tif flagErr != nil {\n\t\t// If error type is flagCompError and we don't want flagCompletion we should ignore the error\n\t\tif _, ok := flagErr.(*flagCompError); !ok || flagCompletion {\n\t\t\treturn finalCmd, []Completion{}, ShellCompDirectiveDefault, flagErr\n\t\t}\n\t}\n\n\t// Look for the --help or --version flags.  If they are present,\n\t// there should be no further completions.\n\tif helpOrVersionFlagPresent(finalCmd) {\n\t\treturn finalCmd, []Completion{}, ShellCompDirectiveNoFileComp, nil\n\t}\n\n\t// We only remove the flags from the arguments if DisableFlagParsing is not set.\n\t// This is important for commands which have requested to do their own flag completion.\n\tif !finalCmd.DisableFlagParsing {\n\t\tfinalArgs = finalCmd.Flags().Args()\n\t}\n\n\tif flag != nil && flagCompletion {\n\t\t// Check if we are completing a flag value subject to annotations\n\t\tif validExts, present := flag.Annotations[BashCompFilenameExt]; present {\n\t\t\tif len(validExts) != 0 {\n\t\t\t\t// File completion filtered by extensions\n\t\t\t\treturn finalCmd, validExts, ShellCompDirectiveFilterFileExt, nil\n\t\t\t}\n\n\t\t\t// The annotation requests simple file completion.  There is no reason to do\n\t\t\t// that since it is the default behavior anyway.  Let's ignore this annotation\n\t\t\t// in case the program also registered a completion function for this flag.\n\t\t\t// Even though it is a mistake on the program's side, let's be nice when we can.\n\t\t}\n\n\t\tif subDir, present := flag.Annotations[BashCompSubdirsInDir]; present {\n\t\t\tif len(subDir) == 1 {\n\t\t\t\t// Directory completion from within a directory\n\t\t\t\treturn finalCmd, subDir, ShellCompDirectiveFilterDirs, nil\n\t\t\t}\n\t\t\t// Directory completion\n\t\t\treturn finalCmd, []Completion{}, ShellCompDirectiveFilterDirs, nil\n\t\t}\n\t}\n\n\tvar completions []Completion\n\tvar directive ShellCompDirective\n\n\t// Enforce flag groups before doing flag completions\n\tfinalCmd.enforceFlagGroupsForCompletion()\n\n\t// Note that we want to perform flagname completion even if finalCmd.DisableFlagParsing==true;\n\t// doing this allows for completion of persistent flag names even for commands that disable flag parsing.\n\t//\n\t// When doing completion of a flag name, as soon as an argument starts with\n\t// a '-' we know it is a flag.  We cannot use isFlagArg() here as it requires\n\t// the flag name to be complete\n\tif flag == nil && len(toComplete) > 0 && toComplete[0] == '-' && !strings.Contains(toComplete, \"=\") && flagCompletion {\n\t\t// First check for required flags\n\t\tcompletions = completeRequireFlags(finalCmd, toComplete)\n\n\t\t// If we have not found any required flags, only then can we show regular flags\n\t\tif len(completions) == 0 {\n\t\t\tdoCompleteFlags := func(flag *pflag.Flag) {\n\t\t\t\t_, acceptsMultiple := flag.Value.(SliceValue)\n\t\t\t\tacceptsMultiple = acceptsMultiple ||\n\t\t\t\t\tstrings.Contains(flag.Value.Type(), \"Slice\") ||\n\t\t\t\t\tstrings.Contains(flag.Value.Type(), \"Array\") ||\n\t\t\t\t\tstrings.HasPrefix(flag.Value.Type(), \"stringTo\")\n\n\t\t\t\tif !flag.Changed || acceptsMultiple {\n\t\t\t\t\t// If the flag is not already present, or if it can be specified multiple times (Array, Slice, or stringTo)\n\t\t\t\t\t// we suggest it as a completion\n\t\t\t\t\tcompletions = append(completions, getFlagNameCompletions(flag, toComplete)...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands\n\t\t\t// that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and\n\t\t\t// non-inherited flags.\n\t\t\tfinalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\tdoCompleteFlags(flag)\n\t\t\t})\n\t\t\t// Try to complete non-inherited flags even if DisableFlagParsing==true.\n\t\t\t// This allows programs to tell Cobra about flags for completion even\n\t\t\t// if the actual parsing of flags is not done by Cobra.\n\t\t\t// For instance, Helm uses this to provide flag name completion for\n\t\t\t// some of its plugins.\n\t\t\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\tdoCompleteFlags(flag)\n\t\t\t})\n\t\t}\n\n\t\tdirective = ShellCompDirectiveNoFileComp\n\t\tif len(completions) == 1 && strings.HasSuffix(completions[0], \"=\") {\n\t\t\t// If there is a single completion, the shell usually adds a space\n\t\t\t// after the completion.  We don't want that if the flag ends with an =\n\t\t\tdirective = ShellCompDirectiveNoSpace\n\t\t}\n\n\t\tif !finalCmd.DisableFlagParsing {\n\t\t\t// If DisableFlagParsing==false, we have completed the flags as known by Cobra;\n\t\t\t// we can return what we found.\n\t\t\t// If DisableFlagParsing==true, Cobra may not be aware of all flags, so we\n\t\t\t// let the logic continue to see if ValidArgsFunction needs to be called.\n\t\t\treturn finalCmd, completions, directive, nil\n\t\t}\n\t} else {\n\t\tdirective = ShellCompDirectiveDefault\n\t\t// check current and parent commands for a custom DefaultShellCompDirective\n\t\tfor cmd := finalCmd; cmd != nil; cmd = cmd.parent {\n\t\t\tif cmd.CompletionOptions.DefaultShellCompDirective != nil {\n\t\t\t\tdirective = *cmd.CompletionOptions.DefaultShellCompDirective\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif flag == nil {\n\t\t\tfoundLocalNonPersistentFlag := false\n\t\t\t// If TraverseChildren is true on the root command we don't check for\n\t\t\t// local flags because we can use a local flag on a parent command\n\t\t\tif !finalCmd.Root().TraverseChildren {\n\t\t\t\t// Check if there are any local, non-persistent flags on the command-line\n\t\t\t\tlocalNonPersistentFlags := finalCmd.LocalNonPersistentFlags()\n\t\t\t\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\t\tif localNonPersistentFlags.Lookup(flag.Name) != nil && flag.Changed {\n\t\t\t\t\t\tfoundLocalNonPersistentFlag = true\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// Complete subcommand names, including the help command\n\t\t\tif len(finalArgs) == 0 && !foundLocalNonPersistentFlag {\n\t\t\t\t// We only complete sub-commands if:\n\t\t\t\t// - there are no arguments on the command-line and\n\t\t\t\t// - there are no local, non-persistent flags on the command-line or TraverseChildren is true\n\t\t\t\tfor _, subCmd := range finalCmd.Commands() {\n\t\t\t\t\tif subCmd.IsAvailableCommand() || subCmd == finalCmd.helpCommand {\n\t\t\t\t\t\tif strings.HasPrefix(subCmd.Name(), toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, CompletionWithDesc(subCmd.Name(), subCmd.Short))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdirective = ShellCompDirectiveNoFileComp\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Complete required flags even without the '-' prefix\n\t\t\tcompletions = append(completions, completeRequireFlags(finalCmd, toComplete)...)\n\n\t\t\t// Always complete ValidArgs, even if we are completing a subcommand name.\n\t\t\t// This is for commands that have both subcommands and ValidArgs.\n\t\t\tif len(finalCmd.ValidArgs) > 0 {\n\t\t\t\tif len(finalArgs) == 0 {\n\t\t\t\t\t// ValidArgs are only for the first argument\n\t\t\t\t\tfor _, validArg := range finalCmd.ValidArgs {\n\t\t\t\t\t\tif strings.HasPrefix(validArg, toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, validArg)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdirective = ShellCompDirectiveNoFileComp\n\n\t\t\t\t\t// If no completions were found within commands or ValidArgs,\n\t\t\t\t\t// see if there are any ArgAliases that should be completed.\n\t\t\t\t\tif len(completions) == 0 {\n\t\t\t\t\t\tfor _, argAlias := range finalCmd.ArgAliases {\n\t\t\t\t\t\t\tif strings.HasPrefix(argAlias, toComplete) {\n\t\t\t\t\t\t\t\tcompletions = append(completions, argAlias)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If there are ValidArgs specified (even if they don't match), we stop completion.\n\t\t\t\t// Only one of ValidArgs or ValidArgsFunction can be used for a single command.\n\t\t\t\treturn finalCmd, completions, directive, nil\n\t\t\t}\n\n\t\t\t// Let the logic continue so as to add any ValidArgsFunction completions,\n\t\t\t// even if we already found sub-commands.\n\t\t\t// This is for commands that have subcommands but also specify a ValidArgsFunction.\n\t\t}\n\t}\n\n\t// Find the completion function for the flag or command\n\tvar completionFn CompletionFunc\n\tif flag != nil && flagCompletion {\n\t\tflagCompletionMutex.RLock()\n\t\tcompletionFn = flagCompletionFunctions[flag]\n\t\tflagCompletionMutex.RUnlock()\n\t} else {\n\t\tcompletionFn = finalCmd.ValidArgsFunction\n\t}\n\tif completionFn != nil {\n\t\t// Go custom completion defined for this flag or command.\n\t\t// Call the registered completion function to get the completions.\n\t\tvar comps []Completion\n\t\tcomps, directive = completionFn(finalCmd, finalArgs, toComplete)\n\t\tcompletions = append(completions, comps...)\n\t}\n\n\treturn finalCmd, completions, directive, nil\n}\n\nfunc helpOrVersionFlagPresent(cmd *Command) bool {\n\tif versionFlag := cmd.Flags().Lookup(\"version\"); versionFlag != nil &&\n\t\tlen(versionFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && versionFlag.Changed {\n\t\treturn true\n\t}\n\tif helpFlag := cmd.Flags().Lookup(helpFlagName); helpFlag != nil &&\n\t\tlen(helpFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && helpFlag.Changed {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc getFlagNameCompletions(flag *pflag.Flag, toComplete string) []Completion {\n\tif nonCompletableFlag(flag) {\n\t\treturn []Completion{}\n\t}\n\n\tvar completions []Completion\n\tflagName := \"--\" + flag.Name\n\tif strings.HasPrefix(flagName, toComplete) {\n\t\t// Flag without the =\n\t\tcompletions = append(completions, CompletionWithDesc(flagName, flag.Usage))\n\n\t\t// Why suggest both long forms: --flag and --flag= ?\n\t\t// This forces the user to *always* have to type either an = or a space after the flag name.\n\t\t// Let's be nice and avoid making users have to do that.\n\t\t// Since boolean flags and shortname flags don't show the = form, let's go that route and never show it.\n\t\t// The = form will still work, we just won't suggest it.\n\t\t// This also makes the list of suggested flags shorter as we avoid all the = forms.\n\t\t//\n\t\t// if len(flag.NoOptDefVal) == 0 {\n\t\t// \t// Flag requires a value, so it can be suffixed with =\n\t\t// \tflagName += \"=\"\n\t\t// \tcompletions = append(completions, CompletionWithDesc(flagName, flag.Usage))\n\t\t// }\n\t}\n\n\tflagName = \"-\" + flag.Shorthand\n\tif len(flag.Shorthand) > 0 && strings.HasPrefix(flagName, toComplete) {\n\t\tcompletions = append(completions, CompletionWithDesc(flagName, flag.Usage))\n\t}\n\n\treturn completions\n}\n\nfunc completeRequireFlags(finalCmd *Command, toComplete string) []Completion {\n\tvar completions []Completion\n\n\tdoCompleteRequiredFlags := func(flag *pflag.Flag) {\n\t\tif _, present := flag.Annotations[BashCompOneRequiredFlag]; present {\n\t\t\tif !flag.Changed {\n\t\t\t\t// If the flag is not already present, we suggest it as a completion\n\t\t\t\tcompletions = append(completions, getFlagNameCompletions(flag, toComplete)...)\n\t\t\t}\n\t\t}\n\t}\n\n\t// We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands\n\t// that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and\n\t// non-inherited flags.\n\tfinalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tdoCompleteRequiredFlags(flag)\n\t})\n\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tdoCompleteRequiredFlags(flag)\n\t})\n\n\treturn completions\n}\n\nfunc checkIfFlagCompletion(finalCmd *Command, args []string, lastArg string) (*pflag.Flag, []string, string, error) {\n\tif finalCmd.DisableFlagParsing {\n\t\t// We only do flag completion if we are allowed to parse flags\n\t\t// This is important for commands which have requested to do their own flag completion.\n\t\treturn nil, args, lastArg, nil\n\t}\n\n\tvar flagName string\n\ttrimmedArgs := args\n\tflagWithEqual := false\n\torgLastArg := lastArg\n\n\t// When doing completion of a flag name, as soon as an argument starts with\n\t// a '-' we know it is a flag.  We cannot use isFlagArg() here as that function\n\t// requires the flag name to be complete\n\tif len(lastArg) > 0 && lastArg[0] == '-' {\n\t\tif index := strings.Index(lastArg, \"=\"); index >= 0 {\n\t\t\t// Flag with an =\n\t\t\tif strings.HasPrefix(lastArg[:index], \"--\") {\n\t\t\t\t// Flag has full name\n\t\t\t\tflagName = lastArg[2:index]\n\t\t\t} else {\n\t\t\t\t// Flag is shorthand\n\t\t\t\t// We have to get the last shorthand flag name\n\t\t\t\t// e.g. `-asd` => d to provide the correct completion\n\t\t\t\t// https://github.com/spf13/cobra/issues/1257\n\t\t\t\tflagName = lastArg[index-1 : index]\n\t\t\t}\n\t\t\tlastArg = lastArg[index+1:]\n\t\t\tflagWithEqual = true\n\t\t} else {\n\t\t\t// Normal flag completion\n\t\t\treturn nil, args, lastArg, nil\n\t\t}\n\t}\n\n\tif len(flagName) == 0 {\n\t\tif len(args) > 0 {\n\t\t\tprevArg := args[len(args)-1]\n\t\t\tif isFlagArg(prevArg) {\n\t\t\t\t// Only consider the case where the flag does not contain an =.\n\t\t\t\t// If the flag contains an = it means it has already been fully processed,\n\t\t\t\t// so we don't need to deal with it here.\n\t\t\t\tif index := strings.Index(prevArg, \"=\"); index < 0 {\n\t\t\t\t\tif strings.HasPrefix(prevArg, \"--\") {\n\t\t\t\t\t\t// Flag has full name\n\t\t\t\t\t\tflagName = prevArg[2:]\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Flag is shorthand\n\t\t\t\t\t\t// We have to get the last shorthand flag name\n\t\t\t\t\t\t// e.g. `-asd` => d to provide the correct completion\n\t\t\t\t\t\t// https://github.com/spf13/cobra/issues/1257\n\t\t\t\t\t\tflagName = prevArg[len(prevArg)-1:]\n\t\t\t\t\t}\n\t\t\t\t\t// Remove the uncompleted flag or else there could be an error created\n\t\t\t\t\t// for an invalid value for that flag\n\t\t\t\t\ttrimmedArgs = args[:len(args)-1]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(flagName) == 0 {\n\t\t// Not doing flag completion\n\t\treturn nil, trimmedArgs, lastArg, nil\n\t}\n\n\tflag := findFlag(finalCmd, flagName)\n\tif flag == nil {\n\t\t// Flag not supported by this command, the interspersed option might be set so return the original args\n\t\treturn nil, args, orgLastArg, &flagCompError{subCommand: finalCmd.Name(), flagName: flagName}\n\t}\n\n\tif !flagWithEqual {\n\t\tif len(flag.NoOptDefVal) != 0 {\n\t\t\t// We had assumed dealing with a two-word flag but the flag is a boolean flag.\n\t\t\t// In that case, there is no value following it, so we are not really doing flag completion.\n\t\t\t// Reset everything to do noun completion.\n\t\t\ttrimmedArgs = args\n\t\t\tflag = nil\n\t\t}\n\t}\n\n\treturn flag, trimmedArgs, lastArg, nil\n}\n\n// InitDefaultCompletionCmd adds a default 'completion' command to c.\n// This function will do nothing if any of the following is true:\n// 1- the feature has been explicitly disabled by the program,\n// 2- c has no subcommands (to avoid creating one),\n// 3- c already has a 'completion' command provided by the program.\nfunc (c *Command) InitDefaultCompletionCmd(args ...string) {\n\tif c.CompletionOptions.DisableDefaultCmd {\n\t\treturn\n\t}\n\n\tfor _, cmd := range c.commands {\n\t\tif cmd.Name() == compCmdName || cmd.HasAlias(compCmdName) {\n\t\t\t// A completion command is already available\n\t\t\treturn\n\t\t}\n\t}\n\n\thaveNoDescFlag := !c.CompletionOptions.DisableNoDescFlag && !c.CompletionOptions.DisableDescriptions\n\n\t// Special case to know if there are sub-commands or not.\n\thasSubCommands := false\n\tfor _, cmd := range c.commands {\n\t\tif cmd.Name() != ShellCompRequestCmd && cmd.Name() != helpCommandName {\n\t\t\t// We found a real sub-command (not 'help' or '__complete')\n\t\t\thasSubCommands = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tcompletionCmd := &Command{\n\t\tUse:   compCmdName,\n\t\tShort: \"Generate the autocompletion script for the specified shell\",\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for %[1]s for the specified shell.\nSee each sub-command's help for details on how to use the generated script.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tHidden:            c.CompletionOptions.HiddenDefaultCmd,\n\t\tGroupID:           c.completionCommandGroupID,\n\t}\n\tc.AddCommand(completionCmd)\n\n\tif !hasSubCommands {\n\t\t// If the 'completion' command will be the only sub-command,\n\t\t// we only create it if it is actually being called.\n\t\t// This avoids breaking programs that would suddenly find themselves with\n\t\t// a subcommand, which would prevent them from accepting arguments.\n\t\t// We also create the 'completion' command if the user is triggering\n\t\t// shell completion for it (prog __complete completion '')\n\t\tsubCmd, cmdArgs, err := c.Find(args)\n\t\tif err != nil || subCmd.Name() != compCmdName &&\n\t\t\t(subCmd.Name() != ShellCompRequestCmd || len(cmdArgs) <= 1 || cmdArgs[0] != compCmdName) {\n\t\t\t// The completion command is not being called or being completed so we remove it.\n\t\t\tc.RemoveCommand(completionCmd)\n\t\t\treturn\n\t\t}\n\t}\n\n\tout := c.OutOrStdout()\n\tnoDesc := c.CompletionOptions.DisableDescriptions\n\tshortDesc := \"Generate the autocompletion script for %s\"\n\tbash := &Command{\n\t\tUse:   \"bash\",\n\t\tShort: fmt.Sprintf(shortDesc, \"bash\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the bash shell.\n\nThis script depends on the 'bash-completion' package.\nIf it is not installed already, you can install it via your OS's package manager.\n\nTo load completions in your current shell session:\n\n\tsource <(%[1]s completion bash)\n\nTo load completions for every new session, execute once:\n\n#### Linux:\n\n\t%[1]s completion bash > /etc/bash_completion.d/%[1]s\n\n#### macOS:\n\n\t%[1]s completion bash > $(brew --prefix)/etc/bash_completion.d/%[1]s\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:                  NoArgs,\n\t\tDisableFlagsInUseLine: true,\n\t\tValidArgsFunction:     NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\treturn cmd.Root().GenBashCompletionV2(out, !noDesc)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tbash.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tzsh := &Command{\n\t\tUse:   \"zsh\",\n\t\tShort: fmt.Sprintf(shortDesc, \"zsh\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the zsh shell.\n\nIf shell completion is not already enabled in your environment you will need\nto enable it.  You can execute the following once:\n\n\techo \"autoload -U compinit; compinit\" >> ~/.zshrc\n\nTo load completions in your current shell session:\n\n\tsource <(%[1]s completion zsh)\n\nTo load completions for every new session, execute once:\n\n#### Linux:\n\n\t%[1]s completion zsh > \"${fpath[1]}/_%[1]s\"\n\n#### macOS:\n\n\t%[1]s completion zsh > $(brew --prefix)/share/zsh/site-functions/_%[1]s\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\tif noDesc {\n\t\t\t\treturn cmd.Root().GenZshCompletionNoDesc(out)\n\t\t\t}\n\t\t\treturn cmd.Root().GenZshCompletion(out)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tzsh.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tfish := &Command{\n\t\tUse:   \"fish\",\n\t\tShort: fmt.Sprintf(shortDesc, \"fish\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the fish shell.\n\nTo load completions in your current shell session:\n\n\t%[1]s completion fish | source\n\nTo load completions for every new session, execute once:\n\n\t%[1]s completion fish > ~/.config/fish/completions/%[1]s.fish\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\treturn cmd.Root().GenFishCompletion(out, !noDesc)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tfish.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tpowershell := &Command{\n\t\tUse:   \"powershell\",\n\t\tShort: fmt.Sprintf(shortDesc, \"powershell\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for powershell.\n\nTo load completions in your current shell session:\n\n\t%[1]s completion powershell | Out-String | Invoke-Expression\n\nTo load completions for every new session, add the output of the above command\nto your powershell profile.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\tif noDesc {\n\t\t\t\treturn cmd.Root().GenPowerShellCompletion(out)\n\t\t\t}\n\t\t\treturn cmd.Root().GenPowerShellCompletionWithDesc(out)\n\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tpowershell.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tcompletionCmd.AddCommand(bash, zsh, fish, powershell)\n}\n\nfunc findFlag(cmd *Command, name string) *pflag.Flag {\n\tflagSet := cmd.Flags()\n\tif len(name) == 1 {\n\t\t// First convert the short flag into a long flag\n\t\t// as the cmd.Flag() search only accepts long flags\n\t\tif short := flagSet.ShorthandLookup(name); short != nil {\n\t\t\tname = short.Name\n\t\t} else {\n\t\t\tset := cmd.InheritedFlags()\n\t\t\tif short = set.ShorthandLookup(name); short != nil {\n\t\t\t\tname = short.Name\n\t\t\t} else {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\treturn cmd.Flag(name)\n}\n\n// CompDebug prints the specified string to the same file as where the\n// completion script prints its logs.\n// Note that completion printouts should never be on stdout as they would\n// be wrongly interpreted as actual completion choices by the completion script.\nfunc CompDebug(msg string, printToStdErr bool) {\n\tmsg = fmt.Sprintf(\"[Debug] %s\", msg)\n\n\t// Such logs are only printed when the user has set the environment\n\t// variable BASH_COMP_DEBUG_FILE to the path of some file to be used.\n\tif path := os.Getenv(\"BASH_COMP_DEBUG_FILE\"); path != \"\" {\n\t\tf, err := os.OpenFile(path,\n\t\t\tos.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)\n\t\tif err == nil {\n\t\t\tdefer f.Close()\n\t\t\tWriteStringAndCheck(f, msg)\n\t\t}\n\t}\n\n\tif printToStdErr {\n\t\t// Must print to stderr for this not to be read by the completion script.\n\t\tfmt.Fprint(os.Stderr, msg)\n\t}\n}\n\n// CompDebugln prints the specified string with a newline at the end\n// to the same file as where the completion script prints its logs.\n// Such logs are only printed when the user has set the environment\n// variable BASH_COMP_DEBUG_FILE to the path of some file to be used.\nfunc CompDebugln(msg string, printToStdErr bool) {\n\tCompDebug(fmt.Sprintf(\"%s\\n\", msg), printToStdErr)\n}\n\n// CompError prints the specified completion message to stderr.\nfunc CompError(msg string) {\n\tmsg = fmt.Sprintf(\"[Error] %s\", msg)\n\tCompDebug(msg, true)\n}\n\n// CompErrorln prints the specified completion message to stderr with a newline at the end.\nfunc CompErrorln(msg string) {\n\tCompError(fmt.Sprintf(\"%s\\n\", msg))\n}\n\n// These values should not be changed: users will be using them explicitly.\nconst (\n\tconfigEnvVarGlobalPrefix       = \"COBRA\"\n\tconfigEnvVarSuffixDescriptions = \"COMPLETION_DESCRIPTIONS\"\n)\n\nvar configEnvVarPrefixSubstRegexp = regexp.MustCompile(`[^A-Z0-9_]`)\n\n// configEnvVar returns the name of the program-specific configuration environment\n// variable.  It has the format <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the\n// root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`.\nfunc configEnvVar(name, suffix string) string {\n\t// This format should not be changed: users will be using it explicitly.\n\tv := strings.ToUpper(fmt.Sprintf(\"%s_%s\", name, suffix))\n\tv = configEnvVarPrefixSubstRegexp.ReplaceAllString(v, \"_\")\n\treturn v\n}\n\n// getEnvConfig returns the value of the configuration environment variable\n// <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the root command in upper\n// case, with all non-ASCII-alphanumeric characters replaced by `_`.\n// If the value is empty or not set, the value of the environment variable\n// COBRA_<SUFFIX> is returned instead.\nfunc getEnvConfig(cmd *Command, suffix string) string {\n\tv := os.Getenv(configEnvVar(cmd.Root().Name(), suffix))\n\tif v == \"\" {\n\t\tv = os.Getenv(configEnvVar(configEnvVarGlobalPrefix, suffix))\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/fish_completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genFishComp(buf io.StringWriter, name string, includeDesc bool) {\n\t// Variables should not contain a '-' or ':' character\n\tnameForVar := name\n\tnameForVar = strings.ReplaceAll(nameForVar, \"-\", \"_\")\n\tnameForVar = strings.ReplaceAll(nameForVar, \":\", \"_\")\n\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"# fish completion for %-36s -*- shell-script -*-\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`\nfunction __%[1]s_debug\n    set -l file \"$BASH_COMP_DEBUG_FILE\"\n    if test -n \"$file\"\n        echo \"$argv\" >> $file\n    end\nend\n\nfunction __%[1]s_perform_completion\n    __%[1]s_debug \"Starting __%[1]s_perform_completion\"\n\n    # Extract all args except the last one\n    set -l args (commandline -opc)\n    # Extract the last arg and escape it in case it is a space\n    set -l lastArg (string escape -- (commandline -ct))\n\n    __%[1]s_debug \"args: $args\"\n    __%[1]s_debug \"last arg: $lastArg\"\n\n    # Disable ActiveHelp which is not supported for fish shell\n    set -l requestComp \"%[10]s=0 $args[1] %[3]s $args[2..-1] $lastArg\"\n\n    __%[1]s_debug \"Calling $requestComp\"\n    set -l results (eval $requestComp 2> /dev/null)\n\n    # Some programs may output extra empty lines after the directive.\n    # Let's ignore them or else it will break completion.\n    # Ref: https://github.com/spf13/cobra/issues/1279\n    for line in $results[-1..1]\n        if test (string trim -- $line) = \"\"\n            # Found an empty line, remove it\n            set results $results[1..-2]\n        else\n            # Found non-empty line, we have our proper output\n            break\n        end\n    end\n\n    set -l comps $results[1..-2]\n    set -l directiveLine $results[-1]\n\n    # For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)\n    # completions must be prefixed with the flag\n    set -l flagPrefix (string match -r -- '-.*=' \"$lastArg\")\n\n    __%[1]s_debug \"Comps: $comps\"\n    __%[1]s_debug \"DirectiveLine: $directiveLine\"\n    __%[1]s_debug \"flagPrefix: $flagPrefix\"\n\n    for comp in $comps\n        printf \"%%s%%s\\n\" \"$flagPrefix\" \"$comp\"\n    end\n\n    printf \"%%s\\n\" \"$directiveLine\"\nend\n\n# this function limits calls to __%[1]s_perform_completion, by caching the result behind $__%[1]s_perform_completion_once_result\nfunction __%[1]s_perform_completion_once\n    __%[1]s_debug \"Starting __%[1]s_perform_completion_once\"\n\n    if test -n \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"Seems like a valid result already exists, skipping __%[1]s_perform_completion\"\n        return 0\n    end\n\n    set --global __%[1]s_perform_completion_once_result (__%[1]s_perform_completion)\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"No completions, probably due to a failure\"\n        return 1\n    end\n\n    __%[1]s_debug \"Performed completions and set __%[1]s_perform_completion_once_result\"\n    return 0\nend\n\n# this function is used to clear the $__%[1]s_perform_completion_once_result variable after completions are run\nfunction __%[1]s_clear_perform_completion_once_result\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= clearing previously set __%[1]s_perform_completion_once_result variable ==========\"\n    set --erase __%[1]s_perform_completion_once_result\n    __%[1]s_debug \"Successfully erased the variable __%[1]s_perform_completion_once_result\"\nend\n\nfunction __%[1]s_requires_order_preservation\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= checking if order preservation is required ==========\"\n\n    __%[1]s_perform_completion_once\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"Error determining if order preservation is required\"\n        return 1\n    end\n\n    set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1])\n    __%[1]s_debug \"Directive is: $directive\"\n\n    set -l shellCompDirectiveKeepOrder %[9]d\n    set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) %% 2)\n    __%[1]s_debug \"Keeporder is: $keeporder\"\n\n    if test $keeporder -ne 0\n        __%[1]s_debug \"This does require order preservation\"\n        return 0\n    end\n\n    __%[1]s_debug \"This doesn't require order preservation\"\n    return 1\nend\n\n\n# This function does two things:\n# - Obtain the completions and store them in the global __%[1]s_comp_results\n# - Return false if file completion should be performed\nfunction __%[1]s_prepare_completions\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= starting completion logic ==========\"\n\n    # Start fresh\n    set --erase __%[1]s_comp_results\n\n    __%[1]s_perform_completion_once\n    __%[1]s_debug \"Completion results: $__%[1]s_perform_completion_once_result\"\n\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"No completion, probably due to a failure\"\n        # Might as well do file completion, in case it helps\n        return 1\n    end\n\n    set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1])\n    set --global __%[1]s_comp_results $__%[1]s_perform_completion_once_result[1..-2]\n\n    __%[1]s_debug \"Completions are: $__%[1]s_comp_results\"\n    __%[1]s_debug \"Directive is: $directive\"\n\n    set -l shellCompDirectiveError %[4]d\n    set -l shellCompDirectiveNoSpace %[5]d\n    set -l shellCompDirectiveNoFileComp %[6]d\n    set -l shellCompDirectiveFilterFileExt %[7]d\n    set -l shellCompDirectiveFilterDirs %[8]d\n\n    if test -z \"$directive\"\n        set directive 0\n    end\n\n    set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) %% 2)\n    if test $compErr -eq 1\n        __%[1]s_debug \"Received error directive: aborting.\"\n        # Might as well do file completion, in case it helps\n        return 1\n    end\n\n    set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) %% 2)\n    set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) %% 2)\n    if test $filefilter -eq 1; or test $dirfilter -eq 1\n        __%[1]s_debug \"File extension filtering or directory filtering not supported\"\n        # Do full file completion instead\n        return 1\n    end\n\n    set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) %% 2)\n    set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) %% 2)\n\n    __%[1]s_debug \"nospace: $nospace, nofiles: $nofiles\"\n\n    # If we want to prevent a space, or if file completion is NOT disabled,\n    # we need to count the number of valid completions.\n    # To do so, we will filter on prefix as the completions we have received\n    # may not already be filtered so as to allow fish to match on different\n    # criteria than the prefix.\n    if test $nospace -ne 0; or test $nofiles -eq 0\n        set -l prefix (commandline -t | string escape --style=regex)\n        __%[1]s_debug \"prefix: $prefix\"\n\n        set -l completions (string match -r -- \"^$prefix.*\" $__%[1]s_comp_results)\n        set --global __%[1]s_comp_results $completions\n        __%[1]s_debug \"Filtered completions are: $__%[1]s_comp_results\"\n\n        # Important not to quote the variable for count to work\n        set -l numComps (count $__%[1]s_comp_results)\n        __%[1]s_debug \"numComps: $numComps\"\n\n        if test $numComps -eq 1; and test $nospace -ne 0\n            # We must first split on \\t to get rid of the descriptions to be\n            # able to check what the actual completion will be.\n            # We don't need descriptions anyway since there is only a single\n            # real completion which the shell will expand immediately.\n            set -l split (string split --max 1 \\t $__%[1]s_comp_results[1])\n\n            # Fish won't add a space if the completion ends with any\n            # of the following characters: @=/:.,\n            set -l lastChar (string sub -s -1 -- $split)\n            if not string match -r -q \"[@=/:.,]\" -- \"$lastChar\"\n                # In other cases, to support the \"nospace\" directive we trick the shell\n                # by outputting an extra, longer completion.\n                __%[1]s_debug \"Adding second completion to perform nospace directive\"\n                set --global __%[1]s_comp_results $split[1] $split[1].\n                __%[1]s_debug \"Completions are now: $__%[1]s_comp_results\"\n            end\n        end\n\n        if test $numComps -eq 0; and test $nofiles -eq 0\n            # To be consistent with bash and zsh, we only trigger file\n            # completion when there are no other completions\n            __%[1]s_debug \"Requesting file completion\"\n            return 1\n        end\n    end\n\n    return 0\nend\n\n# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves\n# so we can properly delete any completions provided by another script.\n# Only do this if the program can be found, or else fish may print some errors; besides,\n# the existing completions will only be loaded if the program can be found.\nif type -q \"%[2]s\"\n    # The space after the program name is essential to trigger completion for the program\n    # and not completion of the program name itself.\n    # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.\n    complete --do-complete \"%[2]s \" > /dev/null 2>&1\nend\n\n# Remove any pre-existing completions for the program since we will be handling all of them.\ncomplete -c %[2]s -e\n\n# this will get called after the two calls below and clear the $__%[1]s_perform_completion_once_result global\ncomplete -c %[2]s -n '__%[1]s_clear_perform_completion_once_result'\n# The call to __%[1]s_prepare_completions will setup __%[1]s_comp_results\n# which provides the program's completion choices.\n# If this doesn't require order preservation, we don't use the -k flag\ncomplete -c %[2]s -n 'not __%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results'\n# otherwise we use the -k flag\ncomplete -k -c %[2]s -n '__%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results'\n`, nameForVar, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))\n}\n\n// GenFishCompletion generates fish completion file and writes to the passed writer.\nfunc (c *Command) GenFishCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenFishComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\n// GenFishCompletionFile generates fish completion file.\nfunc (c *Command) GenFishCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenFishCompletion(outFile, includeDesc)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/flag_groups.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\tflag \"github.com/spf13/pflag\"\n)\n\nconst (\n\trequiredAsGroupAnnotation   = \"cobra_annotation_required_if_others_set\"\n\toneRequiredAnnotation       = \"cobra_annotation_one_required\"\n\tmutuallyExclusiveAnnotation = \"cobra_annotation_mutually_exclusive\"\n)\n\n// MarkFlagsRequiredTogether marks the given flags with annotations so that Cobra errors\n// if the command is invoked with a subset (but not all) of the given flags.\nfunc (c *Command) MarkFlagsRequiredTogether(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being required in a flag group\", v))\n\t\t}\n\t\tif err := c.Flags().SetAnnotation(v, requiredAsGroupAnnotation, append(f.Annotations[requiredAsGroupAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\t// Only errs if the flag isn't found.\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// MarkFlagsOneRequired marks the given flags with annotations so that Cobra errors\n// if the command is invoked without at least one flag from the given set of flags.\nfunc (c *Command) MarkFlagsOneRequired(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being in a one-required flag group\", v))\n\t\t}\n\t\tif err := c.Flags().SetAnnotation(v, oneRequiredAnnotation, append(f.Annotations[oneRequiredAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\t// Only errs if the flag isn't found.\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// MarkFlagsMutuallyExclusive marks the given flags with annotations so that Cobra errors\n// if the command is invoked with more than one flag from the given set of flags.\nfunc (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being in a mutually exclusive flag group\", v))\n\t\t}\n\t\t// Each time this is called is a single new entry; this allows it to be a member of multiple groups if needed.\n\t\tif err := c.Flags().SetAnnotation(v, mutuallyExclusiveAnnotation, append(f.Annotations[mutuallyExclusiveAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// ValidateFlagGroups validates the mutuallyExclusive/oneRequired/requiredAsGroup logic and returns the\n// first error encountered.\nfunc (c *Command) ValidateFlagGroups() error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tflags := c.Flags()\n\n\t// groupStatus format is the list of flags as a unique ID,\n\t// then a map of each flag name and whether it is set or not.\n\tgroupStatus := map[string]map[string]bool{}\n\toneRequiredGroupStatus := map[string]map[string]bool{}\n\tmutuallyExclusiveGroupStatus := map[string]map[string]bool{}\n\tflags.VisitAll(func(pflag *flag.Flag) {\n\t\tprocessFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus)\n\t})\n\n\tif err := validateRequiredFlagGroups(groupStatus); err != nil {\n\t\treturn err\n\t}\n\tif err := validateOneRequiredFlagGroups(oneRequiredGroupStatus); err != nil {\n\t\treturn err\n\t}\n\tif err := validateExclusiveFlagGroups(mutuallyExclusiveGroupStatus); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc hasAllFlags(fs *flag.FlagSet, flagnames ...string) bool {\n\tfor _, fname := range flagnames {\n\t\tf := fs.Lookup(fname)\n\t\tif f == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag, annotation string, groupStatus map[string]map[string]bool) {\n\tgroupInfo, found := pflag.Annotations[annotation]\n\tif found {\n\t\tfor _, group := range groupInfo {\n\t\t\tif groupStatus[group] == nil {\n\t\t\t\tflagnames := strings.Split(group, \" \")\n\n\t\t\t\t// Only consider this flag group at all if all the flags are defined.\n\t\t\t\tif !hasAllFlags(flags, flagnames...) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tgroupStatus[group] = make(map[string]bool, len(flagnames))\n\t\t\t\tfor _, name := range flagnames {\n\t\t\t\t\tgroupStatus[group][name] = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroupStatus[group][pflag.Name] = pflag.Changed\n\t\t}\n\t}\n}\n\nfunc validateRequiredFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\n\t\tunset := []string{}\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif !isSet {\n\t\t\t\tunset = append(unset, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(unset) == len(flagnameAndStatus) || len(unset) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(unset)\n\t\treturn fmt.Errorf(\"if any flags in the group [%v] are set they must all be set; missing %v\", flagList, unset)\n\t}\n\n\treturn nil\n}\n\nfunc validateOneRequiredFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\t\tvar set []string\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tset = append(set, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(set) >= 1 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(set)\n\t\treturn fmt.Errorf(\"at least one of the flags in the group [%v] is required\", flagList)\n\t}\n\treturn nil\n}\n\nfunc validateExclusiveFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\t\tvar set []string\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tset = append(set, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(set) == 0 || len(set) == 1 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(set)\n\t\treturn fmt.Errorf(\"if any flags in the group [%v] are set none of the others can be; %v were all set\", flagList, set)\n\t}\n\treturn nil\n}\n\nfunc sortedKeys(m map[string]map[string]bool) []string {\n\tkeys := make([]string, len(m))\n\ti := 0\n\tfor k := range m {\n\t\tkeys[i] = k\n\t\ti++\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// enforceFlagGroupsForCompletion will do the following:\n// - when a flag in a group is present, other flags in the group will be marked required\n// - when none of the flags in a one-required group are present, all flags in the group will be marked required\n// - when a flag in a mutually exclusive group is present, other flags in the group will be marked as hidden\n// This allows the standard completion logic to behave appropriately for flag groups\nfunc (c *Command) enforceFlagGroupsForCompletion() {\n\tif c.DisableFlagParsing {\n\t\treturn\n\t}\n\n\tflags := c.Flags()\n\tgroupStatus := map[string]map[string]bool{}\n\toneRequiredGroupStatus := map[string]map[string]bool{}\n\tmutuallyExclusiveGroupStatus := map[string]map[string]bool{}\n\tc.Flags().VisitAll(func(pflag *flag.Flag) {\n\t\tprocessFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus)\n\t})\n\n\t// If a flag that is part of a group is present, we make all the other flags\n\t// of that group required so that the shell completion suggests them automatically\n\tfor flagList, flagnameAndStatus := range groupStatus {\n\t\tfor _, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\t// One of the flags of the group is set, mark the other ones as required\n\t\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t\t_ = c.MarkFlagRequired(fName)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If none of the flags of a one-required group are present, we make all the flags\n\t// of that group required so that the shell completion suggests them automatically\n\tfor flagList, flagnameAndStatus := range oneRequiredGroupStatus {\n\t\tisSet := false\n\n\t\tfor _, isSet = range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// None of the flags of the group are set, mark all flags in the group\n\t\t// as required\n\t\tif !isSet {\n\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t_ = c.MarkFlagRequired(fName)\n\t\t\t}\n\t\t}\n\t}\n\n\t// If a flag that is mutually exclusive to others is present, we hide the other\n\t// flags of that group so the shell completion does not suggest them\n\tfor flagList, flagnameAndStatus := range mutuallyExclusiveGroupStatus {\n\t\tfor flagName, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\t// One of the flags of the mutually exclusive group is set, mark the other ones as hidden\n\t\t\t\t// Don't mark the flag that is already set as hidden because it may be an\n\t\t\t\t// array or slice flag and therefore must continue being suggested\n\t\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t\tif fName != flagName {\n\t\t\t\t\t\tflag := c.Flags().Lookup(fName)\n\t\t\t\t\t\tflag.Hidden = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/powershell_completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but\n// can be downloaded separately for windows 7 or 8.1).\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genPowerShellComp(buf io.StringWriter, name string, includeDesc bool) {\n\t// Variables should not contain a '-' or ':' character\n\tnameForVar := name\n\tnameForVar = strings.ReplaceAll(nameForVar, \"-\", \"_\")\n\tnameForVar = strings.ReplaceAll(nameForVar, \":\", \"_\")\n\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(`# powershell completion for %-36[1]s -*- shell-script -*-\n\nfunction __%[1]s_debug {\n    if ($env:BASH_COMP_DEBUG_FILE) {\n        \"$args\" | Out-File -Append -FilePath \"$env:BASH_COMP_DEBUG_FILE\"\n    }\n}\n\nfilter __%[1]s_escapeStringWithSpecialChars {\n`+\"    $_ -replace '\\\\s|#|@|\\\\$|;|,|''|\\\\{|\\\\}|\\\\(|\\\\)|\\\"|`|\\\\||<|>|&','`$&'\"+`\n}\n\n[scriptblock]${__%[2]sCompleterBlock} = {\n    param(\n            $WordToComplete,\n            $CommandAst,\n            $CursorPosition\n        )\n\n    # Get the current command line and convert into a string\n    $Command = $CommandAst.CommandElements\n    $Command = \"$Command\"\n\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= starting completion logic ==========\"\n    __%[1]s_debug \"WordToComplete: $WordToComplete Command: $Command CursorPosition: $CursorPosition\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $CursorPosition location, so we need\n    # to truncate the command-line ($Command) up to the $CursorPosition location.\n    # Make sure the $Command is longer then the $CursorPosition before we truncate.\n    # This happens because the $Command does not include the last space.\n    if ($Command.Length -gt $CursorPosition) {\n        $Command=$Command.Substring(0,$CursorPosition)\n    }\n    __%[1]s_debug \"Truncated command: $Command\"\n\n    $ShellCompDirectiveError=%[4]d\n    $ShellCompDirectiveNoSpace=%[5]d\n    $ShellCompDirectiveNoFileComp=%[6]d\n    $ShellCompDirectiveFilterFileExt=%[7]d\n    $ShellCompDirectiveFilterDirs=%[8]d\n    $ShellCompDirectiveKeepOrder=%[9]d\n\n    # Prepare the command to request completions for the program.\n    # Split the command at the first space to separate the program and arguments.\n    $Program,$Arguments = $Command.Split(\" \",2)\n\n    $RequestComp=\"$Program %[3]s $Arguments\"\n    __%[1]s_debug \"RequestComp: $RequestComp\"\n\n    # we cannot use $WordToComplete because it\n    # has the wrong values if the cursor was moved\n    # so use the last argument\n    if ($WordToComplete -ne \"\" ) {\n        $WordToComplete = $Arguments.Split(\" \")[-1]\n    }\n    __%[1]s_debug \"New WordToComplete: $WordToComplete\"\n\n\n    # Check for flag with equal sign\n    $IsEqualFlag = ($WordToComplete -Like \"--*=*\" )\n    if ( $IsEqualFlag ) {\n        __%[1]s_debug \"Completing equal sign flag\"\n        # Remove the flag part\n        $Flag,$WordToComplete = $WordToComplete.Split(\"=\",2)\n    }\n\n    if ( $WordToComplete -eq \"\" -And ( -Not $IsEqualFlag )) {\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        # PowerShell 7.2+ changed the way how the arguments are passed to executables,\n        # so for pre-7.2 or when Legacy argument passing is enabled we need to use\n`+\"        # `\\\"`\\\" to pass an empty argument, a \\\"\\\" or '' does not work!!!\"+`\n        if ($PSVersionTable.PsVersion -lt [version]'7.2.0' -or\n            ($PSVersionTable.PsVersion -lt [version]'7.3.0' -and -not [ExperimentalFeature]::IsEnabled(\"PSNativeCommandArgumentPassing\")) -or\n            (($PSVersionTable.PsVersion -ge [version]'7.3.0' -or [ExperimentalFeature]::IsEnabled(\"PSNativeCommandArgumentPassing\")) -and\n              $PSNativeCommandArgumentPassing -eq 'Legacy')) {\n`+\"             $RequestComp=\\\"$RequestComp\\\" + ' `\\\"`\\\"'\"+`\n        } else {\n             $RequestComp=\"$RequestComp\" + ' \"\"'\n        }\n    }\n\n    __%[1]s_debug \"Calling $RequestComp\"\n    # First disable ActiveHelp which is not supported for Powershell\n    ${env:%[10]s}=0\n\n    #call the command store the output in $out and redirect stderr and stdout to null\n    # $Out is an array contains each line per element\n    Invoke-Expression -OutVariable out \"$RequestComp\" 2>&1 | Out-Null\n\n    # get directive from last line\n    [int]$Directive = $Out[-1].TrimStart(':')\n    if ($Directive -eq \"\") {\n        # There is no directive specified\n        $Directive = 0\n    }\n    __%[1]s_debug \"The completion directive is: $Directive\"\n\n    # remove directive (last element) from out\n    $Out = $Out | Where-Object { $_ -ne $Out[-1] }\n    __%[1]s_debug \"The completions are: $Out\"\n\n    if (($Directive -band $ShellCompDirectiveError) -ne 0 ) {\n        # Error code.  No completion.\n        __%[1]s_debug \"Received error from custom completion go code\"\n        return\n    }\n\n    $Longest = 0\n    [Array]$Values = $Out | ForEach-Object {\n        #Split the output in name and description\n`+\"        $Name, $Description = $_.Split(\\\"`t\\\",2)\"+`\n        __%[1]s_debug \"Name: $Name Description: $Description\"\n\n        # Look for the longest completion so that we can format things nicely\n        if ($Longest -lt $Name.Length) {\n            $Longest = $Name.Length\n        }\n\n        # Set the description to a one space string if there is none set.\n        # This is needed because the CompletionResult does not accept an empty string as argument\n        if (-Not $Description) {\n            $Description = \" \"\n        }\n        New-Object -TypeName PSCustomObject -Property @{\n            Name = \"$Name\"\n            Description = \"$Description\"\n        }\n    }\n\n\n    $Space = \" \"\n    if (($Directive -band $ShellCompDirectiveNoSpace) -ne 0 ) {\n        # remove the space here\n        __%[1]s_debug \"ShellCompDirectiveNoSpace is called\"\n        $Space = \"\"\n    }\n\n    if ((($Directive -band $ShellCompDirectiveFilterFileExt) -ne 0 ) -or\n       (($Directive -band $ShellCompDirectiveFilterDirs) -ne 0 ))  {\n        __%[1]s_debug \"ShellCompDirectiveFilterFileExt ShellCompDirectiveFilterDirs are not supported\"\n\n        # return here to prevent the completion of the extensions\n        return\n    }\n\n    $Values = $Values | Where-Object {\n        # filter the result\n        $_.Name -like \"$WordToComplete*\"\n\n        # Join the flag back if we have an equal sign flag\n        if ( $IsEqualFlag ) {\n            __%[1]s_debug \"Join the equal sign flag back to the completion value\"\n            $_.Name = $Flag + \"=\" + $_.Name\n        }\n    }\n\n    # we sort the values in ascending order by name if keep order isn't passed\n    if (($Directive -band $ShellCompDirectiveKeepOrder) -eq 0 ) {\n        $Values = $Values | Sort-Object -Property Name\n    }\n\n    if (($Directive -band $ShellCompDirectiveNoFileComp) -ne 0 ) {\n        __%[1]s_debug \"ShellCompDirectiveNoFileComp is called\"\n\n        if ($Values.Length -eq 0) {\n            # Just print an empty string here so the\n            # shell does not start to complete paths.\n            # We cannot use CompletionResult here because\n            # it does not accept an empty string as argument.\n            \"\"\n            return\n        }\n    }\n\n    # Get the current mode\n    $Mode = (Get-PSReadLineKeyHandler | Where-Object {$_.Key -eq \"Tab\" }).Function\n    __%[1]s_debug \"Mode: $Mode\"\n\n    $Values | ForEach-Object {\n\n        # store temporary because switch will overwrite $_\n        $comp = $_\n\n        # PowerShell supports three different completion modes\n        # - TabCompleteNext (default windows style - on each key press the next option is displayed)\n        # - Complete (works like bash)\n        # - MenuComplete (works like zsh)\n        # You set the mode with Set-PSReadLineKeyHandler -Key Tab -Function <mode>\n\n        # CompletionResult Arguments:\n        # 1) CompletionText text to be used as the auto completion result\n        # 2) ListItemText   text to be displayed in the suggestion list\n        # 3) ResultType     type of completion result\n        # 4) ToolTip        text for the tooltip with details about the object\n\n        switch ($Mode) {\n\n            # bash like\n            \"Complete\" {\n\n                if ($Values.Length -eq 1) {\n                    __%[1]s_debug \"Only one completion left\"\n\n                    # insert space after value\n                    $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space\n                    if ($ExecutionContext.SessionState.LanguageMode -eq \"FullLanguage\"){\n                        [System.Management.Automation.CompletionResult]::new($CompletionText, \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n                    } else {\n                        $CompletionText\n                    }\n\n                } else {\n                    # Add the proper number of spaces to align the descriptions\n                    while($comp.Name.Length -lt $Longest) {\n                        $comp.Name = $comp.Name + \" \"\n                    }\n\n                    # Check for empty description and only add parentheses if needed\n                    if ($($comp.Description) -eq \" \" ) {\n                        $Description = \"\"\n                    } else {\n                        $Description = \"  ($($comp.Description))\"\n                    }\n\n                    $CompletionText = \"$($comp.Name)$Description\"\n                    if ($ExecutionContext.SessionState.LanguageMode -eq \"FullLanguage\"){\n                        [System.Management.Automation.CompletionResult]::new($CompletionText, \"$($comp.Name)$Description\", 'ParameterValue', \"$($comp.Description)\")\n                    } else {\n                        $CompletionText\n                    }\n                }\n             }\n\n            # zsh like\n            \"MenuComplete\" {\n                # insert space after value\n                # MenuComplete will automatically show the ToolTip of\n                # the highlighted value at the bottom of the suggestions.\n\n                $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space\n                if ($ExecutionContext.SessionState.LanguageMode -eq \"FullLanguage\"){\n                    [System.Management.Automation.CompletionResult]::new($CompletionText, \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n                } else {\n                    $CompletionText\n                }\n            }\n\n            # TabCompleteNext and in case we get something unknown\n            Default {\n                # Like MenuComplete but we don't want to add a space here because\n                # the user need to press space anyway to get the completion.\n                # Description will not be shown because that's not possible with TabCompleteNext\n\n                $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars)\n                if ($ExecutionContext.SessionState.LanguageMode -eq \"FullLanguage\"){\n                    [System.Management.Automation.CompletionResult]::new($CompletionText, \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n                } else {\n                    $CompletionText\n                }\n            }\n        }\n\n    }\n}\n\nRegister-ArgumentCompleter -CommandName '%[1]s' -ScriptBlock ${__%[2]sCompleterBlock}\n`, name, nameForVar, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))\n}\n\nfunc (c *Command) genPowerShellCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenPowerShellComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc (c *Command) genPowerShellCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.genPowerShellCompletion(outFile, includeDesc)\n}\n\n// GenPowerShellCompletionFile generates powershell completion file without descriptions.\nfunc (c *Command) GenPowerShellCompletionFile(filename string) error {\n\treturn c.genPowerShellCompletionFile(filename, false)\n}\n\n// GenPowerShellCompletion generates powershell completion file without descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenPowerShellCompletion(w io.Writer) error {\n\treturn c.genPowerShellCompletion(w, false)\n}\n\n// GenPowerShellCompletionFileWithDesc generates powershell completion file with descriptions.\nfunc (c *Command) GenPowerShellCompletionFileWithDesc(filename string) error {\n\treturn c.genPowerShellCompletionFile(filename, true)\n}\n\n// GenPowerShellCompletionWithDesc generates powershell completion file with descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenPowerShellCompletionWithDesc(w io.Writer) error {\n\treturn c.genPowerShellCompletion(w, true)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/shell_completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"github.com/spf13/pflag\"\n)\n\n// MarkFlagRequired instructs the various shell completion implementations to\n// prioritize the named flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc (c *Command) MarkFlagRequired(name string) error {\n\treturn MarkFlagRequired(c.Flags(), name)\n}\n\n// MarkPersistentFlagRequired instructs the various shell completion implementations to\n// prioritize the named persistent flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc (c *Command) MarkPersistentFlagRequired(name string) error {\n\treturn MarkFlagRequired(c.PersistentFlags(), name)\n}\n\n// MarkFlagRequired instructs the various shell completion implementations to\n// prioritize the named flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc MarkFlagRequired(flags *pflag.FlagSet, name string) error {\n\treturn flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{\"true\"})\n}\n\n// MarkFlagFilename instructs the various shell completion implementations to\n// limit completions for the named flag to the specified file extensions.\nfunc (c *Command) MarkFlagFilename(name string, extensions ...string) error {\n\treturn MarkFlagFilename(c.Flags(), name, extensions...)\n}\n\n// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.\n// The bash completion script will call the bash function f for the flag.\n//\n// This will only work for bash completion.\n// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows\n// to register a Go function which will work across all shells.\nfunc (c *Command) MarkFlagCustom(name string, f string) error {\n\treturn MarkFlagCustom(c.Flags(), name, f)\n}\n\n// MarkPersistentFlagFilename instructs the various shell completion\n// implementations to limit completions for the named persistent flag to the\n// specified file extensions.\nfunc (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error {\n\treturn MarkFlagFilename(c.PersistentFlags(), name, extensions...)\n}\n\n// MarkFlagFilename instructs the various shell completion implementations to\n// limit completions for the named flag to the specified file extensions.\nfunc MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error {\n\treturn flags.SetAnnotation(name, BashCompFilenameExt, extensions)\n}\n\n// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.\n// The bash completion script will call the bash function f for the flag.\n//\n// This will only work for bash completion.\n// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows\n// to register a Go function which will work across all shells.\nfunc MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {\n\treturn flags.SetAnnotation(name, BashCompCustom, []string{f})\n}\n\n// MarkFlagDirname instructs the various shell completion implementations to\n// limit completions for the named flag to directory names.\nfunc (c *Command) MarkFlagDirname(name string) error {\n\treturn MarkFlagDirname(c.Flags(), name)\n}\n\n// MarkPersistentFlagDirname instructs the various shell completion\n// implementations to limit completions for the named persistent flag to\n// directory names.\nfunc (c *Command) MarkPersistentFlagDirname(name string) error {\n\treturn MarkFlagDirname(c.PersistentFlags(), name)\n}\n\n// MarkFlagDirname instructs the various shell completion implementations to\n// limit completions for the named flag to directory names.\nfunc MarkFlagDirname(flags *pflag.FlagSet, name string) error {\n\treturn flags.SetAnnotation(name, BashCompSubdirsInDir, []string{})\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/zsh_completions.go",
    "content": "// Copyright 2013-2023 The Cobra 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\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// GenZshCompletionFile generates zsh completion file including descriptions.\nfunc (c *Command) GenZshCompletionFile(filename string) error {\n\treturn c.genZshCompletionFile(filename, true)\n}\n\n// GenZshCompletion generates zsh completion file including descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenZshCompletion(w io.Writer) error {\n\treturn c.genZshCompletion(w, true)\n}\n\n// GenZshCompletionFileNoDesc generates zsh completion file without descriptions.\nfunc (c *Command) GenZshCompletionFileNoDesc(filename string) error {\n\treturn c.genZshCompletionFile(filename, false)\n}\n\n// GenZshCompletionNoDesc generates zsh completion file without descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenZshCompletionNoDesc(w io.Writer) error {\n\treturn c.genZshCompletion(w, false)\n}\n\n// MarkZshCompPositionalArgumentFile only worked for zsh and its behavior was\n// not consistent with Bash completion. It has therefore been disabled.\n// Instead, when no other completion is specified, file completion is done by\n// default for every argument. One can disable file completion on a per-argument\n// basis by using ValidArgsFunction and ShellCompDirectiveNoFileComp.\n// To achieve file extension filtering, one can use ValidArgsFunction and\n// ShellCompDirectiveFilterFileExt.\n//\n// Deprecated\nfunc (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, patterns ...string) error {\n\treturn nil\n}\n\n// MarkZshCompPositionalArgumentWords only worked for zsh. It has therefore\n// been disabled.\n// To achieve the same behavior across all shells, one can use\n// ValidArgs (for the first argument only) or ValidArgsFunction for\n// any argument (can include the first one also).\n//\n// Deprecated\nfunc (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, words ...string) error {\n\treturn nil\n}\n\nfunc (c *Command) genZshCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.genZshCompletion(outFile, includeDesc)\n}\n\nfunc (c *Command) genZshCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenZshComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc genZshComp(buf io.StringWriter, name string, includeDesc bool) {\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(`#compdef %[1]s\ncompdef _%[1]s %[1]s\n\n# zsh completion for %-36[1]s -*- shell-script -*-\n\n__%[1]s_debug()\n{\n    local file=\"$BASH_COMP_DEBUG_FILE\"\n    if [[ -n ${file} ]]; then\n        echo \"$*\" >> \"${file}\"\n    fi\n}\n\n_%[1]s()\n{\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n    local shellCompDirectiveKeepOrder=%[8]d\n\n    local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder\n    local -a completions\n\n    __%[1]s_debug \"\\n========= starting completion logic ==========\"\n    __%[1]s_debug \"CURRENT: ${CURRENT}, words[*]: ${words[*]}\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $CURRENT location, so we need\n    # to truncate the command-line ($words) up to the $CURRENT location.\n    # (We cannot use $CURSOR as its value does not work when a command is an alias.)\n    words=(\"${=words[1,CURRENT]}\")\n    __%[1]s_debug \"Truncated words[*]: ${words[*]},\"\n\n    lastParam=${words[-1]}\n    lastChar=${lastParam[-1]}\n    __%[1]s_debug \"lastParam: ${lastParam}, lastChar: ${lastChar}\"\n\n    # For zsh, when completing a flag with an = (e.g., %[1]s -n=<TAB>)\n    # completions must be prefixed with the flag\n    setopt local_options BASH_REMATCH\n    if [[ \"${lastParam}\" =~ '-.*=' ]]; then\n        # We are dealing with a flag with an =\n        flagPrefix=\"-P ${BASH_REMATCH}\"\n    fi\n\n    # Prepare the command to obtain completions\n    requestComp=\"${words[1]} %[2]s ${words[2,-1]}\"\n    if [ \"${lastChar}\" = \"\" ]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go completion code.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        requestComp=\"${requestComp} \\\"\\\"\"\n    fi\n\n    __%[1]s_debug \"About to call: eval ${requestComp}\"\n\n    # Use eval to handle any environment variables and such\n    out=$(eval ${requestComp} 2>/dev/null)\n    __%[1]s_debug \"completion output: ${out}\"\n\n    # Extract the directive integer following a : from the last line\n    local lastLine\n    while IFS='\\n' read -r line; do\n        lastLine=${line}\n    done < <(printf \"%%s\\n\" \"${out[@]}\")\n    __%[1]s_debug \"last line: ${lastLine}\"\n\n    if [ \"${lastLine[1]}\" = : ]; then\n        directive=${lastLine[2,-1]}\n        # Remove the directive including the : and the newline\n        local suffix\n        (( suffix=${#lastLine}+2))\n        out=${out[1,-$suffix]}\n    else\n        # There is no directive specified.  Leave $out as is.\n        __%[1]s_debug \"No directive found.  Setting do default\"\n        directive=0\n    fi\n\n    __%[1]s_debug \"directive: ${directive}\"\n    __%[1]s_debug \"completions: ${out}\"\n    __%[1]s_debug \"flagPrefix: ${flagPrefix}\"\n\n    if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then\n        __%[1]s_debug \"Completion received error. Ignoring completions.\"\n        return\n    fi\n\n    local activeHelpMarker=\"%[9]s\"\n    local endIndex=${#activeHelpMarker}\n    local startIndex=$((${#activeHelpMarker}+1))\n    local hasActiveHelp=0\n    while IFS='\\n' read -r comp; do\n        # Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)\n        if [ \"${comp[1,$endIndex]}\" = \"$activeHelpMarker\" ];then\n            __%[1]s_debug \"ActiveHelp found: $comp\"\n            comp=\"${comp[$startIndex,-1]}\"\n            if [ -n \"$comp\" ]; then\n                compadd -x \"${comp}\"\n                __%[1]s_debug \"ActiveHelp will need delimiter\"\n                hasActiveHelp=1\n            fi\n\n            continue\n        fi\n\n        if [ -n \"$comp\" ]; then\n            # If requested, completions are returned with a description.\n            # The description is preceded by a TAB character.\n            # For zsh's _describe, we need to use a : instead of a TAB.\n            # We first need to escape any : as part of the completion itself.\n            comp=${comp//:/\\\\:}\n\n            local tab=\"$(printf '\\t')\"\n            comp=${comp//$tab/:}\n\n            __%[1]s_debug \"Adding completion: ${comp}\"\n            completions+=${comp}\n            lastComp=$comp\n        fi\n    done < <(printf \"%%s\\n\" \"${out[@]}\")\n\n    # Add a delimiter after the activeHelp statements, but only if:\n    # - there are completions following the activeHelp statements, or\n    # - file completion will be performed (so there will be choices after the activeHelp)\n    if [ $hasActiveHelp -eq 1 ]; then\n        if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then\n            __%[1]s_debug \"Adding activeHelp delimiter\"\n            compadd -x \"--\"\n            hasActiveHelp=0\n        fi\n    fi\n\n    if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then\n        __%[1]s_debug \"Activating nospace.\"\n        noSpace=\"-S ''\"\n    fi\n\n    if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then\n        __%[1]s_debug \"Activating keep order.\"\n        keepOrder=\"-V\"\n    fi\n\n    if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then\n        # File extension filtering\n        local filteringCmd\n        filteringCmd='_files'\n        for filter in ${completions[@]}; do\n            if [ ${filter[1]} != '*' ]; then\n                # zsh requires a glob pattern to do file filtering\n                filter=\"\\*.$filter\"\n            fi\n            filteringCmd+=\" -g $filter\"\n        done\n        filteringCmd+=\" ${flagPrefix}\"\n\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        _arguments '*:filename:'\"$filteringCmd\"\n    elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then\n        # File completion for directories only\n        local subdir\n        subdir=\"${completions[1]}\"\n        if [ -n \"$subdir\" ]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            pushd \"${subdir}\" >/dev/null 2>&1\n        else\n            __%[1]s_debug \"Listing directories in .\"\n        fi\n\n        local result\n        _arguments '*:dirname:_files -/'\" ${flagPrefix}\"\n        result=$?\n        if [ -n \"$subdir\" ]; then\n            popd >/dev/null 2>&1\n        fi\n        return $result\n    else\n        __%[1]s_debug \"Calling _describe\"\n        if eval _describe $keepOrder \"completions\" completions $flagPrefix $noSpace; then\n            __%[1]s_debug \"_describe found some completions\"\n\n            # Return the success of having called _describe\n            return 0\n        else\n            __%[1]s_debug \"_describe did not find completions.\"\n            __%[1]s_debug \"Checking if we should do file completion.\"\n            if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then\n                __%[1]s_debug \"deactivating file completion\"\n\n                # We must return an error code here to let zsh know that there were no\n                # completions found by _describe; this is what will trigger other\n                # matching algorithms to attempt to find completions.\n                # For example zsh can match letters in the middle of words.\n                return 1\n            else\n                # Perform file completion\n                __%[1]s_debug \"Activating file completion\"\n\n                # We must return the result of this command, so it must be the\n                # last command, or else we must store its result to return it.\n                _arguments '*:filename:_files'\" ${flagPrefix}\"\n            fi\n        fi\n    fi\n}\n\n# don't run the completion function when being source-ed or eval-ed\nif [ \"$funcstack[1]\" = \"_%[1]s\" ]; then\n    _%[1]s\nfi\n`, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder,\n\t\tactiveHelpMarker))\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.go]\nindent_style = tab\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.gitignore",
    "content": ".idea/*\n\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.golangci.yaml",
    "content": "linters:\n    disable-all: true\n    enable:\n        - nolintlint\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.travis.yml",
    "content": "sudo: false\n\nlanguage: go\n\ngo:\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - tip\n\nmatrix:\n  allow_failures:\n    - go: tip\n\ninstall:\n  - go get golang.org/x/lint/golint\n  - export PATH=$GOPATH/bin:$PATH\n  - go install ./...\n\nscript:\n  - verify/all.sh -v\n  - go test ./...\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/LICENSE",
    "content": "Copyright (c) 2012 Alex Ogier. 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/spf13/pflag/README.md",
    "content": "[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag)\n[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag)\n\n## Description\n\npflag is a drop-in replacement for Go's flag package, implementing\nPOSIX/GNU-style --flags.\n\npflag is compatible with the [GNU extensions to the POSIX recommendations\nfor command-line options][1]. For a more precise description, see the\n\"Command-line flag syntax\" section below.\n\n[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\n\npflag is available under the same style of BSD license as the Go language,\nwhich can be found in the LICENSE file.\n\n## Installation\n\npflag is available using the standard `go get` command.\n\nInstall by running:\n\n    go get github.com/spf13/pflag\n\nRun tests by running:\n\n    go test github.com/spf13/pflag\n\n## Usage\n\npflag is a drop-in replacement of Go's native flag package. If you import\npflag under the name \"flag\" then all code should continue to function\nwith no changes.\n\n``` go\nimport flag \"github.com/spf13/pflag\"\n```\n\nThere is one exception to this: if you directly instantiate the Flag struct\nthere is one more field \"Shorthand\" that you will need to set.\nMost code never instantiates this struct directly, and instead uses\nfunctions such as String(), BoolVar(), and Var(), and is therefore\nunaffected.\n\nDefine flags using flag.String(), Bool(), Int(), etc.\n\nThis declares an integer flag, -flagname, stored in the pointer ip, with type *int.\n\n``` go\nvar ip *int = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n```\n\nIf you like, you can bind the flag to a variable using the Var() functions.\n\n``` go\nvar flagvar int\nfunc init() {\n    flag.IntVar(&flagvar, \"flagname\", 1234, \"help message for flagname\")\n}\n```\n\nOr you can create custom flags that satisfy the Value interface (with\npointer receivers) and couple them to flag parsing by\n\n``` go\nflag.Var(&flagVal, \"name\", \"help message for flagname\")\n```\n\nFor such flags, the default value is just the initial value of the variable.\n\nAfter all flags are defined, call\n\n``` go\nflag.Parse()\n```\n\nto parse the command line into the defined flags.\n\nFlags may then be used directly. If you're using the flags themselves,\nthey are all pointers; if you bind to variables, they're values.\n\n``` go\nfmt.Println(\"ip has value \", *ip)\nfmt.Println(\"flagvar has value \", flagvar)\n```\n\nThere are helper functions available to get the value stored in a Flag if you have a FlagSet but find\nit difficult to keep up with all of the pointers in your code.\nIf you have a pflag.FlagSet with a flag called 'flagname' of type int you\ncan use GetInt() to get the int value. But notice that 'flagname' must exist\nand it must be an int. GetString(\"flagname\") will fail.\n\n``` go\ni, err := flagset.GetInt(\"flagname\")\n```\n\nAfter parsing, the arguments after the flag are available as the\nslice flag.Args() or individually as flag.Arg(i).\nThe arguments are indexed from 0 through flag.NArg()-1.\n\nThe pflag package also defines some new functions that are not in flag,\nthat give one-letter shorthands for flags. You can use these by appending\n'P' to the name of any function that defines a flag.\n\n``` go\nvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\nvar flagvar bool\nfunc init() {\n\tflag.BoolVarP(&flagvar, \"boolname\", \"b\", true, \"help message\")\n}\nflag.VarP(&flagVal, \"varname\", \"v\", \"help message\")\n```\n\nShorthand letters can be used with single dashes on the command line.\nBoolean shorthand flags can be combined with other shorthand flags.\n\nThe default set of command-line flags is controlled by\ntop-level functions.  The FlagSet type allows one to define\nindependent sets of flags, such as to implement subcommands\nin a command-line interface. The methods of FlagSet are\nanalogous to the top-level functions for the command-line\nflag set.\n\n## Setting no option default values for flags\n\nAfter you create a flag it is possible to set the pflag.NoOptDefVal for\nthe given flag. Doing this changes the meaning of the flag slightly. If\na flag has a NoOptDefVal and the flag is set on the command line without\nan option the flag will be set to the NoOptDefVal. For example given:\n\n``` go\nvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\nflag.Lookup(\"flagname\").NoOptDefVal = \"4321\"\n```\n\nWould result in something like\n\n| Parsed Arguments | Resulting Value |\n| -------------    | -------------   |\n| --flagname=1357  | ip=1357         |\n| --flagname       | ip=4321         |\n| [nothing]        | ip=1234         |\n\n## Command line flag syntax\n\n```\n--flag    // boolean flags, or flags with no option default values\n--flag x  // only on flags without a default value\n--flag=x\n```\n\nUnlike the flag package, a single dash before an option means something\ndifferent than a double dash. Single dashes signify a series of shorthand\nletters for flags. All but the last shorthand letter must be boolean flags\nor a flag with a default value\n\n```\n// boolean or flags where the 'no option default value' is set\n-f\n-f=true\n-abc\nbut\n-b true is INVALID\n\n// non-boolean and flags without a 'no option default value'\n-n 1234\n-n=1234\n-n1234\n\n// mixed\n-abcs \"hello\"\n-absd=\"hello\"\n-abcs1234\n```\n\nFlag parsing stops after the terminator \"--\". Unlike the flag package,\nflags can be interspersed with arguments anywhere on the command line\nbefore this terminator.\n\nInteger flags accept 1234, 0664, 0x1234 and may be negative.\nBoolean flags (in their long form) accept 1, 0, t, f, true, false,\nTRUE, FALSE, True, False.\nDuration flags accept any input valid for time.ParseDuration.\n\n## Mutating or \"Normalizing\" Flag names\n\nIt is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow.\n\n**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag\n\n``` go\nfunc wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tfrom := []string{\"-\", \"_\"}\n\tto := \".\"\n\tfor _, sep := range from {\n\t\tname = strings.Replace(name, sep, to, -1)\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\nmyFlagSet.SetNormalizeFunc(wordSepNormalizeFunc)\n```\n\n**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name\n\n``` go\nfunc aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tswitch name {\n\tcase \"old-flag-name\":\n\t\tname = \"new-flag-name\"\n\t\tbreak\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\nmyFlagSet.SetNormalizeFunc(aliasNormalizeFunc)\n```\n\n## Deprecating a flag or its shorthand\nIt is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used.\n\n**Example #1**: You want to deprecate a flag named \"badflag\" as well as inform the users what flag they should use instead.\n```go\n// deprecate a flag by specifying its name and a usage message\nflags.MarkDeprecated(\"badflag\", \"please use --good-flag instead\")\n```\nThis hides \"badflag\" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when \"badflag\" is used.\n\n**Example #2**: You want to keep a flag name \"noshorthandflag\" but deprecate its shortname \"n\".\n```go\n// deprecate a flag shorthand by specifying its flag name and a usage message\nflags.MarkShorthandDeprecated(\"noshorthandflag\", \"please use --noshorthandflag only\")\n```\nThis hides the shortname \"n\" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand \"n\" is used.\n\nNote that usage message is essential here, and it should not be empty.\n\n## Hidden flags\nIt is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text.\n\n**Example**: You have a flag named \"secretFlag\" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available.\n```go\n// hide a flag by specifying its name\nflags.MarkHidden(\"secretFlag\")\n```\n\n## Disable sorting of flags\n`pflag` allows you to disable sorting of flags for help and usage message.\n\n**Example**:\n```go\nflags.BoolP(\"verbose\", \"v\", false, \"verbose output\")\nflags.String(\"coolflag\", \"yeaah\", \"it's really cool flag\")\nflags.Int(\"usefulflag\", 777, \"sometimes it's very useful\")\nflags.SortFlags = false\nflags.PrintDefaults()\n```\n**Output**:\n```\n  -v, --verbose           verbose output\n      --coolflag string   it's really cool flag (default \"yeaah\")\n      --usefulflag int    sometimes it's very useful (default 777)\n```\n\n\n## Supporting Go flags when using pflag\nIn order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary\nto support flags defined by third-party dependencies (e.g. `golang/glog`).\n\n**Example**: You want to add the Go flags to the `CommandLine` flagset\n```go\nimport (\n\tgoflag \"flag\"\n\tflag \"github.com/spf13/pflag\"\n)\n\nvar ip *int = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n\nfunc main() {\n\tflag.CommandLine.AddGoFlagSet(goflag.CommandLine)\n\tflag.Parse()\n}\n```\n\n### Using pflag with go test\n`pflag` does not parse the shorthand versions of go test's built-in flags (i.e., those starting with `-test.`).\nFor more context, see issues [#63](https://github.com/spf13/pflag/issues/63) and [#238](https://github.com/spf13/pflag/issues/238) for more details.\n\nFor example, if you use pflag in your `TestMain` function and call `pflag.Parse()` after defining your custom flags, running a test like this:\n```bash\ngo test /your/tests -run ^YourTest -v --your-test-pflags\n```\nwill result in the `-v` flag being ignored. This happens because of the way pflag handles flag parsing, skipping over go test's built-in shorthand flags.\nTo work around this, you can use the `ParseSkippedFlags` function, which ensures that go test's flags are parsed separately using the standard flag package.\n\n**Example**: You want to parse go test flags that are otherwise ignore by `pflag.Parse()`\n```go\nimport (\n\tgoflag \"flag\"\n\tflag \"github.com/spf13/pflag\"\n)\n\nvar ip *int = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n\nfunc main() {\n\tflag.CommandLine.AddGoFlagSet(goflag.CommandLine)\n    flag.ParseSkippedFlags(os.Args[1:], goflag.CommandLine)\n\tflag.Parse()\n}\n```\n\n## More info\n\nYou can see the full reference documentation of the pflag package\n[at godoc.org][3], or through go's standard documentation system by\nrunning `godoc -http=:6060` and browsing to\n[http://localhost:6060/pkg/github.com/spf13/pflag][2] after\ninstallation.\n\n[2]: http://localhost:6060/pkg/github.com/spf13/pflag\n[3]: http://godoc.org/github.com/spf13/pflag\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// optional interface to indicate boolean flags that can be\n// supplied without \"=value\" text\ntype boolFlag interface {\n\tValue\n\tIsBoolFlag() bool\n}\n\n// -- bool Value\ntype boolValue bool\n\nfunc newBoolValue(val bool, p *bool) *boolValue {\n\t*p = val\n\treturn (*boolValue)(p)\n}\n\nfunc (b *boolValue) Set(s string) error {\n\tv, err := strconv.ParseBool(s)\n\t*b = boolValue(v)\n\treturn err\n}\n\nfunc (b *boolValue) Type() string {\n\treturn \"bool\"\n}\n\nfunc (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) }\n\nfunc (b *boolValue) IsBoolFlag() bool { return true }\n\nfunc boolConv(sval string) (interface{}, error) {\n\treturn strconv.ParseBool(sval)\n}\n\n// GetBool return the bool value of a flag with the given name\nfunc (f *FlagSet) GetBool(name string) (bool, error) {\n\tval, err := f.getFlagType(name, \"bool\", boolConv)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn val.(bool), nil\n}\n\n// BoolVar defines a bool flag with specified name, default value, and usage string.\n// The argument p points to a bool variable in which to store the value of the flag.\nfunc (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {\n\tf.BoolVarP(p, name, \"\", value, usage)\n}\n\n// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) {\n\tflag := f.VarPF(newBoolValue(value, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"true\"\n}\n\n// BoolVar defines a bool flag with specified name, default value, and usage string.\n// The argument p points to a bool variable in which to store the value of the flag.\nfunc BoolVar(p *bool, name string, value bool, usage string) {\n\tBoolVarP(p, name, \"\", value, usage)\n}\n\n// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolVarP(p *bool, name, shorthand string, value bool, usage string) {\n\tflag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"true\"\n}\n\n// Bool defines a bool flag with specified name, default value, and usage string.\n// The return value is the address of a bool variable that stores the value of the flag.\nfunc (f *FlagSet) Bool(name string, value bool, usage string) *bool {\n\treturn f.BoolP(name, \"\", value, usage)\n}\n\n// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool {\n\tp := new(bool)\n\tf.BoolVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Bool defines a bool flag with specified name, default value, and usage string.\n// The return value is the address of a bool variable that stores the value of the flag.\nfunc Bool(name string, value bool, usage string) *bool {\n\treturn BoolP(name, \"\", value, usage)\n}\n\n// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolP(name, shorthand string, value bool, usage string) *bool {\n\tb := CommandLine.BoolP(name, shorthand, value, usage)\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool_func.go",
    "content": "package pflag\n\n// -- func Value\ntype boolfuncValue func(string) error\n\nfunc (f boolfuncValue) Set(s string) error { return f(s) }\n\nfunc (f boolfuncValue) Type() string { return \"boolfunc\" }\n\nfunc (f boolfuncValue) String() string { return \"\" } // same behavior as stdlib 'flag' package\n\nfunc (f boolfuncValue) IsBoolFlag() bool { return true }\n\n// BoolFunc defines a func flag with specified name, callback function and usage string.\n//\n// The callback function will be called every time \"--{name}\" (or any form that matches the flag) is parsed\n// on the command line.\nfunc (f *FlagSet) BoolFunc(name string, usage string, fn func(string) error) {\n\tf.BoolFuncP(name, \"\", usage, fn)\n}\n\n// BoolFuncP is like BoolFunc, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolFuncP(name, shorthand string, usage string, fn func(string) error) {\n\tvar val Value = boolfuncValue(fn)\n\tflag := f.VarPF(val, name, shorthand, usage)\n\tflag.NoOptDefVal = \"true\"\n}\n\n// BoolFunc defines a func flag with specified name, callback function and usage string.\n//\n// The callback function will be called every time \"--{name}\" (or any form that matches the flag) is parsed\n// on the command line.\nfunc BoolFunc(name string, usage string, fn func(string) error) {\n\tCommandLine.BoolFuncP(name, \"\", usage, fn)\n}\n\n// BoolFuncP is like BoolFunc, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolFuncP(name, shorthand string, usage string, fn func(string) error) {\n\tCommandLine.BoolFuncP(name, shorthand, usage, fn)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool_slice.go",
    "content": "package pflag\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- boolSlice Value\ntype boolSliceValue struct {\n\tvalue   *[]bool\n\tchanged bool\n}\n\nfunc newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {\n\tbsv := new(boolSliceValue)\n\tbsv.value = p\n\t*bsv.value = val\n\treturn bsv\n}\n\n// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag.\n// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended.\nfunc (s *boolSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tboolStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse boolean values into slice\n\tout := make([]bool, 0, len(boolStrSlice))\n\tfor _, boolStr := range boolStrSlice {\n\t\tb, err := strconv.ParseBool(strings.TrimSpace(boolStr))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout = append(out, b)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *boolSliceValue) Type() string {\n\treturn \"boolSlice\"\n}\n\n// String defines a \"native\" format for this boolean slice flag value.\nfunc (s *boolSliceValue) String() string {\n\n\tboolStrSlice := make([]string, len(*s.value))\n\tfor i, b := range *s.value {\n\t\tboolStrSlice[i] = strconv.FormatBool(b)\n\t}\n\n\tout, _ := writeAsCSV(boolStrSlice)\n\n\treturn \"[\" + out + \"]\"\n}\n\nfunc (s *boolSliceValue) fromString(val string) (bool, error) {\n\treturn strconv.ParseBool(val)\n}\n\nfunc (s *boolSliceValue) toString(val bool) string {\n\treturn strconv.FormatBool(val)\n}\n\nfunc (s *boolSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *boolSliceValue) Replace(val []string) error {\n\tout := make([]bool, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *boolSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc boolSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []bool{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]bool, len(ss))\n\tfor i, t := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseBool(t)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetBoolSlice returns the []bool value of a flag with the given name.\nfunc (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {\n\tval, err := f.getFlagType(name, \"boolSlice\", boolSliceConv)\n\tif err != nil {\n\t\treturn []bool{}, err\n\t}\n\treturn val.([]bool), nil\n}\n\n// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string.\n// The argument p points to a []bool variable in which to store the value of the flag.\nfunc (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) {\n\tf.VarP(newBoolSliceValue(value, p), name, \"\", usage)\n}\n\n// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {\n\tf.VarP(newBoolSliceValue(value, p), name, shorthand, usage)\n}\n\n// BoolSliceVar defines a []bool flag with specified name, default value, and usage string.\n// The argument p points to a []bool variable in which to store the value of the flag.\nfunc BoolSliceVar(p *[]bool, name string, value []bool, usage string) {\n\tCommandLine.VarP(newBoolSliceValue(value, p), name, \"\", usage)\n}\n\n// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {\n\tCommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage)\n}\n\n// BoolSlice defines a []bool flag with specified name, default value, and usage string.\n// The return value is the address of a []bool variable that stores the value of the flag.\nfunc (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool {\n\tp := []bool{}\n\tf.BoolSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {\n\tp := []bool{}\n\tf.BoolSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// BoolSlice defines a []bool flag with specified name, default value, and usage string.\n// The return value is the address of a []bool variable that stores the value of the flag.\nfunc BoolSlice(name string, value []bool, usage string) *[]bool {\n\treturn CommandLine.BoolSliceP(name, \"\", value, usage)\n}\n\n// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {\n\treturn CommandLine.BoolSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bytes.go",
    "content": "package pflag\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded\ntype bytesHexValue []byte\n\n// String implements pflag.Value.String.\nfunc (bytesHex bytesHexValue) String() string {\n\treturn fmt.Sprintf(\"%X\", []byte(bytesHex))\n}\n\n// Set implements pflag.Value.Set.\nfunc (bytesHex *bytesHexValue) Set(value string) error {\n\tbin, err := hex.DecodeString(strings.TrimSpace(value))\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*bytesHex = bin\n\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (*bytesHexValue) Type() string {\n\treturn \"bytesHex\"\n}\n\nfunc newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {\n\t*p = val\n\treturn (*bytesHexValue)(p)\n}\n\nfunc bytesHexConv(sval string) (interface{}, error) {\n\n\tbin, err := hex.DecodeString(sval)\n\n\tif err == nil {\n\t\treturn bin, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"invalid string being converted to Bytes: %s %s\", sval, err)\n}\n\n// GetBytesHex return the []byte value of a flag with the given name\nfunc (f *FlagSet) GetBytesHex(name string) ([]byte, error) {\n\tval, err := f.getFlagType(name, \"bytesHex\", bytesHexConv)\n\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\n\treturn val.([]byte), nil\n}\n\n// BytesHexVar defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) {\n\tf.VarP(newBytesHexValue(value, p), name, \"\", usage)\n}\n\n// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tf.VarP(newBytesHexValue(value, p), name, shorthand, usage)\n}\n\n// BytesHexVar defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc BytesHexVar(p *[]byte, name string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesHexValue(value, p), name, \"\", usage)\n}\n\n// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage)\n}\n\n// BytesHex defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesHexVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesHexVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// BytesHex defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc BytesHex(name string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesHexP(name, \"\", value, usage)\n}\n\n// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesHexP(name, shorthand, value, usage)\n}\n\n// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded\ntype bytesBase64Value []byte\n\n// String implements pflag.Value.String.\nfunc (bytesBase64 bytesBase64Value) String() string {\n\treturn base64.StdEncoding.EncodeToString([]byte(bytesBase64))\n}\n\n// Set implements pflag.Value.Set.\nfunc (bytesBase64 *bytesBase64Value) Set(value string) error {\n\tbin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value))\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*bytesBase64 = bin\n\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (*bytesBase64Value) Type() string {\n\treturn \"bytesBase64\"\n}\n\nfunc newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {\n\t*p = val\n\treturn (*bytesBase64Value)(p)\n}\n\nfunc bytesBase64ValueConv(sval string) (interface{}, error) {\n\n\tbin, err := base64.StdEncoding.DecodeString(sval)\n\tif err == nil {\n\t\treturn bin, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"invalid string being converted to Bytes: %s %s\", sval, err)\n}\n\n// GetBytesBase64 return the []byte value of a flag with the given name\nfunc (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {\n\tval, err := f.getFlagType(name, \"bytesBase64\", bytesBase64ValueConv)\n\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\n\treturn val.([]byte), nil\n}\n\n// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) {\n\tf.VarP(newBytesBase64Value(value, p), name, \"\", usage)\n}\n\n// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tf.VarP(newBytesBase64Value(value, p), name, shorthand, usage)\n}\n\n// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc BytesBase64Var(p *[]byte, name string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesBase64Value(value, p), name, \"\", usage)\n}\n\n// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage)\n}\n\n// BytesBase64 defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesBase64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesBase64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// BytesBase64 defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc BytesBase64(name string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesBase64P(name, \"\", value, usage)\n}\n\n// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesBase64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/count.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- count Value\ntype countValue int\n\nfunc newCountValue(val int, p *int) *countValue {\n\t*p = val\n\treturn (*countValue)(p)\n}\n\nfunc (i *countValue) Set(s string) error {\n\t// \"+1\" means that no specific value was passed, so increment\n\tif s == \"+1\" {\n\t\t*i = countValue(*i + 1)\n\t\treturn nil\n\t}\n\tv, err := strconv.ParseInt(s, 0, 0)\n\t*i = countValue(v)\n\treturn err\n}\n\nfunc (i *countValue) Type() string {\n\treturn \"count\"\n}\n\nfunc (i *countValue) String() string { return strconv.Itoa(int(*i)) }\n\nfunc countConv(sval string) (interface{}, error) {\n\ti, err := strconv.Atoi(sval)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\n// GetCount return the int value of a flag with the given name\nfunc (f *FlagSet) GetCount(name string) (int, error) {\n\tval, err := f.getFlagType(name, \"count\", countConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int), nil\n}\n\n// CountVar defines a count flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\n// A count flag will add 1 to its value every time it is found on the command line\nfunc (f *FlagSet) CountVar(p *int, name string, usage string) {\n\tf.CountVarP(p, name, \"\", usage)\n}\n\n// CountVarP is like CountVar only take a shorthand for the flag name.\nfunc (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {\n\tflag := f.VarPF(newCountValue(0, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"+1\"\n}\n\n// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set\nfunc CountVar(p *int, name string, usage string) {\n\tCommandLine.CountVar(p, name, usage)\n}\n\n// CountVarP is like CountVar only take a shorthand for the flag name.\nfunc CountVarP(p *int, name, shorthand string, usage string) {\n\tCommandLine.CountVarP(p, name, shorthand, usage)\n}\n\n// Count defines a count flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\n// A count flag will add 1 to its value every time it is found on the command line\nfunc (f *FlagSet) Count(name string, usage string) *int {\n\tp := new(int)\n\tf.CountVarP(p, name, \"\", usage)\n\treturn p\n}\n\n// CountP is like Count only takes a shorthand for the flag name.\nfunc (f *FlagSet) CountP(name, shorthand string, usage string) *int {\n\tp := new(int)\n\tf.CountVarP(p, name, shorthand, usage)\n\treturn p\n}\n\n// Count defines a count flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\n// A count flag will add 1 to its value every time it is found on the command line\nfunc Count(name string, usage string) *int {\n\treturn CommandLine.CountP(name, \"\", usage)\n}\n\n// CountP is like Count only takes a shorthand for the flag name.\nfunc CountP(name, shorthand string, usage string) *int {\n\treturn CommandLine.CountP(name, shorthand, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration.go",
    "content": "package pflag\n\nimport (\n\t\"time\"\n)\n\n// -- time.Duration Value\ntype durationValue time.Duration\n\nfunc newDurationValue(val time.Duration, p *time.Duration) *durationValue {\n\t*p = val\n\treturn (*durationValue)(p)\n}\n\nfunc (d *durationValue) Set(s string) error {\n\tv, err := time.ParseDuration(s)\n\t*d = durationValue(v)\n\treturn err\n}\n\nfunc (d *durationValue) Type() string {\n\treturn \"duration\"\n}\n\nfunc (d *durationValue) String() string { return (*time.Duration)(d).String() }\n\nfunc durationConv(sval string) (interface{}, error) {\n\treturn time.ParseDuration(sval)\n}\n\n// GetDuration return the duration value of a flag with the given name\nfunc (f *FlagSet) GetDuration(name string) (time.Duration, error) {\n\tval, err := f.getFlagType(name, \"duration\", durationConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(time.Duration), nil\n}\n\n// DurationVar defines a time.Duration flag with specified name, default value, and usage string.\n// The argument p points to a time.Duration variable in which to store the value of the flag.\nfunc (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) {\n\tf.VarP(newDurationValue(value, p), name, \"\", usage)\n}\n\n// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {\n\tf.VarP(newDurationValue(value, p), name, shorthand, usage)\n}\n\n// DurationVar defines a time.Duration flag with specified name, default value, and usage string.\n// The argument p points to a time.Duration variable in which to store the value of the flag.\nfunc DurationVar(p *time.Duration, name string, value time.Duration, usage string) {\n\tCommandLine.VarP(newDurationValue(value, p), name, \"\", usage)\n}\n\n// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {\n\tCommandLine.VarP(newDurationValue(value, p), name, shorthand, usage)\n}\n\n// Duration defines a time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a time.Duration variable that stores the value of the flag.\nfunc (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration {\n\tp := new(time.Duration)\n\tf.DurationVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {\n\tp := new(time.Duration)\n\tf.DurationVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Duration defines a time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a time.Duration variable that stores the value of the flag.\nfunc Duration(name string, value time.Duration, usage string) *time.Duration {\n\treturn CommandLine.DurationP(name, \"\", value, usage)\n}\n\n// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {\n\treturn CommandLine.DurationP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// -- durationSlice Value\ntype durationSliceValue struct {\n\tvalue   *[]time.Duration\n\tchanged bool\n}\n\nfunc newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue {\n\tdsv := new(durationSliceValue)\n\tdsv.value = p\n\t*dsv.value = val\n\treturn dsv\n}\n\nfunc (s *durationSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]time.Duration, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = time.ParseDuration(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *durationSliceValue) Type() string {\n\treturn \"durationSlice\"\n}\n\nfunc (s *durationSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%s\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *durationSliceValue) fromString(val string) (time.Duration, error) {\n\treturn time.ParseDuration(val)\n}\n\nfunc (s *durationSliceValue) toString(val time.Duration) string {\n\treturn fmt.Sprintf(\"%s\", val)\n}\n\nfunc (s *durationSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *durationSliceValue) Replace(val []string) error {\n\tout := make([]time.Duration, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *durationSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc durationSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []time.Duration{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]time.Duration, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = time.ParseDuration(d)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetDurationSlice returns the []time.Duration value of a flag with the given name\nfunc (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {\n\tval, err := f.getFlagType(name, \"durationSlice\", durationSliceConv)\n\tif err != nil {\n\t\treturn []time.Duration{}, err\n\t}\n\treturn val.([]time.Duration), nil\n}\n\n// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string.\n// The argument p points to a []time.Duration variable in which to store the value of the flag.\nfunc (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {\n\tf.VarP(newDurationSliceValue(value, p), name, \"\", usage)\n}\n\n// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {\n\tf.VarP(newDurationSliceValue(value, p), name, shorthand, usage)\n}\n\n// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string.\n// The argument p points to a duration[] variable in which to store the value of the flag.\nfunc DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {\n\tCommandLine.VarP(newDurationSliceValue(value, p), name, \"\", usage)\n}\n\n// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {\n\tCommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage)\n}\n\n// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a []time.Duration variable that stores the value of the flag.\nfunc (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {\n\tp := []time.Duration{}\n\tf.DurationSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {\n\tp := []time.Duration{}\n\tf.DurationSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a []time.Duration variable that stores the value of the flag.\nfunc DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {\n\treturn CommandLine.DurationSliceP(name, \"\", value, usage)\n}\n\n// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {\n\treturn CommandLine.DurationSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/errors.go",
    "content": "package pflag\n\nimport \"fmt\"\n\n// notExistErrorMessageType specifies which flavor of \"flag does not exist\"\n// is printed by NotExistError. This allows the related errors to be grouped\n// under a single NotExistError struct without making a breaking change to\n// the error message text.\ntype notExistErrorMessageType int\n\nconst (\n\tflagNotExistMessage notExistErrorMessageType = iota\n\tflagNotDefinedMessage\n\tflagNoSuchFlagMessage\n\tflagUnknownFlagMessage\n\tflagUnknownShorthandFlagMessage\n)\n\n// NotExistError is the error returned when trying to access a flag that\n// does not exist in the FlagSet.\ntype NotExistError struct {\n\tname                string\n\tspecifiedShorthands string\n\tmessageType         notExistErrorMessageType\n}\n\n// Error implements error.\nfunc (e *NotExistError) Error() string {\n\tswitch e.messageType {\n\tcase flagNotExistMessage:\n\t\treturn fmt.Sprintf(\"flag %q does not exist\", e.name)\n\n\tcase flagNotDefinedMessage:\n\t\treturn fmt.Sprintf(\"flag accessed but not defined: %s\", e.name)\n\n\tcase flagNoSuchFlagMessage:\n\t\treturn fmt.Sprintf(\"no such flag -%v\", e.name)\n\n\tcase flagUnknownFlagMessage:\n\t\treturn fmt.Sprintf(\"unknown flag: --%s\", e.name)\n\n\tcase flagUnknownShorthandFlagMessage:\n\t\tc := rune(e.name[0])\n\t\treturn fmt.Sprintf(\"unknown shorthand flag: %q in -%s\", c, e.specifiedShorthands)\n\t}\n\n\tpanic(fmt.Errorf(\"unknown flagNotExistErrorMessageType: %v\", e.messageType))\n}\n\n// GetSpecifiedName returns the name of the flag (without dashes) as it\n// appeared in the parsed arguments.\nfunc (e *NotExistError) GetSpecifiedName() string {\n\treturn e.name\n}\n\n// GetSpecifiedShortnames returns the group of shorthand arguments\n// (without dashes) that the flag appeared within. If the flag was not in a\n// shorthand group, this will return an empty string.\nfunc (e *NotExistError) GetSpecifiedShortnames() string {\n\treturn e.specifiedShorthands\n}\n\n// ValueRequiredError is the error returned when a flag needs an argument but\n// no argument was provided.\ntype ValueRequiredError struct {\n\tflag                *Flag\n\tspecifiedName       string\n\tspecifiedShorthands string\n}\n\n// Error implements error.\nfunc (e *ValueRequiredError) Error() string {\n\tif len(e.specifiedShorthands) > 0 {\n\t\tc := rune(e.specifiedName[0])\n\t\treturn fmt.Sprintf(\"flag needs an argument: %q in -%s\", c, e.specifiedShorthands)\n\t}\n\n\treturn fmt.Sprintf(\"flag needs an argument: --%s\", e.specifiedName)\n}\n\n// GetFlag returns the flag for which the error occurred.\nfunc (e *ValueRequiredError) GetFlag() *Flag {\n\treturn e.flag\n}\n\n// GetSpecifiedName returns the name of the flag (without dashes) as it\n// appeared in the parsed arguments.\nfunc (e *ValueRequiredError) GetSpecifiedName() string {\n\treturn e.specifiedName\n}\n\n// GetSpecifiedShortnames returns the group of shorthand arguments\n// (without dashes) that the flag appeared within. If the flag was not in a\n// shorthand group, this will return an empty string.\nfunc (e *ValueRequiredError) GetSpecifiedShortnames() string {\n\treturn e.specifiedShorthands\n}\n\n// InvalidValueError is the error returned when an invalid value is used\n// for a flag.\ntype InvalidValueError struct {\n\tflag  *Flag\n\tvalue string\n\tcause error\n}\n\n// Error implements error.\nfunc (e *InvalidValueError) Error() string {\n\tflag := e.flag\n\tvar flagName string\n\tif flag.Shorthand != \"\" && flag.ShorthandDeprecated == \"\" {\n\t\tflagName = fmt.Sprintf(\"-%s, --%s\", flag.Shorthand, flag.Name)\n\t} else {\n\t\tflagName = fmt.Sprintf(\"--%s\", flag.Name)\n\t}\n\treturn fmt.Sprintf(\"invalid argument %q for %q flag: %v\", e.value, flagName, e.cause)\n}\n\n// Unwrap implements errors.Unwrap.\nfunc (e *InvalidValueError) Unwrap() error {\n\treturn e.cause\n}\n\n// GetFlag returns the flag for which the error occurred.\nfunc (e *InvalidValueError) GetFlag() *Flag {\n\treturn e.flag\n}\n\n// GetValue returns the invalid value that was provided.\nfunc (e *InvalidValueError) GetValue() string {\n\treturn e.value\n}\n\n// InvalidSyntaxError is the error returned when a bad flag name is passed on\n// the command line.\ntype InvalidSyntaxError struct {\n\tspecifiedFlag string\n}\n\n// Error implements error.\nfunc (e *InvalidSyntaxError) Error() string {\n\treturn fmt.Sprintf(\"bad flag syntax: %s\", e.specifiedFlag)\n}\n\n// GetSpecifiedName returns the exact flag (with dashes) as it\n// appeared in the parsed arguments.\nfunc (e *InvalidSyntaxError) GetSpecifiedFlag() string {\n\treturn e.specifiedFlag\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/flag.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/*\nPackage pflag is a drop-in replacement for Go's flag package, implementing\nPOSIX/GNU-style --flags.\n\npflag is compatible with the GNU extensions to the POSIX recommendations\nfor command-line options. See\nhttp://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\n\nUsage:\n\npflag is a drop-in replacement of Go's native flag package. If you import\npflag under the name \"flag\" then all code should continue to function\nwith no changes.\n\n\timport flag \"github.com/spf13/pflag\"\n\nThere is one exception to this: if you directly instantiate the Flag struct\nthere is one more field \"Shorthand\" that you will need to set.\nMost code never instantiates this struct directly, and instead uses\nfunctions such as String(), BoolVar(), and Var(), and is therefore\nunaffected.\n\nDefine flags using flag.String(), Bool(), Int(), etc.\n\nThis declares an integer flag, -flagname, stored in the pointer ip, with type *int.\n\n\tvar ip = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n\nIf you like, you can bind the flag to a variable using the Var() functions.\n\n\tvar flagvar int\n\tfunc init() {\n\t\tflag.IntVar(&flagvar, \"flagname\", 1234, \"help message for flagname\")\n\t}\n\nOr you can create custom flags that satisfy the Value interface (with\npointer receivers) and couple them to flag parsing by\n\n\tflag.Var(&flagVal, \"name\", \"help message for flagname\")\n\nFor such flags, the default value is just the initial value of the variable.\n\nAfter all flags are defined, call\n\n\tflag.Parse()\n\nto parse the command line into the defined flags.\n\nFlags may then be used directly. If you're using the flags themselves,\nthey are all pointers; if you bind to variables, they're values.\n\n\tfmt.Println(\"ip has value \", *ip)\n\tfmt.Println(\"flagvar has value \", flagvar)\n\nAfter parsing, the arguments after the flag are available as the\nslice flag.Args() or individually as flag.Arg(i).\nThe arguments are indexed from 0 through flag.NArg()-1.\n\nThe pflag package also defines some new functions that are not in flag,\nthat give one-letter shorthands for flags. You can use these by appending\n'P' to the name of any function that defines a flag.\n\n\tvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\n\tvar flagvar bool\n\tfunc init() {\n\t\tflag.BoolVarP(&flagvar, \"boolname\", \"b\", true, \"help message\")\n\t}\n\tflag.VarP(&flagval, \"varname\", \"v\", \"help message\")\n\nShorthand letters can be used with single dashes on the command line.\nBoolean shorthand flags can be combined with other shorthand flags.\n\nCommand line flag syntax:\n\n\t--flag    // boolean flags only\n\t--flag=x\n\nUnlike the flag package, a single dash before an option means something\ndifferent than a double dash. Single dashes signify a series of shorthand\nletters for flags. All but the last shorthand letter must be boolean flags.\n\n\t// boolean flags\n\t-f\n\t-abc\n\t// non-boolean flags\n\t-n 1234\n\t-Ifile\n\t// mixed\n\t-abcs \"hello\"\n\t-abcn1234\n\nFlag parsing stops after the terminator \"--\". Unlike the flag package,\nflags can be interspersed with arguments anywhere on the command line\nbefore this terminator.\n\nInteger flags accept 1234, 0664, 0x1234 and may be negative.\nBoolean flags (in their long form) accept 1, 0, t, f, true, false,\nTRUE, FALSE, True, False.\nDuration flags accept any input valid for time.ParseDuration.\n\nThe default set of command-line flags is controlled by\ntop-level functions.  The FlagSet type allows one to define\nindependent sets of flags, such as to implement subcommands\nin a command-line interface. The methods of FlagSet are\nanalogous to the top-level functions for the command-line\nflag set.\n*/\npackage pflag\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\tgoflag \"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined.\nvar ErrHelp = errors.New(\"pflag: help requested\")\n\n// ErrorHandling defines how to handle flag parsing errors.\ntype ErrorHandling int\n\nconst (\n\t// ContinueOnError will return an err from Parse() if an error is found\n\tContinueOnError ErrorHandling = iota\n\t// ExitOnError will call os.Exit(2) if an error is found when parsing\n\tExitOnError\n\t// PanicOnError will panic() if an error is found when parsing flags\n\tPanicOnError\n)\n\n// ParseErrorsAllowlist defines the parsing errors that can be ignored\ntype ParseErrorsAllowlist struct {\n\t// UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags\n\tUnknownFlags bool\n}\n\n// ParseErrorsWhitelist defines the parsing errors that can be ignored.\n//\n// Deprecated: use [ParseErrorsAllowlist] instead. This type will be removed in a future release.\ntype ParseErrorsWhitelist = ParseErrorsAllowlist\n\n// NormalizedName is a flag name that has been normalized according to rules\n// for the FlagSet (e.g. making '-' and '_' equivalent).\ntype NormalizedName string\n\n// A FlagSet represents a set of defined flags.\ntype FlagSet struct {\n\t// Usage is the function called when an error occurs while parsing flags.\n\t// The field is a function (not a method) that may be changed to point to\n\t// a custom error handler.\n\tUsage func()\n\n\t// SortFlags is used to indicate, if user wants to have sorted flags in\n\t// help/usage messages.\n\tSortFlags bool\n\n\t// ParseErrorsAllowlist is used to configure an allowlist of errors\n\tParseErrorsAllowlist ParseErrorsAllowlist\n\n\t// ParseErrorsAllowlist is used to configure an allowlist of errors.\n\t//\n\t// Deprecated: use [FlagSet.ParseErrorsAllowlist] instead. This field will be removed in a future release.\n\tParseErrorsWhitelist ParseErrorsAllowlist\n\n\tname              string\n\tparsed            bool\n\tactual            map[NormalizedName]*Flag\n\torderedActual     []*Flag\n\tsortedActual      []*Flag\n\tformal            map[NormalizedName]*Flag\n\torderedFormal     []*Flag\n\tsortedFormal      []*Flag\n\tshorthands        map[byte]*Flag\n\targs              []string // arguments after flags\n\targsLenAtDash     int      // len(args) when a '--' was located when parsing, or -1 if no --\n\terrorHandling     ErrorHandling\n\toutput            io.Writer // nil means stderr; use Output() accessor\n\tinterspersed      bool      // allow interspersed option/non-option args\n\tnormalizeNameFunc func(f *FlagSet, name string) NormalizedName\n\n\taddedGoFlagSets []*goflag.FlagSet\n}\n\n// A Flag represents the state of a flag.\ntype Flag struct {\n\tName                string              // name as it appears on command line\n\tShorthand           string              // one-letter abbreviated flag\n\tUsage               string              // help message\n\tValue               Value               // value as set\n\tDefValue            string              // default value (as text); for usage message\n\tChanged             bool                // If the user set the value (or if left to default)\n\tNoOptDefVal         string              // default value (as text); if the flag is on the command line without any options\n\tDeprecated          string              // If this flag is deprecated, this string is the new or now thing to use\n\tHidden              bool                // used by cobra.Command to allow flags to be hidden from help/usage text\n\tShorthandDeprecated string              // If the shorthand of this flag is deprecated, this string is the new or now thing to use\n\tAnnotations         map[string][]string // used by cobra.Command bash autocomple code\n}\n\n// Value is the interface to the dynamic value stored in a flag.\n// (The default value is represented as a string.)\ntype Value interface {\n\tString() string\n\tSet(string) error\n\tType() string\n}\n\n// SliceValue is a secondary interface to all flags which hold a list\n// of values.  This allows full control over the value of list flags,\n// and avoids complicated marshalling and unmarshalling to csv.\ntype SliceValue interface {\n\t// Append adds the specified value to the end of the flag value list.\n\tAppend(string) error\n\t// Replace will fully overwrite any data currently in the flag value list.\n\tReplace([]string) error\n\t// GetSlice returns the flag value list as an array of strings.\n\tGetSlice() []string\n}\n\n// sortFlags returns the flags as a slice in lexicographical sorted order.\nfunc sortFlags(flags map[NormalizedName]*Flag) []*Flag {\n\tlist := make(sort.StringSlice, len(flags))\n\ti := 0\n\tfor k := range flags {\n\t\tlist[i] = string(k)\n\t\ti++\n\t}\n\tlist.Sort()\n\tresult := make([]*Flag, len(list))\n\tfor i, name := range list {\n\t\tresult[i] = flags[NormalizedName(name)]\n\t}\n\treturn result\n}\n\n// SetNormalizeFunc allows you to add a function which can translate flag names.\n// Flags added to the FlagSet will be translated and then when anything tries to\n// look up the flag that will also be translated. So it would be possible to create\n// a flag named \"getURL\" and have it translated to \"geturl\".  A user could then pass\n// \"--getUrl\" which may also be translated to \"geturl\" and everything will work.\nfunc (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) {\n\tf.normalizeNameFunc = n\n\tf.sortedFormal = f.sortedFormal[:0]\n\tfor fname, flag := range f.formal {\n\t\tnname := f.normalizeFlagName(flag.Name)\n\t\tif fname == nname {\n\t\t\tcontinue\n\t\t}\n\t\tflag.Name = string(nname)\n\t\tdelete(f.formal, fname)\n\t\tf.formal[nname] = flag\n\t\tif _, set := f.actual[fname]; set {\n\t\t\tdelete(f.actual, fname)\n\t\t\tf.actual[nname] = flag\n\t\t}\n\t}\n}\n\n// GetNormalizeFunc returns the previously set NormalizeFunc of a function which\n// does no translation, if not set previously.\nfunc (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName {\n\tif f.normalizeNameFunc != nil {\n\t\treturn f.normalizeNameFunc\n\t}\n\treturn func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) }\n}\n\nfunc (f *FlagSet) normalizeFlagName(name string) NormalizedName {\n\tn := f.GetNormalizeFunc()\n\treturn n(f, name)\n}\n\n// Output returns the destination for usage and error messages. os.Stderr is returned if\n// output was not set or was set to nil.\nfunc (f *FlagSet) Output() io.Writer {\n\tif f.output == nil {\n\t\treturn os.Stderr\n\t}\n\treturn f.output\n}\n\n// Name returns the name of the flag set.\nfunc (f *FlagSet) Name() string {\n\treturn f.name\n}\n\n// SetOutput sets the destination for usage and error messages.\n// If output is nil, os.Stderr is used.\nfunc (f *FlagSet) SetOutput(output io.Writer) {\n\tf.output = output\n}\n\n// VisitAll visits the flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits all flags, even those not set.\nfunc (f *FlagSet) VisitAll(fn func(*Flag)) {\n\tif len(f.formal) == 0 {\n\t\treturn\n\t}\n\n\tvar flags []*Flag\n\tif f.SortFlags {\n\t\tif len(f.formal) != len(f.sortedFormal) {\n\t\t\tf.sortedFormal = sortFlags(f.formal)\n\t\t}\n\t\tflags = f.sortedFormal\n\t} else {\n\t\tflags = f.orderedFormal\n\t}\n\n\tfor _, flag := range flags {\n\t\tfn(flag)\n\t}\n}\n\n// HasFlags returns a bool to indicate if the FlagSet has any flags defined.\nfunc (f *FlagSet) HasFlags() bool {\n\treturn len(f.formal) > 0\n}\n\n// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags\n// that are not hidden.\nfunc (f *FlagSet) HasAvailableFlags() bool {\n\tfor _, flag := range f.formal {\n\t\tif !flag.Hidden {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// VisitAll visits the command-line flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits all flags, even those not set.\nfunc VisitAll(fn func(*Flag)) {\n\tCommandLine.VisitAll(fn)\n}\n\n// Visit visits the flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits only those flags that have been set.\nfunc (f *FlagSet) Visit(fn func(*Flag)) {\n\tif len(f.actual) == 0 {\n\t\treturn\n\t}\n\n\tvar flags []*Flag\n\tif f.SortFlags {\n\t\tif len(f.actual) != len(f.sortedActual) {\n\t\t\tf.sortedActual = sortFlags(f.actual)\n\t\t}\n\t\tflags = f.sortedActual\n\t} else {\n\t\tflags = f.orderedActual\n\t}\n\n\tfor _, flag := range flags {\n\t\tfn(flag)\n\t}\n}\n\n// Visit visits the command-line flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits only those flags that have been set.\nfunc Visit(fn func(*Flag)) {\n\tCommandLine.Visit(fn)\n}\n\n// Lookup returns the Flag structure of the named flag, returning nil if none exists.\nfunc (f *FlagSet) Lookup(name string) *Flag {\n\treturn f.lookup(f.normalizeFlagName(name))\n}\n\n// ShorthandLookup returns the Flag structure of the short handed flag,\n// returning nil if none exists.\n// It panics, if len(name) > 1.\nfunc (f *FlagSet) ShorthandLookup(name string) *Flag {\n\tif name == \"\" {\n\t\treturn nil\n\t}\n\tif len(name) > 1 {\n\t\tmsg := fmt.Sprintf(\"can not look up shorthand which is more than one ASCII character: %q\", name)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tc := name[0]\n\treturn f.shorthands[c]\n}\n\n// lookup returns the Flag structure of the named flag, returning nil if none exists.\nfunc (f *FlagSet) lookup(name NormalizedName) *Flag {\n\treturn f.formal[name]\n}\n\n// func to return a given type for a given flag name\nfunc (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\terr := &NotExistError{name: name, messageType: flagNotDefinedMessage}\n\t\treturn nil, err\n\t}\n\n\tif flag.Value.Type() != ftype {\n\t\terr := fmt.Errorf(\"trying to get %s value of flag of type %s\", ftype, flag.Value.Type())\n\t\treturn nil, err\n\t}\n\n\tsval := flag.Value.String()\n\tresult, err := convFunc(sval)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ArgsLenAtDash will return the length of f.Args at the moment when a -- was\n// found during arg parsing. This allows your program to know which args were\n// before the -- and which came after.\nfunc (f *FlagSet) ArgsLenAtDash() int {\n\treturn f.argsLenAtDash\n}\n\n// MarkDeprecated indicated that a flag is deprecated in your program. It will\n// continue to function but will not show up in help or usage messages. Using\n// this flag will also print the given usageMessage.\nfunc (f *FlagSet) MarkDeprecated(name string, usageMessage string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn &NotExistError{name: name, messageType: flagNotExistMessage}\n\t}\n\tif usageMessage == \"\" {\n\t\treturn fmt.Errorf(\"deprecated message for flag %q must be set\", name)\n\t}\n\tflag.Deprecated = usageMessage\n\tflag.Hidden = true\n\treturn nil\n}\n\n// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your\n// program. It will continue to function but will not show up in help or usage\n// messages. Using this flag will also print the given usageMessage.\nfunc (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn &NotExistError{name: name, messageType: flagNotExistMessage}\n\t}\n\tif usageMessage == \"\" {\n\t\treturn fmt.Errorf(\"deprecated message for flag %q must be set\", name)\n\t}\n\tflag.ShorthandDeprecated = usageMessage\n\treturn nil\n}\n\n// MarkHidden sets a flag to 'hidden' in your program. It will continue to\n// function but will not show up in help or usage messages.\nfunc (f *FlagSet) MarkHidden(name string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn &NotExistError{name: name, messageType: flagNotExistMessage}\n\t}\n\tflag.Hidden = true\n\treturn nil\n}\n\n// Lookup returns the Flag structure of the named command-line flag,\n// returning nil if none exists.\nfunc Lookup(name string) *Flag {\n\treturn CommandLine.Lookup(name)\n}\n\n// ShorthandLookup returns the Flag structure of the short handed flag,\n// returning nil if none exists.\nfunc ShorthandLookup(name string) *Flag {\n\treturn CommandLine.ShorthandLookup(name)\n}\n\n// Set sets the value of the named flag.\nfunc (f *FlagSet) Set(name, value string) error {\n\tnormalName := f.normalizeFlagName(name)\n\tflag, ok := f.formal[normalName]\n\tif !ok {\n\t\treturn &NotExistError{name: name, messageType: flagNoSuchFlagMessage}\n\t}\n\n\terr := flag.Value.Set(value)\n\tif err != nil {\n\t\treturn &InvalidValueError{\n\t\t\tflag:  flag,\n\t\t\tvalue: value,\n\t\t\tcause: err,\n\t\t}\n\t}\n\n\tif !flag.Changed {\n\t\tif f.actual == nil {\n\t\t\tf.actual = make(map[NormalizedName]*Flag)\n\t\t}\n\t\tf.actual[normalName] = flag\n\t\tf.orderedActual = append(f.orderedActual, flag)\n\n\t\tflag.Changed = true\n\t}\n\n\tif flag.Deprecated != \"\" {\n\t\tfmt.Fprintf(f.Output(), \"Flag --%s has been deprecated, %s\\n\", flag.Name, flag.Deprecated)\n\t}\n\treturn nil\n}\n\n// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet.\n// This is sometimes used by spf13/cobra programs which want to generate additional\n// bash completion information.\nfunc (f *FlagSet) SetAnnotation(name, key string, values []string) error {\n\tnormalName := f.normalizeFlagName(name)\n\tflag, ok := f.formal[normalName]\n\tif !ok {\n\t\treturn &NotExistError{name: name, messageType: flagNoSuchFlagMessage}\n\t}\n\tif flag.Annotations == nil {\n\t\tflag.Annotations = map[string][]string{}\n\t}\n\tflag.Annotations[key] = values\n\treturn nil\n}\n\n// Changed returns true if the flag was explicitly set during Parse() and false\n// otherwise\nfunc (f *FlagSet) Changed(name string) bool {\n\tflag := f.Lookup(name)\n\t// If a flag doesn't exist, it wasn't changed....\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.Changed\n}\n\n// Set sets the value of the named command-line flag.\nfunc Set(name, value string) error {\n\treturn CommandLine.Set(name, value)\n}\n\n// PrintDefaults prints, to standard error unless configured\n// otherwise, the default values of all defined flags in the set.\nfunc (f *FlagSet) PrintDefaults() {\n\tusages := f.FlagUsages()\n\tfmt.Fprint(f.Output(), usages)\n}\n\n// defaultIsZeroValue returns true if the default value for this flag represents\n// a zero value.\nfunc (f *Flag) defaultIsZeroValue() bool {\n\tswitch f.Value.(type) {\n\tcase boolFlag:\n\t\treturn f.DefValue == \"false\" || f.DefValue == \"\"\n\tcase *durationValue:\n\t\t// Beginning in Go 1.7, duration zero values are \"0s\"\n\t\treturn f.DefValue == \"0\" || f.DefValue == \"0s\"\n\tcase *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value:\n\t\treturn f.DefValue == \"0\"\n\tcase *stringValue:\n\t\treturn f.DefValue == \"\"\n\tcase *ipValue, *ipMaskValue, *ipNetValue:\n\t\treturn f.DefValue == \"<nil>\"\n\tcase *intSliceValue, *stringSliceValue, *stringArrayValue:\n\t\treturn f.DefValue == \"[]\"\n\tdefault:\n\t\tswitch f.DefValue {\n\t\tcase \"false\":\n\t\t\treturn true\n\t\tcase \"<nil>\":\n\t\t\treturn true\n\t\tcase \"\":\n\t\t\treturn true\n\t\tcase \"0\":\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n}\n\n// UnquoteUsage extracts a back-quoted name from the usage\n// string for a flag and returns it and the un-quoted usage.\n// Given \"a `name` to show\" it returns (\"name\", \"a name to show\").\n// If there are no back quotes, the name is an educated guess of the\n// type of the flag's value, or the empty string if the flag is boolean.\nfunc UnquoteUsage(flag *Flag) (name string, usage string) {\n\t// Look for a back-quoted name, but avoid the strings package.\n\tusage = flag.Usage\n\tfor i := 0; i < len(usage); i++ {\n\t\tif usage[i] == '`' {\n\t\t\tfor j := i + 1; j < len(usage); j++ {\n\t\t\t\tif usage[j] == '`' {\n\t\t\t\t\tname = usage[i+1 : j]\n\t\t\t\t\tusage = usage[:i] + name + usage[j+1:]\n\t\t\t\t\treturn name, usage\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak // Only one back quote; use type name.\n\t\t}\n\t}\n\n\tname = flag.Value.Type()\n\tswitch name {\n\tcase \"bool\", \"boolfunc\":\n\t\tname = \"\"\n\tcase \"func\":\n\t\tname = \"value\"\n\tcase \"float64\":\n\t\tname = \"float\"\n\tcase \"int64\":\n\t\tname = \"int\"\n\tcase \"uint64\":\n\t\tname = \"uint\"\n\tcase \"stringSlice\":\n\t\tname = \"strings\"\n\tcase \"intSlice\":\n\t\tname = \"ints\"\n\tcase \"uintSlice\":\n\t\tname = \"uints\"\n\tcase \"boolSlice\":\n\t\tname = \"bools\"\n\t}\n\n\treturn\n}\n\n// Splits the string `s` on whitespace into an initial substring up to\n// `i` runes in length and the remainder. Will go `slop` over `i` if\n// that encompasses the entire string (which allows the caller to\n// avoid short orphan words on the final line).\nfunc wrapN(i, slop int, s string) (string, string) {\n\tif i+slop > len(s) {\n\t\treturn s, \"\"\n\t}\n\n\tw := strings.LastIndexAny(s[:i], \" \\t\\n\")\n\tif w <= 0 {\n\t\treturn s, \"\"\n\t}\n\tnlPos := strings.LastIndex(s[:i], \"\\n\")\n\tif nlPos > 0 && nlPos < w {\n\t\treturn s[:nlPos], s[nlPos+1:]\n\t}\n\treturn s[:w], s[w+1:]\n}\n\n// Wraps the string `s` to a maximum width `w` with leading indent\n// `i`. The first line is not indented (this is assumed to be done by\n// caller). Pass `w` == 0 to do no wrapping\nfunc wrap(i, w int, s string) string {\n\tif w == 0 {\n\t\treturn strings.Replace(s, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\t}\n\n\t// space between indent i and end of line width w into which\n\t// we should wrap the text.\n\twrap := w - i\n\n\tvar r, l string\n\n\t// Not enough space for sensible wrapping. Wrap as a block on\n\t// the next line instead.\n\tif wrap < 24 {\n\t\ti = 16\n\t\twrap = w - i\n\t\tr += \"\\n\" + strings.Repeat(\" \", i)\n\t}\n\t// If still not enough space then don't even try to wrap.\n\tif wrap < 24 {\n\t\treturn strings.Replace(s, \"\\n\", r, -1)\n\t}\n\n\t// Try to avoid short orphan words on the final line, by\n\t// allowing wrapN to go a bit over if that would fit in the\n\t// remainder of the line.\n\tslop := 5\n\twrap = wrap - slop\n\n\t// Handle first line, which is indented by the caller (or the\n\t// special case above)\n\tl, s = wrapN(wrap, slop, s)\n\tr = r + strings.Replace(l, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\n\t// Now wrap the rest\n\tfor s != \"\" {\n\t\tvar t string\n\n\t\tt, s = wrapN(wrap, slop, s)\n\t\tr = r + \"\\n\" + strings.Repeat(\" \", i) + strings.Replace(t, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\t}\n\n\treturn r\n\n}\n\n// FlagUsagesWrapped returns a string containing the usage information\n// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no\n// wrapping)\nfunc (f *FlagSet) FlagUsagesWrapped(cols int) string {\n\tbuf := new(bytes.Buffer)\n\n\tlines := make([]string, 0, len(f.formal))\n\n\tmaxlen := 0\n\tf.VisitAll(func(flag *Flag) {\n\t\tif flag.Hidden {\n\t\t\treturn\n\t\t}\n\n\t\tline := \"\"\n\t\tif flag.Shorthand != \"\" && flag.ShorthandDeprecated == \"\" {\n\t\t\tline = fmt.Sprintf(\"  -%s, --%s\", flag.Shorthand, flag.Name)\n\t\t} else {\n\t\t\tline = fmt.Sprintf(\"      --%s\", flag.Name)\n\t\t}\n\n\t\tvarname, usage := UnquoteUsage(flag)\n\t\tif varname != \"\" {\n\t\t\tline += \" \" + varname\n\t\t}\n\t\tif flag.NoOptDefVal != \"\" {\n\t\t\tswitch flag.Value.Type() {\n\t\t\tcase \"string\":\n\t\t\t\tline += fmt.Sprintf(\"[=\\\"%s\\\"]\", flag.NoOptDefVal)\n\t\t\tcase \"bool\", \"boolfunc\":\n\t\t\t\tif flag.NoOptDefVal != \"true\" {\n\t\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t\t}\n\t\t\tcase \"count\":\n\t\t\t\tif flag.NoOptDefVal != \"+1\" {\n\t\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t}\n\t\t}\n\n\t\t// This special character will be replaced with spacing once the\n\t\t// correct alignment is calculated\n\t\tline += \"\\x00\"\n\t\tif len(line) > maxlen {\n\t\t\tmaxlen = len(line)\n\t\t}\n\n\t\tline += usage\n\t\tif !flag.defaultIsZeroValue() {\n\t\t\tif flag.Value.Type() == \"string\" {\n\t\t\t\tline += fmt.Sprintf(\" (default %q)\", flag.DefValue)\n\t\t\t} else {\n\t\t\t\tline += fmt.Sprintf(\" (default %s)\", flag.DefValue)\n\t\t\t}\n\t\t}\n\t\tif len(flag.Deprecated) != 0 {\n\t\t\tline += fmt.Sprintf(\" (DEPRECATED: %s)\", flag.Deprecated)\n\t\t}\n\n\t\tlines = append(lines, line)\n\t})\n\n\tfor _, line := range lines {\n\t\tsidx := strings.Index(line, \"\\x00\")\n\t\tspacing := strings.Repeat(\" \", maxlen-sidx)\n\t\t// maxlen + 2 comes from + 1 for the \\x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx\n\t\tfmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:]))\n\t}\n\n\treturn buf.String()\n}\n\n// FlagUsages returns a string containing the usage information for all flags in\n// the FlagSet\nfunc (f *FlagSet) FlagUsages() string {\n\treturn f.FlagUsagesWrapped(0)\n}\n\n// PrintDefaults prints to standard error the default values of all defined command-line flags.\nfunc PrintDefaults() {\n\tCommandLine.PrintDefaults()\n}\n\n// defaultUsage is the default function to print a usage message.\nfunc defaultUsage(f *FlagSet) {\n\tfmt.Fprintf(f.Output(), \"Usage of %s:\\n\", f.name)\n\tf.PrintDefaults()\n}\n\n// NOTE: Usage is not just defaultUsage(CommandLine)\n// because it serves (via godoc flag Usage) as the example\n// for how to write your own usage function.\n\n// Usage prints to standard error a usage message documenting all defined command-line flags.\n// The function is a variable that may be changed to point to a custom function.\n// By default it prints a simple header and calls PrintDefaults; for details about the\n// format of the output and how to control it, see the documentation for PrintDefaults.\nvar Usage = func() {\n\tfmt.Fprintf(os.Stderr, \"Usage of %s:\\n\", os.Args[0])\n\tPrintDefaults()\n}\n\n// NFlag returns the number of flags that have been set.\nfunc (f *FlagSet) NFlag() int { return len(f.actual) }\n\n// NFlag returns the number of command-line flags that have been set.\nfunc NFlag() int { return len(CommandLine.actual) }\n\n// Arg returns the i'th argument.  Arg(0) is the first remaining argument\n// after flags have been processed.\nfunc (f *FlagSet) Arg(i int) string {\n\tif i < 0 || i >= len(f.args) {\n\t\treturn \"\"\n\t}\n\treturn f.args[i]\n}\n\n// Arg returns the i'th command-line argument.  Arg(0) is the first remaining argument\n// after flags have been processed.\nfunc Arg(i int) string {\n\treturn CommandLine.Arg(i)\n}\n\n// NArg is the number of arguments remaining after flags have been processed.\nfunc (f *FlagSet) NArg() int { return len(f.args) }\n\n// NArg is the number of arguments remaining after flags have been processed.\nfunc NArg() int { return len(CommandLine.args) }\n\n// Args returns the non-flag arguments.\nfunc (f *FlagSet) Args() []string { return f.args }\n\n// Args returns the non-flag command-line arguments.\nfunc Args() []string { return CommandLine.args }\n\n// Var defines a flag with the specified name and usage string. The type and\n// value of the flag are represented by the first argument, of type Value, which\n// typically holds a user-defined implementation of Value. For instance, the\n// caller could create a flag that turns a comma-separated string into a slice\n// of strings by giving the slice the methods of Value; in particular, Set would\n// decompose the comma-separated string into the slice.\nfunc (f *FlagSet) Var(value Value, name string, usage string) {\n\tf.VarP(value, name, \"\", usage)\n}\n\n// VarPF is like VarP, but returns the flag created\nfunc (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag {\n\t// Remember the default value as a string; it won't change.\n\tflag := &Flag{\n\t\tName:      name,\n\t\tShorthand: shorthand,\n\t\tUsage:     usage,\n\t\tValue:     value,\n\t\tDefValue:  value.String(),\n\t}\n\tf.AddFlag(flag)\n\treturn flag\n}\n\n// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) VarP(value Value, name, shorthand, usage string) {\n\tf.VarPF(value, name, shorthand, usage)\n}\n\n// AddFlag will add the flag to the FlagSet\nfunc (f *FlagSet) AddFlag(flag *Flag) {\n\tnormalizedFlagName := f.normalizeFlagName(flag.Name)\n\n\t_, alreadyThere := f.formal[normalizedFlagName]\n\tif alreadyThere {\n\t\tmsg := fmt.Sprintf(\"%s flag redefined: %s\", f.name, flag.Name)\n\t\tfmt.Fprintln(f.Output(), msg)\n\t\tpanic(msg) // Happens only if flags are declared with identical names\n\t}\n\tif f.formal == nil {\n\t\tf.formal = make(map[NormalizedName]*Flag)\n\t}\n\n\tflag.Name = string(normalizedFlagName)\n\tf.formal[normalizedFlagName] = flag\n\tf.orderedFormal = append(f.orderedFormal, flag)\n\n\tif flag.Shorthand == \"\" {\n\t\treturn\n\t}\n\tif len(flag.Shorthand) > 1 {\n\t\tmsg := fmt.Sprintf(\"%q shorthand is more than one ASCII character\", flag.Shorthand)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tif f.shorthands == nil {\n\t\tf.shorthands = make(map[byte]*Flag)\n\t}\n\tc := flag.Shorthand[0]\n\tused, alreadyThere := f.shorthands[c]\n\tif alreadyThere {\n\t\tmsg := fmt.Sprintf(\"unable to redefine %q shorthand in %q flagset: it's already used for %q flag\", c, f.name, used.Name)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tf.shorthands[c] = flag\n}\n\n// AddFlagSet adds one FlagSet to another. If a flag is already present in f\n// the flag from newSet will be ignored.\nfunc (f *FlagSet) AddFlagSet(newSet *FlagSet) {\n\tif newSet == nil {\n\t\treturn\n\t}\n\tnewSet.VisitAll(func(flag *Flag) {\n\t\tif f.Lookup(flag.Name) == nil {\n\t\t\tf.AddFlag(flag)\n\t\t}\n\t})\n}\n\n// Var defines a flag with the specified name and usage string. The type and\n// value of the flag are represented by the first argument, of type Value, which\n// typically holds a user-defined implementation of Value. For instance, the\n// caller could create a flag that turns a comma-separated string into a slice\n// of strings by giving the slice the methods of Value; in particular, Set would\n// decompose the comma-separated string into the slice.\nfunc Var(value Value, name string, usage string) {\n\tCommandLine.VarP(value, name, \"\", usage)\n}\n\n// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.\nfunc VarP(value Value, name, shorthand, usage string) {\n\tCommandLine.VarP(value, name, shorthand, usage)\n}\n\n// fail prints an error message and usage message to standard error and\n// returns the error.\nfunc (f *FlagSet) fail(err error) error {\n\tif f.errorHandling != ContinueOnError {\n\t\tf.usage()\n\t}\n\treturn err\n}\n\n// usage calls the Usage method for the flag set, or the usage function if\n// the flag set is CommandLine.\nfunc (f *FlagSet) usage() {\n\tif f == CommandLine {\n\t\tUsage()\n\t} else if f.Usage == nil {\n\t\tdefaultUsage(f)\n\t} else {\n\t\tf.Usage()\n\t}\n}\n\n// --unknown (args will be empty)\n// --unknown --next-flag ... (args will be --next-flag ...)\n// --unknown arg ... (args will be arg ...)\nfunc stripUnknownFlagValue(args []string) []string {\n\tif len(args) == 0 {\n\t\t//--unknown\n\t\treturn args\n\t}\n\n\tfirst := args[0]\n\tif len(first) > 0 && first[0] == '-' {\n\t\t//--unknown --next-flag ...\n\t\treturn args\n\t}\n\n\t//--unknown arg ... (args will be arg ...)\n\tif len(args) > 1 {\n\t\treturn args[1:]\n\t}\n\treturn nil\n}\n\nfunc (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) {\n\ta = args\n\tname := s[2:]\n\tif len(name) == 0 || name[0] == '-' || name[0] == '=' {\n\t\terr = f.fail(&InvalidSyntaxError{specifiedFlag: s})\n\t\treturn\n\t}\n\n\tsplit := strings.SplitN(name, \"=\", 2)\n\tname = split[0]\n\tflag, exists := f.formal[f.normalizeFlagName(name)]\n\n\tif !exists {\n\t\tswitch {\n\t\tcase name == \"help\":\n\t\t\tf.usage()\n\t\t\treturn a, ErrHelp\n\t\tcase f.ParseErrorsWhitelist.UnknownFlags:\n\t\t\tfallthrough\n\t\tcase f.ParseErrorsAllowlist.UnknownFlags:\n\t\t\t// --unknown=unknownval arg ...\n\t\t\t// we do not want to lose arg in this case\n\t\t\tif len(split) >= 2 {\n\t\t\t\treturn a, nil\n\t\t\t}\n\n\t\t\treturn stripUnknownFlagValue(a), nil\n\t\tdefault:\n\t\t\terr = f.fail(&NotExistError{name: name, messageType: flagUnknownFlagMessage})\n\t\t\treturn\n\t\t}\n\t}\n\n\tvar value string\n\tif len(split) == 2 {\n\t\t// '--flag=arg'\n\t\tvalue = split[1]\n\t} else if flag.NoOptDefVal != \"\" {\n\t\t// '--flag' (arg was optional)\n\t\tvalue = flag.NoOptDefVal\n\t} else if len(a) > 0 {\n\t\t// '--flag arg'\n\t\tvalue = a[0]\n\t\ta = a[1:]\n\t} else {\n\t\t// '--flag' (arg was required)\n\t\terr = f.fail(&ValueRequiredError{\n\t\t\tflag:          flag,\n\t\t\tspecifiedName: name,\n\t\t})\n\t\treturn\n\t}\n\n\terr = fn(flag, value)\n\tif err != nil {\n\t\tf.fail(err)\n\t}\n\treturn\n}\n\nfunc (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) {\n\toutArgs = args\n\n\tif isGotestShorthandFlag(shorthands) {\n\t\treturn\n\t}\n\n\toutShorts = shorthands[1:]\n\tc := shorthands[0]\n\n\tflag, exists := f.shorthands[c]\n\tif !exists {\n\t\tswitch {\n\t\tcase c == 'h':\n\t\t\tf.usage()\n\t\t\terr = ErrHelp\n\t\t\treturn\n\t\tcase f.ParseErrorsWhitelist.UnknownFlags:\n\t\t\tfallthrough\n\t\tcase f.ParseErrorsAllowlist.UnknownFlags:\n\t\t\t// '-f=arg arg ...'\n\t\t\t// we do not want to lose arg in this case\n\t\t\tif len(shorthands) > 2 && shorthands[1] == '=' {\n\t\t\t\toutShorts = \"\"\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\toutArgs = stripUnknownFlagValue(outArgs)\n\t\t\treturn\n\t\tdefault:\n\t\t\terr = f.fail(&NotExistError{\n\t\t\t\tname:                string(c),\n\t\t\t\tspecifiedShorthands: shorthands,\n\t\t\t\tmessageType:         flagUnknownShorthandFlagMessage,\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n\n\tvar value string\n\tif len(shorthands) > 2 && shorthands[1] == '=' {\n\t\t// '-f=arg'\n\t\tvalue = shorthands[2:]\n\t\toutShorts = \"\"\n\t} else if flag.NoOptDefVal != \"\" {\n\t\t// '-f' (arg was optional)\n\t\tvalue = flag.NoOptDefVal\n\t} else if len(shorthands) > 1 {\n\t\t// '-farg'\n\t\tvalue = shorthands[1:]\n\t\toutShorts = \"\"\n\t} else if len(args) > 0 {\n\t\t// '-f arg'\n\t\tvalue = args[0]\n\t\toutArgs = args[1:]\n\t} else {\n\t\t// '-f' (arg was required)\n\t\terr = f.fail(&ValueRequiredError{\n\t\t\tflag:                flag,\n\t\t\tspecifiedName:       string(c),\n\t\t\tspecifiedShorthands: shorthands,\n\t\t})\n\t\treturn\n\t}\n\n\tif flag.ShorthandDeprecated != \"\" {\n\t\tfmt.Fprintf(f.Output(), \"Flag shorthand -%s has been deprecated, %s\\n\", flag.Shorthand, flag.ShorthandDeprecated)\n\t}\n\n\terr = fn(flag, value)\n\tif err != nil {\n\t\tf.fail(err)\n\t}\n\treturn\n}\n\nfunc (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) {\n\ta = args\n\tshorthands := s[1:]\n\n\t// \"shorthands\" can be a series of shorthand letters of flags (e.g. \"-vvv\").\n\tfor len(shorthands) > 0 {\n\t\tshorthands, a, err = f.parseSingleShortArg(shorthands, args, fn)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {\n\tfor len(args) > 0 {\n\t\ts := args[0]\n\t\targs = args[1:]\n\t\tif len(s) == 0 || s[0] != '-' || len(s) == 1 {\n\t\t\tif !f.interspersed {\n\t\t\t\tf.args = append(f.args, s)\n\t\t\t\tf.args = append(f.args, args...)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tf.args = append(f.args, s)\n\t\t\tcontinue\n\t\t}\n\n\t\tif s[1] == '-' {\n\t\t\tif len(s) == 2 { // \"--\" terminates the flags\n\t\t\t\tf.argsLenAtDash = len(f.args)\n\t\t\t\tf.args = append(f.args, args...)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\targs, err = f.parseLongArg(s, args, fn)\n\t\t} else {\n\t\t\targs, err = f.parseShortArg(s, args, fn)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// Parse parses flag definitions from the argument list, which should not\n// include the command name.  Must be called after all flags in the FlagSet\n// are defined and before flags are accessed by the program.\n// The return value will be ErrHelp if -help was set but not defined.\nfunc (f *FlagSet) Parse(arguments []string) error {\n\tif f.addedGoFlagSets != nil {\n\t\tfor _, goFlagSet := range f.addedGoFlagSets {\n\t\t\tgoFlagSet.Parse(nil)\n\t\t}\n\t}\n\tf.parsed = true\n\n\tf.args = make([]string, 0, len(arguments))\n\n\tif len(arguments) == 0 {\n\t\treturn nil\n\t}\n\n\tset := func(flag *Flag, value string) error {\n\t\treturn f.Set(flag.Name, value)\n\t}\n\n\terr := f.parseArgs(arguments, set)\n\tif err != nil {\n\t\tswitch f.errorHandling {\n\t\tcase ContinueOnError:\n\t\t\treturn err\n\t\tcase ExitOnError:\n\t\t\tif err == ErrHelp {\n\t\t\t\tos.Exit(0)\n\t\t\t}\n\t\t\tfmt.Fprintln(f.Output(), err)\n\t\t\tos.Exit(2)\n\t\tcase PanicOnError:\n\t\t\tpanic(err)\n\t\t}\n\t}\n\treturn nil\n}\n\ntype parseFunc func(flag *Flag, value string) error\n\n// ParseAll parses flag definitions from the argument list, which should not\n// include the command name. The arguments for fn are flag and value. Must be\n// called after all flags in the FlagSet are defined and before flags are\n// accessed by the program. The return value will be ErrHelp if -help was set\n// but not defined.\nfunc (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error {\n\tf.parsed = true\n\tf.args = make([]string, 0, len(arguments))\n\n\terr := f.parseArgs(arguments, fn)\n\tif err != nil {\n\t\tswitch f.errorHandling {\n\t\tcase ContinueOnError:\n\t\t\treturn err\n\t\tcase ExitOnError:\n\t\t\tif err == ErrHelp {\n\t\t\t\tos.Exit(0)\n\t\t\t}\n\t\t\tfmt.Fprintln(f.Output(), err)\n\t\t\tos.Exit(2)\n\t\tcase PanicOnError:\n\t\t\tpanic(err)\n\t\t}\n\t}\n\treturn nil\n}\n\n// Parsed reports whether f.Parse has been called.\nfunc (f *FlagSet) Parsed() bool {\n\treturn f.parsed\n}\n\n// Parse parses the command-line flags from os.Args[1:].  Must be called\n// after all flags are defined and before flags are accessed by the program.\nfunc Parse() {\n\t// Ignore errors; CommandLine is set for ExitOnError.\n\tCommandLine.Parse(os.Args[1:])\n}\n\n// ParseAll parses the command-line flags from os.Args[1:] and called fn for each.\n// The arguments for fn are flag and value. Must be called after all flags are\n// defined and before flags are accessed by the program.\nfunc ParseAll(fn func(flag *Flag, value string) error) {\n\t// Ignore errors; CommandLine is set for ExitOnError.\n\tCommandLine.ParseAll(os.Args[1:], fn)\n}\n\n// SetInterspersed sets whether to support interspersed option/non-option arguments.\nfunc SetInterspersed(interspersed bool) {\n\tCommandLine.SetInterspersed(interspersed)\n}\n\n// Parsed returns true if the command-line flags have been parsed.\nfunc Parsed() bool {\n\treturn CommandLine.Parsed()\n}\n\n// CommandLine is the default set of command-line flags, parsed from os.Args.\nvar CommandLine = NewFlagSet(os.Args[0], ExitOnError)\n\n// NewFlagSet returns a new, empty flag set with the specified name,\n// error handling property and SortFlags set to true.\nfunc NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {\n\tf := &FlagSet{\n\t\tname:          name,\n\t\terrorHandling: errorHandling,\n\t\targsLenAtDash: -1,\n\t\tinterspersed:  true,\n\t\tSortFlags:     true,\n\t}\n\treturn f\n}\n\n// SetInterspersed sets whether to support interspersed option/non-option arguments.\nfunc (f *FlagSet) SetInterspersed(interspersed bool) {\n\tf.interspersed = interspersed\n}\n\n// Init sets the name and error handling property for a flag set.\n// By default, the zero FlagSet uses an empty name and the\n// ContinueOnError error handling policy.\nfunc (f *FlagSet) Init(name string, errorHandling ErrorHandling) {\n\tf.name = name\n\tf.errorHandling = errorHandling\n\tf.argsLenAtDash = -1\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- float32 Value\ntype float32Value float32\n\nfunc newFloat32Value(val float32, p *float32) *float32Value {\n\t*p = val\n\treturn (*float32Value)(p)\n}\n\nfunc (f *float32Value) Set(s string) error {\n\tv, err := strconv.ParseFloat(s, 32)\n\t*f = float32Value(v)\n\treturn err\n}\n\nfunc (f *float32Value) Type() string {\n\treturn \"float32\"\n}\n\nfunc (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) }\n\nfunc float32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseFloat(sval, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn float32(v), nil\n}\n\n// GetFloat32 return the float32 value of a flag with the given name\nfunc (f *FlagSet) GetFloat32(name string) (float32, error) {\n\tval, err := f.getFlagType(name, \"float32\", float32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(float32), nil\n}\n\n// Float32Var defines a float32 flag with specified name, default value, and usage string.\n// The argument p points to a float32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) {\n\tf.VarP(newFloat32Value(value, p), name, \"\", usage)\n}\n\n// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) {\n\tf.VarP(newFloat32Value(value, p), name, shorthand, usage)\n}\n\n// Float32Var defines a float32 flag with specified name, default value, and usage string.\n// The argument p points to a float32 variable in which to store the value of the flag.\nfunc Float32Var(p *float32, name string, value float32, usage string) {\n\tCommandLine.VarP(newFloat32Value(value, p), name, \"\", usage)\n}\n\n// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32VarP(p *float32, name, shorthand string, value float32, usage string) {\n\tCommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage)\n}\n\n// Float32 defines a float32 flag with specified name, default value, and usage string.\n// The return value is the address of a float32 variable that stores the value of the flag.\nfunc (f *FlagSet) Float32(name string, value float32, usage string) *float32 {\n\tp := new(float32)\n\tf.Float32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 {\n\tp := new(float32)\n\tf.Float32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Float32 defines a float32 flag with specified name, default value, and usage string.\n// The return value is the address of a float32 variable that stores the value of the flag.\nfunc Float32(name string, value float32, usage string) *float32 {\n\treturn CommandLine.Float32P(name, \"\", value, usage)\n}\n\n// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32P(name, shorthand string, value float32, usage string) *float32 {\n\treturn CommandLine.Float32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float32Slice Value\ntype float32SliceValue struct {\n\tvalue   *[]float32\n\tchanged bool\n}\n\nfunc newFloat32SliceValue(val []float32, p *[]float32) *float32SliceValue {\n\tisv := new(float32SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *float32SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]float32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 float64\n\t\ttemp64, err = strconv.ParseFloat(d, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = float32(temp64)\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *float32SliceValue) Type() string {\n\treturn \"float32Slice\"\n}\n\nfunc (s *float32SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%f\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *float32SliceValue) fromString(val string) (float32, error) {\n\tt64, err := strconv.ParseFloat(val, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn float32(t64), nil\n}\n\nfunc (s *float32SliceValue) toString(val float32) string {\n\treturn fmt.Sprintf(\"%f\", val)\n}\n\nfunc (s *float32SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *float32SliceValue) Replace(val []string) error {\n\tout := make([]float32, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *float32SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc float32SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []float32{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]float32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 float64\n\t\ttemp64, err = strconv.ParseFloat(d, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = float32(temp64)\n\n\t}\n\treturn out, nil\n}\n\n// GetFloat32Slice return the []float32 value of a flag with the given name\nfunc (f *FlagSet) GetFloat32Slice(name string) ([]float32, error) {\n\tval, err := f.getFlagType(name, \"float32Slice\", float32SliceConv)\n\tif err != nil {\n\t\treturn []float32{}, err\n\t}\n\treturn val.([]float32), nil\n}\n\n// Float32SliceVar defines a float32Slice flag with specified name, default value, and usage string.\n// The argument p points to a []float32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float32SliceVar(p *[]float32, name string, value []float32, usage string) {\n\tf.VarP(newFloat32SliceValue(value, p), name, \"\", usage)\n}\n\n// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) {\n\tf.VarP(newFloat32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float32SliceVar defines a float32[] flag with specified name, default value, and usage string.\n// The argument p points to a float32[] variable in which to store the value of the flag.\nfunc Float32SliceVar(p *[]float32, name string, value []float32, usage string) {\n\tCommandLine.VarP(newFloat32SliceValue(value, p), name, \"\", usage)\n}\n\n// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) {\n\tCommandLine.VarP(newFloat32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float32Slice defines a []float32 flag with specified name, default value, and usage string.\n// The return value is the address of a []float32 variable that stores the value of the flag.\nfunc (f *FlagSet) Float32Slice(name string, value []float32, usage string) *[]float32 {\n\tp := []float32{}\n\tf.Float32SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 {\n\tp := []float32{}\n\tf.Float32SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Float32Slice defines a []float32 flag with specified name, default value, and usage string.\n// The return value is the address of a []float32 variable that stores the value of the flag.\nfunc Float32Slice(name string, value []float32, usage string) *[]float32 {\n\treturn CommandLine.Float32SliceP(name, \"\", value, usage)\n}\n\n// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 {\n\treturn CommandLine.Float32SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- float64 Value\ntype float64Value float64\n\nfunc newFloat64Value(val float64, p *float64) *float64Value {\n\t*p = val\n\treturn (*float64Value)(p)\n}\n\nfunc (f *float64Value) Set(s string) error {\n\tv, err := strconv.ParseFloat(s, 64)\n\t*f = float64Value(v)\n\treturn err\n}\n\nfunc (f *float64Value) Type() string {\n\treturn \"float64\"\n}\n\nfunc (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }\n\nfunc float64Conv(sval string) (interface{}, error) {\n\treturn strconv.ParseFloat(sval, 64)\n}\n\n// GetFloat64 return the float64 value of a flag with the given name\nfunc (f *FlagSet) GetFloat64(name string) (float64, error) {\n\tval, err := f.getFlagType(name, \"float64\", float64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(float64), nil\n}\n\n// Float64Var defines a float64 flag with specified name, default value, and usage string.\n// The argument p points to a float64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {\n\tf.VarP(newFloat64Value(value, p), name, \"\", usage)\n}\n\n// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {\n\tf.VarP(newFloat64Value(value, p), name, shorthand, usage)\n}\n\n// Float64Var defines a float64 flag with specified name, default value, and usage string.\n// The argument p points to a float64 variable in which to store the value of the flag.\nfunc Float64Var(p *float64, name string, value float64, usage string) {\n\tCommandLine.VarP(newFloat64Value(value, p), name, \"\", usage)\n}\n\n// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64VarP(p *float64, name, shorthand string, value float64, usage string) {\n\tCommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage)\n}\n\n// Float64 defines a float64 flag with specified name, default value, and usage string.\n// The return value is the address of a float64 variable that stores the value of the flag.\nfunc (f *FlagSet) Float64(name string, value float64, usage string) *float64 {\n\tp := new(float64)\n\tf.Float64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {\n\tp := new(float64)\n\tf.Float64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Float64 defines a float64 flag with specified name, default value, and usage string.\n// The return value is the address of a float64 variable that stores the value of the flag.\nfunc Float64(name string, value float64, usage string) *float64 {\n\treturn CommandLine.Float64P(name, \"\", value, usage)\n}\n\n// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64P(name, shorthand string, value float64, usage string) *float64 {\n\treturn CommandLine.Float64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float64Slice Value\ntype float64SliceValue struct {\n\tvalue   *[]float64\n\tchanged bool\n}\n\nfunc newFloat64SliceValue(val []float64, p *[]float64) *float64SliceValue {\n\tisv := new(float64SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *float64SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]float64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseFloat(d, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *float64SliceValue) Type() string {\n\treturn \"float64Slice\"\n}\n\nfunc (s *float64SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%f\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *float64SliceValue) fromString(val string) (float64, error) {\n\treturn strconv.ParseFloat(val, 64)\n}\n\nfunc (s *float64SliceValue) toString(val float64) string {\n\treturn fmt.Sprintf(\"%f\", val)\n}\n\nfunc (s *float64SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *float64SliceValue) Replace(val []string) error {\n\tout := make([]float64, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *float64SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc float64SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []float64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]float64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseFloat(d, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetFloat64Slice return the []float64 value of a flag with the given name\nfunc (f *FlagSet) GetFloat64Slice(name string) ([]float64, error) {\n\tval, err := f.getFlagType(name, \"float64Slice\", float64SliceConv)\n\tif err != nil {\n\t\treturn []float64{}, err\n\t}\n\treturn val.([]float64), nil\n}\n\n// Float64SliceVar defines a float64Slice flag with specified name, default value, and usage string.\n// The argument p points to a []float64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float64SliceVar(p *[]float64, name string, value []float64, usage string) {\n\tf.VarP(newFloat64SliceValue(value, p), name, \"\", usage)\n}\n\n// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) {\n\tf.VarP(newFloat64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float64SliceVar defines a float64[] flag with specified name, default value, and usage string.\n// The argument p points to a float64[] variable in which to store the value of the flag.\nfunc Float64SliceVar(p *[]float64, name string, value []float64, usage string) {\n\tCommandLine.VarP(newFloat64SliceValue(value, p), name, \"\", usage)\n}\n\n// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) {\n\tCommandLine.VarP(newFloat64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float64Slice defines a []float64 flag with specified name, default value, and usage string.\n// The return value is the address of a []float64 variable that stores the value of the flag.\nfunc (f *FlagSet) Float64Slice(name string, value []float64, usage string) *[]float64 {\n\tp := []float64{}\n\tf.Float64SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 {\n\tp := []float64{}\n\tf.Float64SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Float64Slice defines a []float64 flag with specified name, default value, and usage string.\n// The return value is the address of a []float64 variable that stores the value of the flag.\nfunc Float64Slice(name string, value []float64, usage string) *[]float64 {\n\treturn CommandLine.Float64SliceP(name, \"\", value, usage)\n}\n\n// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 {\n\treturn CommandLine.Float64SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/func.go",
    "content": "package pflag\n\n// -- func Value\ntype funcValue func(string) error\n\nfunc (f funcValue) Set(s string) error { return f(s) }\n\nfunc (f funcValue) Type() string { return \"func\" }\n\nfunc (f funcValue) String() string { return \"\" } // same behavior as stdlib 'flag' package\n\n// Func defines a func flag with specified name, callback function and usage string.\n//\n// The callback function will be called every time \"--{name}={value}\" (or equivalent) is\n// parsed on the command line, with \"{value}\" as an argument.\nfunc (f *FlagSet) Func(name string, usage string, fn func(string) error) {\n\tf.FuncP(name, \"\", usage, fn)\n}\n\n// FuncP is like Func, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) FuncP(name string, shorthand string, usage string, fn func(string) error) {\n\tvar val Value = funcValue(fn)\n\tf.VarP(val, name, shorthand, usage)\n}\n\n// Func defines a func flag with specified name, callback function and usage string.\n//\n// The callback function will be called every time \"--{name}={value}\" (or equivalent) is\n// parsed on the command line, with \"{value}\" as an argument.\nfunc Func(name string, usage string, fn func(string) error) {\n\tCommandLine.FuncP(name, \"\", usage, fn)\n}\n\n// FuncP is like Func, but accepts a shorthand letter that can be used after a single dash.\nfunc FuncP(name, shorthand string, usage string, fn func(string) error) {\n\tCommandLine.FuncP(name, shorthand, usage, fn)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/golangflag.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\npackage pflag\n\nimport (\n\tgoflag \"flag\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\n// go test flags prefixes\nfunc isGotestFlag(flag string) bool {\n\treturn strings.HasPrefix(flag, \"-test.\")\n}\n\nfunc isGotestShorthandFlag(flag string) bool {\n\treturn strings.HasPrefix(flag, \"test.\")\n}\n\n// flagValueWrapper implements pflag.Value around a flag.Value.  The main\n// difference here is the addition of the Type method that returns a string\n// name of the type.  As this is generally unknown, we approximate that with\n// reflection.\ntype flagValueWrapper struct {\n\tinner    goflag.Value\n\tflagType string\n}\n\n// We are just copying the boolFlag interface out of goflag as that is what\n// they use to decide if a flag should get \"true\" when no arg is given.\ntype goBoolFlag interface {\n\tgoflag.Value\n\tIsBoolFlag() bool\n}\n\nfunc wrapFlagValue(v goflag.Value) Value {\n\t// If the flag.Value happens to also be a pflag.Value, just use it directly.\n\tif pv, ok := v.(Value); ok {\n\t\treturn pv\n\t}\n\n\tpv := &flagValueWrapper{\n\t\tinner: v,\n\t}\n\n\tt := reflect.TypeOf(v)\n\tif t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\n\tpv.flagType = strings.TrimSuffix(t.Name(), \"Value\")\n\treturn pv\n}\n\nfunc (v *flagValueWrapper) String() string {\n\treturn v.inner.String()\n}\n\nfunc (v *flagValueWrapper) Set(s string) error {\n\treturn v.inner.Set(s)\n}\n\nfunc (v *flagValueWrapper) Type() string {\n\treturn v.flagType\n}\n\n// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag\n// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei\n// with both `-v` and `--v` in flags. If the golang flag was more than a single\n// character (ex: `verbose`) it will only be accessible via `--verbose`\nfunc PFlagFromGoFlag(goflag *goflag.Flag) *Flag {\n\t// Remember the default value as a string; it won't change.\n\tflag := &Flag{\n\t\tName:  goflag.Name,\n\t\tUsage: goflag.Usage,\n\t\tValue: wrapFlagValue(goflag.Value),\n\t\t// Looks like golang flags don't set DefValue correctly  :-(\n\t\t//DefValue: goflag.DefValue,\n\t\tDefValue: goflag.Value.String(),\n\t}\n\t// Ex: if the golang flag was -v, allow both -v and --v to work\n\tif len(flag.Name) == 1 {\n\t\tflag.Shorthand = flag.Name\n\t}\n\tif fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() {\n\t\tflag.NoOptDefVal = \"true\"\n\t}\n\treturn flag\n}\n\n// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet\nfunc (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {\n\tif f.Lookup(goflag.Name) != nil {\n\t\treturn\n\t}\n\tnewflag := PFlagFromGoFlag(goflag)\n\tf.AddFlag(newflag)\n}\n\n// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet\nfunc (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {\n\tif newSet == nil {\n\t\treturn\n\t}\n\tnewSet.VisitAll(func(goflag *goflag.Flag) {\n\t\tf.AddGoFlag(goflag)\n\t})\n\tif f.addedGoFlagSets == nil {\n\t\tf.addedGoFlagSets = make([]*goflag.FlagSet, 0)\n\t}\n\tf.addedGoFlagSets = append(f.addedGoFlagSets, newSet)\n}\n\n// CopyToGoFlagSet will add all current flags to the given Go flag set.\n// Deprecation remarks get copied into the usage description.\n// Whenever possible, a flag gets added for which Go flags shows\n// a proper type in the help message.\nfunc (f *FlagSet) CopyToGoFlagSet(newSet *goflag.FlagSet) {\n\tf.VisitAll(func(flag *Flag) {\n\t\tusage := flag.Usage\n\t\tif flag.Deprecated != \"\" {\n\t\t\tusage += \" (DEPRECATED: \" + flag.Deprecated + \")\"\n\t\t}\n\n\t\tswitch value := flag.Value.(type) {\n\t\tcase *stringValue:\n\t\t\tnewSet.StringVar((*string)(value), flag.Name, flag.DefValue, usage)\n\t\tcase *intValue:\n\t\t\tnewSet.IntVar((*int)(value), flag.Name, *(*int)(value), usage)\n\t\tcase *int64Value:\n\t\t\tnewSet.Int64Var((*int64)(value), flag.Name, *(*int64)(value), usage)\n\t\tcase *uintValue:\n\t\t\tnewSet.UintVar((*uint)(value), flag.Name, *(*uint)(value), usage)\n\t\tcase *uint64Value:\n\t\t\tnewSet.Uint64Var((*uint64)(value), flag.Name, *(*uint64)(value), usage)\n\t\tcase *durationValue:\n\t\t\tnewSet.DurationVar((*time.Duration)(value), flag.Name, *(*time.Duration)(value), usage)\n\t\tcase *float64Value:\n\t\t\tnewSet.Float64Var((*float64)(value), flag.Name, *(*float64)(value), usage)\n\t\tdefault:\n\t\t\tnewSet.Var(flag.Value, flag.Name, usage)\n\t\t}\n\t})\n}\n\n// ParseSkippedFlags explicitly Parses go test flags (i.e. the one starting with '-test.') with goflag.Parse(),\n// since by default those are skipped by pflag.Parse().\n// Typical usage example: `ParseGoTestFlags(os.Args[1:], goflag.CommandLine)`\nfunc ParseSkippedFlags(osArgs []string, goFlagSet *goflag.FlagSet) error {\n\tvar skippedFlags []string\n\tfor _, f := range osArgs {\n\t\tif isGotestFlag(f) {\n\t\t\tskippedFlags = append(skippedFlags, f)\n\t\t}\n\t}\n\treturn goFlagSet.Parse(skippedFlags)\n}\n\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int Value\ntype intValue int\n\nfunc newIntValue(val int, p *int) *intValue {\n\t*p = val\n\treturn (*intValue)(p)\n}\n\nfunc (i *intValue) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 64)\n\t*i = intValue(v)\n\treturn err\n}\n\nfunc (i *intValue) Type() string {\n\treturn \"int\"\n}\n\nfunc (i *intValue) String() string { return strconv.Itoa(int(*i)) }\n\nfunc intConv(sval string) (interface{}, error) {\n\treturn strconv.Atoi(sval)\n}\n\n// GetInt return the int value of a flag with the given name\nfunc (f *FlagSet) GetInt(name string) (int, error) {\n\tval, err := f.getFlagType(name, \"int\", intConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int), nil\n}\n\n// IntVar defines an int flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\nfunc (f *FlagSet) IntVar(p *int, name string, value int, usage string) {\n\tf.VarP(newIntValue(value, p), name, \"\", usage)\n}\n\n// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) {\n\tf.VarP(newIntValue(value, p), name, shorthand, usage)\n}\n\n// IntVar defines an int flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\nfunc IntVar(p *int, name string, value int, usage string) {\n\tCommandLine.VarP(newIntValue(value, p), name, \"\", usage)\n}\n\n// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IntVarP(p *int, name, shorthand string, value int, usage string) {\n\tCommandLine.VarP(newIntValue(value, p), name, shorthand, usage)\n}\n\n// Int defines an int flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\nfunc (f *FlagSet) Int(name string, value int, usage string) *int {\n\tp := new(int)\n\tf.IntVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int {\n\tp := new(int)\n\tf.IntVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int defines an int flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\nfunc Int(name string, value int, usage string) *int {\n\treturn CommandLine.IntP(name, \"\", value, usage)\n}\n\n// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.\nfunc IntP(name, shorthand string, value int, usage string) *int {\n\treturn CommandLine.IntP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int16.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int16 Value\ntype int16Value int16\n\nfunc newInt16Value(val int16, p *int16) *int16Value {\n\t*p = val\n\treturn (*int16Value)(p)\n}\n\nfunc (i *int16Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 16)\n\t*i = int16Value(v)\n\treturn err\n}\n\nfunc (i *int16Value) Type() string {\n\treturn \"int16\"\n}\n\nfunc (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int16Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int16(v), nil\n}\n\n// GetInt16 returns the int16 value of a flag with the given name\nfunc (f *FlagSet) GetInt16(name string) (int16, error) {\n\tval, err := f.getFlagType(name, \"int16\", int16Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int16), nil\n}\n\n// Int16Var defines an int16 flag with specified name, default value, and usage string.\n// The argument p points to an int16 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) {\n\tf.VarP(newInt16Value(value, p), name, \"\", usage)\n}\n\n// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) {\n\tf.VarP(newInt16Value(value, p), name, shorthand, usage)\n}\n\n// Int16Var defines an int16 flag with specified name, default value, and usage string.\n// The argument p points to an int16 variable in which to store the value of the flag.\nfunc Int16Var(p *int16, name string, value int16, usage string) {\n\tCommandLine.VarP(newInt16Value(value, p), name, \"\", usage)\n}\n\n// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int16VarP(p *int16, name, shorthand string, value int16, usage string) {\n\tCommandLine.VarP(newInt16Value(value, p), name, shorthand, usage)\n}\n\n// Int16 defines an int16 flag with specified name, default value, and usage string.\n// The return value is the address of an int16 variable that stores the value of the flag.\nfunc (f *FlagSet) Int16(name string, value int16, usage string) *int16 {\n\tp := new(int16)\n\tf.Int16VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 {\n\tp := new(int16)\n\tf.Int16VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int16 defines an int16 flag with specified name, default value, and usage string.\n// The return value is the address of an int16 variable that stores the value of the flag.\nfunc Int16(name string, value int16, usage string) *int16 {\n\treturn CommandLine.Int16P(name, \"\", value, usage)\n}\n\n// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.\nfunc Int16P(name, shorthand string, value int16, usage string) *int16 {\n\treturn CommandLine.Int16P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int32 Value\ntype int32Value int32\n\nfunc newInt32Value(val int32, p *int32) *int32Value {\n\t*p = val\n\treturn (*int32Value)(p)\n}\n\nfunc (i *int32Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 32)\n\t*i = int32Value(v)\n\treturn err\n}\n\nfunc (i *int32Value) Type() string {\n\treturn \"int32\"\n}\n\nfunc (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int32(v), nil\n}\n\n// GetInt32 return the int32 value of a flag with the given name\nfunc (f *FlagSet) GetInt32(name string) (int32, error) {\n\tval, err := f.getFlagType(name, \"int32\", int32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int32), nil\n}\n\n// Int32Var defines an int32 flag with specified name, default value, and usage string.\n// The argument p points to an int32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) {\n\tf.VarP(newInt32Value(value, p), name, \"\", usage)\n}\n\n// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) {\n\tf.VarP(newInt32Value(value, p), name, shorthand, usage)\n}\n\n// Int32Var defines an int32 flag with specified name, default value, and usage string.\n// The argument p points to an int32 variable in which to store the value of the flag.\nfunc Int32Var(p *int32, name string, value int32, usage string) {\n\tCommandLine.VarP(newInt32Value(value, p), name, \"\", usage)\n}\n\n// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32VarP(p *int32, name, shorthand string, value int32, usage string) {\n\tCommandLine.VarP(newInt32Value(value, p), name, shorthand, usage)\n}\n\n// Int32 defines an int32 flag with specified name, default value, and usage string.\n// The return value is the address of an int32 variable that stores the value of the flag.\nfunc (f *FlagSet) Int32(name string, value int32, usage string) *int32 {\n\tp := new(int32)\n\tf.Int32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 {\n\tp := new(int32)\n\tf.Int32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int32 defines an int32 flag with specified name, default value, and usage string.\n// The return value is the address of an int32 variable that stores the value of the flag.\nfunc Int32(name string, value int32, usage string) *int32 {\n\treturn CommandLine.Int32P(name, \"\", value, usage)\n}\n\n// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32P(name, shorthand string, value int32, usage string) *int32 {\n\treturn CommandLine.Int32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int32Slice Value\ntype int32SliceValue struct {\n\tvalue   *[]int32\n\tchanged bool\n}\n\nfunc newInt32SliceValue(val []int32, p *[]int32) *int32SliceValue {\n\tisv := new(int32SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *int32SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 int64\n\t\ttemp64, err = strconv.ParseInt(d, 0, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = int32(temp64)\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *int32SliceValue) Type() string {\n\treturn \"int32Slice\"\n}\n\nfunc (s *int32SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *int32SliceValue) fromString(val string) (int32, error) {\n\tt64, err := strconv.ParseInt(val, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int32(t64), nil\n}\n\nfunc (s *int32SliceValue) toString(val int32) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *int32SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *int32SliceValue) Replace(val []string) error {\n\tout := make([]int32, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *int32SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc int32SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int32{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 int64\n\t\ttemp64, err = strconv.ParseInt(d, 0, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = int32(temp64)\n\n\t}\n\treturn out, nil\n}\n\n// GetInt32Slice return the []int32 value of a flag with the given name\nfunc (f *FlagSet) GetInt32Slice(name string) ([]int32, error) {\n\tval, err := f.getFlagType(name, \"int32Slice\", int32SliceConv)\n\tif err != nil {\n\t\treturn []int32{}, err\n\t}\n\treturn val.([]int32), nil\n}\n\n// Int32SliceVar defines a int32Slice flag with specified name, default value, and usage string.\n// The argument p points to a []int32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int32SliceVar(p *[]int32, name string, value []int32, usage string) {\n\tf.VarP(newInt32SliceValue(value, p), name, \"\", usage)\n}\n\n// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) {\n\tf.VarP(newInt32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int32SliceVar defines a int32[] flag with specified name, default value, and usage string.\n// The argument p points to a int32[] variable in which to store the value of the flag.\nfunc Int32SliceVar(p *[]int32, name string, value []int32, usage string) {\n\tCommandLine.VarP(newInt32SliceValue(value, p), name, \"\", usage)\n}\n\n// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) {\n\tCommandLine.VarP(newInt32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int32Slice defines a []int32 flag with specified name, default value, and usage string.\n// The return value is the address of a []int32 variable that stores the value of the flag.\nfunc (f *FlagSet) Int32Slice(name string, value []int32, usage string) *[]int32 {\n\tp := []int32{}\n\tf.Int32SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 {\n\tp := []int32{}\n\tf.Int32SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Int32Slice defines a []int32 flag with specified name, default value, and usage string.\n// The return value is the address of a []int32 variable that stores the value of the flag.\nfunc Int32Slice(name string, value []int32, usage string) *[]int32 {\n\treturn CommandLine.Int32SliceP(name, \"\", value, usage)\n}\n\n// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 {\n\treturn CommandLine.Int32SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int64 Value\ntype int64Value int64\n\nfunc newInt64Value(val int64, p *int64) *int64Value {\n\t*p = val\n\treturn (*int64Value)(p)\n}\n\nfunc (i *int64Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 64)\n\t*i = int64Value(v)\n\treturn err\n}\n\nfunc (i *int64Value) Type() string {\n\treturn \"int64\"\n}\n\nfunc (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int64Conv(sval string) (interface{}, error) {\n\treturn strconv.ParseInt(sval, 0, 64)\n}\n\n// GetInt64 return the int64 value of a flag with the given name\nfunc (f *FlagSet) GetInt64(name string) (int64, error) {\n\tval, err := f.getFlagType(name, \"int64\", int64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int64), nil\n}\n\n// Int64Var defines an int64 flag with specified name, default value, and usage string.\n// The argument p points to an int64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) {\n\tf.VarP(newInt64Value(value, p), name, \"\", usage)\n}\n\n// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) {\n\tf.VarP(newInt64Value(value, p), name, shorthand, usage)\n}\n\n// Int64Var defines an int64 flag with specified name, default value, and usage string.\n// The argument p points to an int64 variable in which to store the value of the flag.\nfunc Int64Var(p *int64, name string, value int64, usage string) {\n\tCommandLine.VarP(newInt64Value(value, p), name, \"\", usage)\n}\n\n// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64VarP(p *int64, name, shorthand string, value int64, usage string) {\n\tCommandLine.VarP(newInt64Value(value, p), name, shorthand, usage)\n}\n\n// Int64 defines an int64 flag with specified name, default value, and usage string.\n// The return value is the address of an int64 variable that stores the value of the flag.\nfunc (f *FlagSet) Int64(name string, value int64, usage string) *int64 {\n\tp := new(int64)\n\tf.Int64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 {\n\tp := new(int64)\n\tf.Int64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int64 defines an int64 flag with specified name, default value, and usage string.\n// The return value is the address of an int64 variable that stores the value of the flag.\nfunc Int64(name string, value int64, usage string) *int64 {\n\treturn CommandLine.Int64P(name, \"\", value, usage)\n}\n\n// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64P(name, shorthand string, value int64, usage string) *int64 {\n\treturn CommandLine.Int64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int64Slice Value\ntype int64SliceValue struct {\n\tvalue   *[]int64\n\tchanged bool\n}\n\nfunc newInt64SliceValue(val []int64, p *[]int64) *int64SliceValue {\n\tisv := new(int64SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *int64SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseInt(d, 0, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *int64SliceValue) Type() string {\n\treturn \"int64Slice\"\n}\n\nfunc (s *int64SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *int64SliceValue) fromString(val string) (int64, error) {\n\treturn strconv.ParseInt(val, 0, 64)\n}\n\nfunc (s *int64SliceValue) toString(val int64) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *int64SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *int64SliceValue) Replace(val []string) error {\n\tout := make([]int64, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *int64SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc int64SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseInt(d, 0, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetInt64Slice return the []int64 value of a flag with the given name\nfunc (f *FlagSet) GetInt64Slice(name string) ([]int64, error) {\n\tval, err := f.getFlagType(name, \"int64Slice\", int64SliceConv)\n\tif err != nil {\n\t\treturn []int64{}, err\n\t}\n\treturn val.([]int64), nil\n}\n\n// Int64SliceVar defines a int64Slice flag with specified name, default value, and usage string.\n// The argument p points to a []int64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int64SliceVar(p *[]int64, name string, value []int64, usage string) {\n\tf.VarP(newInt64SliceValue(value, p), name, \"\", usage)\n}\n\n// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) {\n\tf.VarP(newInt64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int64SliceVar defines a int64[] flag with specified name, default value, and usage string.\n// The argument p points to a int64[] variable in which to store the value of the flag.\nfunc Int64SliceVar(p *[]int64, name string, value []int64, usage string) {\n\tCommandLine.VarP(newInt64SliceValue(value, p), name, \"\", usage)\n}\n\n// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) {\n\tCommandLine.VarP(newInt64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int64Slice defines a []int64 flag with specified name, default value, and usage string.\n// The return value is the address of a []int64 variable that stores the value of the flag.\nfunc (f *FlagSet) Int64Slice(name string, value []int64, usage string) *[]int64 {\n\tp := []int64{}\n\tf.Int64SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 {\n\tp := []int64{}\n\tf.Int64SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Int64Slice defines a []int64 flag with specified name, default value, and usage string.\n// The return value is the address of a []int64 variable that stores the value of the flag.\nfunc Int64Slice(name string, value []int64, usage string) *[]int64 {\n\treturn CommandLine.Int64SliceP(name, \"\", value, usage)\n}\n\n// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 {\n\treturn CommandLine.Int64SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int8.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int8 Value\ntype int8Value int8\n\nfunc newInt8Value(val int8, p *int8) *int8Value {\n\t*p = val\n\treturn (*int8Value)(p)\n}\n\nfunc (i *int8Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 8)\n\t*i = int8Value(v)\n\treturn err\n}\n\nfunc (i *int8Value) Type() string {\n\treturn \"int8\"\n}\n\nfunc (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int8Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 8)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int8(v), nil\n}\n\n// GetInt8 return the int8 value of a flag with the given name\nfunc (f *FlagSet) GetInt8(name string) (int8, error) {\n\tval, err := f.getFlagType(name, \"int8\", int8Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int8), nil\n}\n\n// Int8Var defines an int8 flag with specified name, default value, and usage string.\n// The argument p points to an int8 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {\n\tf.VarP(newInt8Value(value, p), name, \"\", usage)\n}\n\n// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) {\n\tf.VarP(newInt8Value(value, p), name, shorthand, usage)\n}\n\n// Int8Var defines an int8 flag with specified name, default value, and usage string.\n// The argument p points to an int8 variable in which to store the value of the flag.\nfunc Int8Var(p *int8, name string, value int8, usage string) {\n\tCommandLine.VarP(newInt8Value(value, p), name, \"\", usage)\n}\n\n// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int8VarP(p *int8, name, shorthand string, value int8, usage string) {\n\tCommandLine.VarP(newInt8Value(value, p), name, shorthand, usage)\n}\n\n// Int8 defines an int8 flag with specified name, default value, and usage string.\n// The return value is the address of an int8 variable that stores the value of the flag.\nfunc (f *FlagSet) Int8(name string, value int8, usage string) *int8 {\n\tp := new(int8)\n\tf.Int8VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 {\n\tp := new(int8)\n\tf.Int8VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int8 defines an int8 flag with specified name, default value, and usage string.\n// The return value is the address of an int8 variable that stores the value of the flag.\nfunc Int8(name string, value int8, usage string) *int8 {\n\treturn CommandLine.Int8P(name, \"\", value, usage)\n}\n\n// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.\nfunc Int8P(name, shorthand string, value int8, usage string) *int8 {\n\treturn CommandLine.Int8P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- intSlice Value\ntype intSliceValue struct {\n\tvalue   *[]int\n\tchanged bool\n}\n\nfunc newIntSliceValue(val []int, p *[]int) *intSliceValue {\n\tisv := new(intSliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *intSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *intSliceValue) Type() string {\n\treturn \"intSlice\"\n}\n\nfunc (s *intSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *intSliceValue) Append(val string) error {\n\ti, err := strconv.Atoi(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *intSliceValue) Replace(val []string) error {\n\tout := make([]int, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *intSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = strconv.Itoa(d)\n\t}\n\treturn out\n}\n\nfunc intSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetIntSlice return the []int value of a flag with the given name\nfunc (f *FlagSet) GetIntSlice(name string) ([]int, error) {\n\tval, err := f.getFlagType(name, \"intSlice\", intSliceConv)\n\tif err != nil {\n\t\treturn []int{}, err\n\t}\n\treturn val.([]int), nil\n}\n\n// IntSliceVar defines a intSlice flag with specified name, default value, and usage string.\n// The argument p points to a []int variable in which to store the value of the flag.\nfunc (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) {\n\tf.VarP(newIntSliceValue(value, p), name, \"\", usage)\n}\n\n// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {\n\tf.VarP(newIntSliceValue(value, p), name, shorthand, usage)\n}\n\n// IntSliceVar defines a int[] flag with specified name, default value, and usage string.\n// The argument p points to a int[] variable in which to store the value of the flag.\nfunc IntSliceVar(p *[]int, name string, value []int, usage string) {\n\tCommandLine.VarP(newIntSliceValue(value, p), name, \"\", usage)\n}\n\n// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {\n\tCommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage)\n}\n\n// IntSlice defines a []int flag with specified name, default value, and usage string.\n// The return value is the address of a []int variable that stores the value of the flag.\nfunc (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {\n\tp := []int{}\n\tf.IntSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int {\n\tp := []int{}\n\tf.IntSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IntSlice defines a []int flag with specified name, default value, and usage string.\n// The return value is the address of a []int variable that stores the value of the flag.\nfunc IntSlice(name string, value []int, usage string) *[]int {\n\treturn CommandLine.IntSliceP(name, \"\", value, usage)\n}\n\n// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IntSliceP(name, shorthand string, value []int, usage string) *[]int {\n\treturn CommandLine.IntSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- net.IP value\ntype ipValue net.IP\n\nfunc newIPValue(val net.IP, p *net.IP) *ipValue {\n\t*p = val\n\treturn (*ipValue)(p)\n}\n\nfunc (i *ipValue) String() string { return net.IP(*i).String() }\nfunc (i *ipValue) Set(s string) error {\n\tif s == \"\" {\n\t\treturn nil\n\t}\n\tip := net.ParseIP(strings.TrimSpace(s))\n\tif ip == nil {\n\t\treturn fmt.Errorf(\"failed to parse IP: %q\", s)\n\t}\n\t*i = ipValue(ip)\n\treturn nil\n}\n\nfunc (i *ipValue) Type() string {\n\treturn \"ip\"\n}\n\nfunc ipConv(sval string) (interface{}, error) {\n\tip := net.ParseIP(sval)\n\tif ip != nil {\n\t\treturn ip, nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid string being converted to IP address: %s\", sval)\n}\n\n// GetIP return the net.IP value of a flag with the given name\nfunc (f *FlagSet) GetIP(name string) (net.IP, error) {\n\tval, err := f.getFlagType(name, \"ip\", ipConv)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn val.(net.IP), nil\n}\n\n// IPVar defines an net.IP flag with specified name, default value, and usage string.\n// The argument p points to an net.IP variable in which to store the value of the flag.\nfunc (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) {\n\tf.VarP(newIPValue(value, p), name, \"\", usage)\n}\n\n// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {\n\tf.VarP(newIPValue(value, p), name, shorthand, usage)\n}\n\n// IPVar defines an net.IP flag with specified name, default value, and usage string.\n// The argument p points to an net.IP variable in which to store the value of the flag.\nfunc IPVar(p *net.IP, name string, value net.IP, usage string) {\n\tCommandLine.VarP(newIPValue(value, p), name, \"\", usage)\n}\n\n// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {\n\tCommandLine.VarP(newIPValue(value, p), name, shorthand, usage)\n}\n\n// IP defines an net.IP flag with specified name, default value, and usage string.\n// The return value is the address of an net.IP variable that stores the value of the flag.\nfunc (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {\n\tp := new(net.IP)\n\tf.IPVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP {\n\tp := new(net.IP)\n\tf.IPVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IP defines an net.IP flag with specified name, default value, and usage string.\n// The return value is the address of an net.IP variable that stores the value of the flag.\nfunc IP(name string, value net.IP, usage string) *net.IP {\n\treturn CommandLine.IPP(name, \"\", value, usage)\n}\n\n// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc IPP(name, shorthand string, value net.IP, usage string) *net.IP {\n\treturn CommandLine.IPP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipSlice Value\ntype ipSliceValue struct {\n\tvalue   *[]net.IP\n\tchanged bool\n}\n\nfunc newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {\n\tipsv := new(ipSliceValue)\n\tipsv.value = p\n\t*ipsv.value = val\n\treturn ipsv\n}\n\n// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag.\n// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended.\nfunc (s *ipSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tipStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse ip values into slice\n\tout := make([]net.IP, 0, len(ipStrSlice))\n\tfor _, ipStr := range ipStrSlice {\n\t\tip := net.ParseIP(strings.TrimSpace(ipStr))\n\t\tif ip == nil {\n\t\t\treturn fmt.Errorf(\"invalid string being converted to IP address: %s\", ipStr)\n\t\t}\n\t\tout = append(out, ip)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *ipSliceValue) Type() string {\n\treturn \"ipSlice\"\n}\n\n// String defines a \"native\" format for this net.IP slice flag value.\nfunc (s *ipSliceValue) String() string {\n\n\tipStrSlice := make([]string, len(*s.value))\n\tfor i, ip := range *s.value {\n\t\tipStrSlice[i] = ip.String()\n\t}\n\n\tout, _ := writeAsCSV(ipStrSlice)\n\n\treturn \"[\" + out + \"]\"\n}\n\nfunc (s *ipSliceValue) fromString(val string) (net.IP, error) {\n\treturn net.ParseIP(strings.TrimSpace(val)), nil\n}\n\nfunc (s *ipSliceValue) toString(val net.IP) string {\n\treturn val.String()\n}\n\nfunc (s *ipSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *ipSliceValue) Replace(val []string) error {\n\tout := make([]net.IP, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *ipSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc ipSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []net.IP{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]net.IP, len(ss))\n\tfor i, sval := range ss {\n\t\tip := net.ParseIP(strings.TrimSpace(sval))\n\t\tif ip == nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid string being converted to IP address: %s\", sval)\n\t\t}\n\t\tout[i] = ip\n\t}\n\treturn out, nil\n}\n\n// GetIPSlice returns the []net.IP value of a flag with the given name\nfunc (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {\n\tval, err := f.getFlagType(name, \"ipSlice\", ipSliceConv)\n\tif err != nil {\n\t\treturn []net.IP{}, err\n\t}\n\treturn val.([]net.IP), nil\n}\n\n// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string.\n// The argument p points to a []net.IP variable in which to store the value of the flag.\nfunc (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {\n\tf.VarP(newIPSliceValue(value, p), name, \"\", usage)\n}\n\n// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {\n\tf.VarP(newIPSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string.\n// The argument p points to a []net.IP variable in which to store the value of the flag.\nfunc IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {\n\tCommandLine.VarP(newIPSliceValue(value, p), name, \"\", usage)\n}\n\n// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {\n\tCommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPSlice defines a []net.IP flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of that flag.\nfunc (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP {\n\tp := []net.IP{}\n\tf.IPSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {\n\tp := []net.IP{}\n\tf.IPSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IPSlice defines a []net.IP flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of the flag.\nfunc IPSlice(name string, value []net.IP, usage string) *[]net.IP {\n\treturn CommandLine.IPSliceP(name, \"\", value, usage)\n}\n\n// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {\n\treturn CommandLine.IPSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipmask.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// -- net.IPMask value\ntype ipMaskValue net.IPMask\n\nfunc newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {\n\t*p = val\n\treturn (*ipMaskValue)(p)\n}\n\nfunc (i *ipMaskValue) String() string { return net.IPMask(*i).String() }\nfunc (i *ipMaskValue) Set(s string) error {\n\tip := ParseIPv4Mask(s)\n\tif ip == nil {\n\t\treturn fmt.Errorf(\"failed to parse IP mask: %q\", s)\n\t}\n\t*i = ipMaskValue(ip)\n\treturn nil\n}\n\nfunc (i *ipMaskValue) Type() string {\n\treturn \"ipMask\"\n}\n\n// ParseIPv4Mask written in IP form (e.g. 255.255.255.0).\n// This function should really belong to the net package.\nfunc ParseIPv4Mask(s string) net.IPMask {\n\tmask := net.ParseIP(s)\n\tif mask == nil {\n\t\tif len(s) != 8 {\n\t\t\treturn nil\n\t\t}\n\t\t// net.IPMask.String() actually outputs things like ffffff00\n\t\t// so write a horrible parser for that as well  :-(\n\t\tm := []int{}\n\t\tfor i := 0; i < 4; i++ {\n\t\t\tb := \"0x\" + s[2*i:2*i+2]\n\t\t\td, err := strconv.ParseInt(b, 0, 0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tm = append(m, int(d))\n\t\t}\n\t\ts := fmt.Sprintf(\"%d.%d.%d.%d\", m[0], m[1], m[2], m[3])\n\t\tmask = net.ParseIP(s)\n\t\tif mask == nil {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn net.IPv4Mask(mask[12], mask[13], mask[14], mask[15])\n}\n\nfunc parseIPv4Mask(sval string) (interface{}, error) {\n\tmask := ParseIPv4Mask(sval)\n\tif mask == nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse %s as net.IPMask\", sval)\n\t}\n\treturn mask, nil\n}\n\n// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name\nfunc (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {\n\tval, err := f.getFlagType(name, \"ipMask\", parseIPv4Mask)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn val.(net.IPMask), nil\n}\n\n// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.\n// The argument p points to an net.IPMask variable in which to store the value of the flag.\nfunc (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {\n\tf.VarP(newIPMaskValue(value, p), name, \"\", usage)\n}\n\n// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {\n\tf.VarP(newIPMaskValue(value, p), name, shorthand, usage)\n}\n\n// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.\n// The argument p points to an net.IPMask variable in which to store the value of the flag.\nfunc IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {\n\tCommandLine.VarP(newIPMaskValue(value, p), name, \"\", usage)\n}\n\n// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {\n\tCommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage)\n}\n\n// IPMask defines an net.IPMask flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPMask variable that stores the value of the flag.\nfunc (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask {\n\tp := new(net.IPMask)\n\tf.IPMaskVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {\n\tp := new(net.IPMask)\n\tf.IPMaskVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IPMask defines an net.IPMask flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPMask variable that stores the value of the flag.\nfunc IPMask(name string, value net.IPMask, usage string) *net.IPMask {\n\treturn CommandLine.IPMaskP(name, \"\", value, usage)\n}\n\n// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {\n\treturn CommandLine.IPMaskP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipnet.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNet adapts net.IPNet for use as a flag.\ntype ipNetValue net.IPNet\n\nfunc (ipnet ipNetValue) String() string {\n\tn := net.IPNet(ipnet)\n\treturn n.String()\n}\n\nfunc (ipnet *ipNetValue) Set(value string) error {\n\t_, n, err := net.ParseCIDR(strings.TrimSpace(value))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*ipnet = ipNetValue(*n)\n\treturn nil\n}\n\nfunc (*ipNetValue) Type() string {\n\treturn \"ipNet\"\n}\n\nfunc newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {\n\t*p = val\n\treturn (*ipNetValue)(p)\n}\n\nfunc ipNetConv(sval string) (interface{}, error) {\n\t_, n, err := net.ParseCIDR(strings.TrimSpace(sval))\n\tif err == nil {\n\t\treturn *n, nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid string being converted to IPNet: %s\", sval)\n}\n\n// GetIPNet return the net.IPNet value of a flag with the given name\nfunc (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {\n\tval, err := f.getFlagType(name, \"ipNet\", ipNetConv)\n\tif err != nil {\n\t\treturn net.IPNet{}, err\n\t}\n\treturn val.(net.IPNet), nil\n}\n\n// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to an net.IPNet variable in which to store the value of the flag.\nfunc (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {\n\tf.VarP(newIPNetValue(value, p), name, \"\", usage)\n}\n\n// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {\n\tf.VarP(newIPNetValue(value, p), name, shorthand, usage)\n}\n\n// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to an net.IPNet variable in which to store the value of the flag.\nfunc IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetValue(value, p), name, \"\", usage)\n}\n\n// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage)\n}\n\n// IPNet defines an net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPNet variable that stores the value of the flag.\nfunc (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet {\n\tp := new(net.IPNet)\n\tf.IPNetVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {\n\tp := new(net.IPNet)\n\tf.IPNetVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IPNet defines an net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPNet variable that stores the value of the flag.\nfunc IPNet(name string, value net.IPNet, usage string) *net.IPNet {\n\treturn CommandLine.IPNetP(name, \"\", value, usage)\n}\n\n// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {\n\treturn CommandLine.IPNetP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipnet_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipNetSlice Value\ntype ipNetSliceValue struct {\n\tvalue   *[]net.IPNet\n\tchanged bool\n}\n\nfunc newIPNetSliceValue(val []net.IPNet, p *[]net.IPNet) *ipNetSliceValue {\n\tipnsv := new(ipNetSliceValue)\n\tipnsv.value = p\n\t*ipnsv.value = val\n\treturn ipnsv\n}\n\n// Set converts, and assigns, the comma-separated IPNet argument string representation as the []net.IPNet value of this flag.\n// If Set is called on a flag that already has a []net.IPNet assigned, the newly converted values will be appended.\nfunc (s *ipNetSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tipNetStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse ip values into slice\n\tout := make([]net.IPNet, 0, len(ipNetStrSlice))\n\tfor _, ipNetStr := range ipNetStrSlice {\n\t\t_, n, err := net.ParseCIDR(strings.TrimSpace(ipNetStr))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid string being converted to CIDR: %s\", ipNetStr)\n\t\t}\n\t\tout = append(out, *n)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *ipNetSliceValue) Type() string {\n\treturn \"ipNetSlice\"\n}\n\n// String defines a \"native\" format for this net.IPNet slice flag value.\nfunc (s *ipNetSliceValue) String() string {\n\n\tipNetStrSlice := make([]string, len(*s.value))\n\tfor i, n := range *s.value {\n\t\tipNetStrSlice[i] = n.String()\n\t}\n\n\tout, _ := writeAsCSV(ipNetStrSlice)\n\treturn \"[\" + out + \"]\"\n}\n\nfunc ipNetSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []net.IPNet{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]net.IPNet, len(ss))\n\tfor i, sval := range ss {\n\t\t_, n, err := net.ParseCIDR(strings.TrimSpace(sval))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid string being converted to CIDR: %s\", sval)\n\t\t}\n\t\tout[i] = *n\n\t}\n\treturn out, nil\n}\n\n// GetIPNetSlice returns the []net.IPNet value of a flag with the given name\nfunc (f *FlagSet) GetIPNetSlice(name string) ([]net.IPNet, error) {\n\tval, err := f.getFlagType(name, \"ipNetSlice\", ipNetSliceConv)\n\tif err != nil {\n\t\treturn []net.IPNet{}, err\n\t}\n\treturn val.([]net.IPNet), nil\n}\n\n// IPNetSliceVar defines a ipNetSlice flag with specified name, default value, and usage string.\n// The argument p points to a []net.IPNet variable in which to store the value of the flag.\nfunc (f *FlagSet) IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) {\n\tf.VarP(newIPNetSliceValue(value, p), name, \"\", usage)\n}\n\n// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) {\n\tf.VarP(newIPNetSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPNetSliceVar defines a []net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to a []net.IPNet variable in which to store the value of the flag.\nfunc IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetSliceValue(value, p), name, \"\", usage)\n}\n\n// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IPNet variable that stores the value of that flag.\nfunc (f *FlagSet) IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet {\n\tp := []net.IPNet{}\n\tf.IPNetSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet {\n\tp := []net.IPNet{}\n\tf.IPNetSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of the flag.\nfunc IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet {\n\treturn CommandLine.IPNetSliceP(name, \"\", value, usage)\n}\n\n// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet {\n\treturn CommandLine.IPNetSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string.go",
    "content": "package pflag\n\n// -- string Value\ntype stringValue string\n\nfunc newStringValue(val string, p *string) *stringValue {\n\t*p = val\n\treturn (*stringValue)(p)\n}\n\nfunc (s *stringValue) Set(val string) error {\n\t*s = stringValue(val)\n\treturn nil\n}\nfunc (s *stringValue) Type() string {\n\treturn \"string\"\n}\n\nfunc (s *stringValue) String() string { return string(*s) }\n\nfunc stringConv(sval string) (interface{}, error) {\n\treturn sval, nil\n}\n\n// GetString return the string value of a flag with the given name\nfunc (f *FlagSet) GetString(name string) (string, error) {\n\tval, err := f.getFlagType(name, \"string\", stringConv)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn val.(string), nil\n}\n\n// StringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a string variable in which to store the value of the flag.\nfunc (f *FlagSet) StringVar(p *string, name string, value string, usage string) {\n\tf.VarP(newStringValue(value, p), name, \"\", usage)\n}\n\n// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) {\n\tf.VarP(newStringValue(value, p), name, shorthand, usage)\n}\n\n// StringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a string variable in which to store the value of the flag.\nfunc StringVar(p *string, name string, value string, usage string) {\n\tCommandLine.VarP(newStringValue(value, p), name, \"\", usage)\n}\n\n// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringVarP(p *string, name, shorthand string, value string, usage string) {\n\tCommandLine.VarP(newStringValue(value, p), name, shorthand, usage)\n}\n\n// String defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a string variable that stores the value of the flag.\nfunc (f *FlagSet) String(name string, value string, usage string) *string {\n\tp := new(string)\n\tf.StringVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// StringP is like String, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string {\n\tp := new(string)\n\tf.StringVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// String defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a string variable that stores the value of the flag.\nfunc String(name string, value string, usage string) *string {\n\treturn CommandLine.StringP(name, \"\", value, usage)\n}\n\n// StringP is like String, but accepts a shorthand letter that can be used after a single dash.\nfunc StringP(name, shorthand string, value string, usage string) *string {\n\treturn CommandLine.StringP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_array.go",
    "content": "package pflag\n\n// -- stringArray Value\ntype stringArrayValue struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc newStringArrayValue(val []string, p *[]string) *stringArrayValue {\n\tssv := new(stringArrayValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\nfunc (s *stringArrayValue) Set(val string) error {\n\tif !s.changed {\n\t\t*s.value = []string{val}\n\t\ts.changed = true\n\t} else {\n\t\t*s.value = append(*s.value, val)\n\t}\n\treturn nil\n}\n\nfunc (s *stringArrayValue) Append(val string) error {\n\t*s.value = append(*s.value, val)\n\treturn nil\n}\n\nfunc (s *stringArrayValue) Replace(val []string) error {\n\tout := make([]string, len(val))\n\tfor i, d := range val {\n\t\tout[i] = d\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *stringArrayValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = d\n\t}\n\treturn out\n}\n\nfunc (s *stringArrayValue) Type() string {\n\treturn \"stringArray\"\n}\n\nfunc (s *stringArrayValue) String() string {\n\tstr, _ := writeAsCSV(*s.value)\n\treturn \"[\" + str + \"]\"\n}\n\nfunc stringArrayConv(sval string) (interface{}, error) {\n\tsval = sval[1 : len(sval)-1]\n\t// An empty string would cause a array with one (empty) string\n\tif len(sval) == 0 {\n\t\treturn []string{}, nil\n\t}\n\treturn readAsCSV(sval)\n}\n\n// GetStringArray return the []string value of a flag with the given name\nfunc (f *FlagSet) GetStringArray(name string) ([]string, error) {\n\tval, err := f.getFlagType(name, \"stringArray\", stringArrayConv)\n\tif err != nil {\n\t\treturn []string{}, err\n\t}\n\treturn val.([]string), nil\n}\n\n// StringArrayVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) {\n\tf.VarP(newStringArrayValue(value, p), name, \"\", usage)\n}\n\n// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tf.VarP(newStringArrayValue(value, p), name, shorthand, usage)\n}\n\n// StringArrayVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc StringArrayVar(p *[]string, name string, value []string, usage string) {\n\tCommandLine.VarP(newStringArrayValue(value, p), name, \"\", usage)\n}\n\n// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tCommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage)\n}\n\n// StringArray defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc (f *FlagSet) StringArray(name string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringArrayVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringArrayVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringArray defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc StringArray(name string, value []string, usage string) *[]string {\n\treturn CommandLine.StringArrayP(name, \"\", value, usage)\n}\n\n// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.\nfunc StringArrayP(name, shorthand string, value []string, usage string) *[]string {\n\treturn CommandLine.StringArrayP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_slice.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"strings\"\n)\n\n// -- stringSlice Value\ntype stringSliceValue struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc newStringSliceValue(val []string, p *[]string) *stringSliceValue {\n\tssv := new(stringSliceValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\nfunc readAsCSV(val string) ([]string, error) {\n\tif val == \"\" {\n\t\treturn []string{}, nil\n\t}\n\tstringReader := strings.NewReader(val)\n\tcsvReader := csv.NewReader(stringReader)\n\treturn csvReader.Read()\n}\n\nfunc writeAsCSV(vals []string) (string, error) {\n\tb := &bytes.Buffer{}\n\tw := csv.NewWriter(b)\n\terr := w.Write(vals)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tw.Flush()\n\treturn strings.TrimSuffix(b.String(), \"\\n\"), nil\n}\n\nfunc (s *stringSliceValue) Set(val string) error {\n\tv, err := readAsCSV(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !s.changed {\n\t\t*s.value = v\n\t} else {\n\t\t*s.value = append(*s.value, v...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringSliceValue) Type() string {\n\treturn \"stringSlice\"\n}\n\nfunc (s *stringSliceValue) String() string {\n\tstr, _ := writeAsCSV(*s.value)\n\treturn \"[\" + str + \"]\"\n}\n\nfunc (s *stringSliceValue) Append(val string) error {\n\t*s.value = append(*s.value, val)\n\treturn nil\n}\n\nfunc (s *stringSliceValue) Replace(val []string) error {\n\t*s.value = val\n\treturn nil\n}\n\nfunc (s *stringSliceValue) GetSlice() []string {\n\treturn *s.value\n}\n\nfunc stringSliceConv(sval string) (interface{}, error) {\n\tsval = sval[1 : len(sval)-1]\n\t// An empty string would cause a slice with one (empty) string\n\tif len(sval) == 0 {\n\t\treturn []string{}, nil\n\t}\n\treturn readAsCSV(sval)\n}\n\n// GetStringSlice return the []string value of a flag with the given name\nfunc (f *FlagSet) GetStringSlice(name string) ([]string, error) {\n\tval, err := f.getFlagType(name, \"stringSlice\", stringSliceConv)\n\tif err != nil {\n\t\treturn []string{}, err\n\t}\n\treturn val.([]string), nil\n}\n\n// StringSliceVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) {\n\tf.VarP(newStringSliceValue(value, p), name, \"\", usage)\n}\n\n// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tf.VarP(newStringSliceValue(value, p), name, shorthand, usage)\n}\n\n// StringSliceVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc StringSliceVar(p *[]string, name string, value []string, usage string) {\n\tCommandLine.VarP(newStringSliceValue(value, p), name, \"\", usage)\n}\n\n// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tCommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage)\n}\n\n// StringSlice defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringSlice defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc StringSlice(name string, value []string, usage string) *[]string {\n\treturn CommandLine.StringSliceP(name, \"\", value, usage)\n}\n\n// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc StringSliceP(name, shorthand string, value []string, usage string) *[]string {\n\treturn CommandLine.StringSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt Value\ntype stringToIntValue struct {\n\tvalue   *map[string]int\n\tchanged bool\n}\n\nfunc newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue {\n\tssv := new(stringToIntValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToIntValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.Atoi(kv[1])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToIntValue) Type() string {\n\treturn \"stringToInt\"\n}\n\nfunc (s *stringToIntValue) String() string {\n\tvar buf bytes.Buffer\n\ti := 0\n\tfor k, v := range *s.value {\n\t\tif i > 0 {\n\t\t\tbuf.WriteRune(',')\n\t\t}\n\t\tbuf.WriteString(k)\n\t\tbuf.WriteRune('=')\n\t\tbuf.WriteString(strconv.Itoa(v))\n\t\ti++\n\t}\n\treturn \"[\" + buf.String() + \"]\"\n}\n\nfunc stringToIntConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]int{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.Atoi(kv[1])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetStringToInt return the map[string]int value of a flag with the given name\nfunc (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {\n\tval, err := f.getFlagType(name, \"stringToInt\", stringToIntConv)\n\tif err != nil {\n\t\treturn map[string]int{}, err\n\t}\n\treturn val.(map[string]int), nil\n}\n\n// StringToIntVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]int variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {\n\tf.VarP(newStringToIntValue(value, p), name, \"\", usage)\n}\n\n// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {\n\tf.VarP(newStringToIntValue(value, p), name, shorthand, usage)\n}\n\n// StringToIntVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]int variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {\n\tCommandLine.VarP(newStringToIntValue(value, p), name, \"\", usage)\n}\n\n// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {\n\tCommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage)\n}\n\n// StringToInt defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int {\n\tp := map[string]int{}\n\tf.StringToIntVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {\n\tp := map[string]int{}\n\tf.StringToIntVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToInt defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt(name string, value map[string]int, usage string) *map[string]int {\n\treturn CommandLine.StringToIntP(name, \"\", value, usage)\n}\n\n// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {\n\treturn CommandLine.StringToIntP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int64.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt64 Value\ntype stringToInt64Value struct {\n\tvalue   *map[string]int64\n\tchanged bool\n}\n\nfunc newStringToInt64Value(val map[string]int64, p *map[string]int64) *stringToInt64Value {\n\tssv := new(stringToInt64Value)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToInt64Value) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int64, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.ParseInt(kv[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToInt64Value) Type() string {\n\treturn \"stringToInt64\"\n}\n\nfunc (s *stringToInt64Value) String() string {\n\tvar buf bytes.Buffer\n\ti := 0\n\tfor k, v := range *s.value {\n\t\tif i > 0 {\n\t\t\tbuf.WriteRune(',')\n\t\t}\n\t\tbuf.WriteString(k)\n\t\tbuf.WriteRune('=')\n\t\tbuf.WriteString(strconv.FormatInt(v, 10))\n\t\ti++\n\t}\n\treturn \"[\" + buf.String() + \"]\"\n}\n\nfunc stringToInt64Conv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]int64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int64, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.ParseInt(kv[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetStringToInt64 return the map[string]int64 value of a flag with the given name\nfunc (f *FlagSet) GetStringToInt64(name string) (map[string]int64, error) {\n\tval, err := f.getFlagType(name, \"stringToInt64\", stringToInt64Conv)\n\tif err != nil {\n\t\treturn map[string]int64{}, err\n\t}\n\treturn val.(map[string]int64), nil\n}\n\n// StringToInt64Var defines a string flag with specified name, default value, and usage string.\n// The argument p point64s to a map[string]int64 variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) {\n\tf.VarP(newStringToInt64Value(value, p), name, \"\", usage)\n}\n\n// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) {\n\tf.VarP(newStringToInt64Value(value, p), name, shorthand, usage)\n}\n\n// StringToInt64Var defines a string flag with specified name, default value, and usage string.\n// The argument p point64s to a map[string]int64 variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) {\n\tCommandLine.VarP(newStringToInt64Value(value, p), name, \"\", usage)\n}\n\n// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) {\n\tCommandLine.VarP(newStringToInt64Value(value, p), name, shorthand, usage)\n}\n\n// StringToInt64 defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int64 variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 {\n\tp := map[string]int64{}\n\tf.StringToInt64VarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 {\n\tp := map[string]int64{}\n\tf.StringToInt64VarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToInt64 defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int64 variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 {\n\treturn CommandLine.StringToInt64P(name, \"\", value, usage)\n}\n\n// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 {\n\treturn CommandLine.StringToInt64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_string.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// -- stringToString Value\ntype stringToStringValue struct {\n\tvalue   *map[string]string\n\tchanged bool\n}\n\nfunc newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue {\n\tssv := new(stringToStringValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToStringValue) Set(val string) error {\n\tvar ss []string\n\tn := strings.Count(val, \"=\")\n\tswitch n {\n\tcase 0:\n\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", val)\n\tcase 1:\n\t\tss = append(ss, strings.Trim(val, `\"`))\n\tdefault:\n\t\tr := csv.NewReader(strings.NewReader(val))\n\t\tvar err error\n\t\tss, err = r.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tout := make(map[string]string, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tout[kv[0]] = kv[1]\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToStringValue) Type() string {\n\treturn \"stringToString\"\n}\n\nfunc (s *stringToStringValue) String() string {\n\tkeys := make([]string, 0, len(*s.value))\n\tfor k := range *s.value {\n\t\tkeys = append(keys, k)\n\t}\n\tsort.Strings(keys)\n\n\trecords := make([]string, 0, len(*s.value)>>1)\n\tfor _, k := range keys {\n\t\tv := (*s.value)[k]\n\t\trecords = append(records, k+\"=\"+v)\n\t}\n\n\tvar buf bytes.Buffer\n\tw := csv.NewWriter(&buf)\n\tif err := w.Write(records); err != nil {\n\t\tpanic(err)\n\t}\n\tw.Flush()\n\treturn \"[\" + strings.TrimSpace(buf.String()) + \"]\"\n}\n\nfunc stringToStringConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]string{}, nil\n\t}\n\tr := csv.NewReader(strings.NewReader(val))\n\tss, err := r.Read()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tout := make(map[string]string, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tout[kv[0]] = kv[1]\n\t}\n\treturn out, nil\n}\n\n// GetStringToString return the map[string]string value of a flag with the given name\nfunc (f *FlagSet) GetStringToString(name string) (map[string]string, error) {\n\tval, err := f.getFlagType(name, \"stringToString\", stringToStringConv)\n\tif err != nil {\n\t\treturn map[string]string{}, err\n\t}\n\treturn val.(map[string]string), nil\n}\n\n// StringToStringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]string variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {\n\tf.VarP(newStringToStringValue(value, p), name, \"\", usage)\n}\n\n// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {\n\tf.VarP(newStringToStringValue(value, p), name, shorthand, usage)\n}\n\n// StringToStringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]string variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {\n\tCommandLine.VarP(newStringToStringValue(value, p), name, \"\", usage)\n}\n\n// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {\n\tCommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage)\n}\n\n// StringToString defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string {\n\tp := map[string]string{}\n\tf.StringToStringVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {\n\tp := map[string]string{}\n\tf.StringToStringVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToString defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToString(name string, value map[string]string, usage string) *map[string]string {\n\treturn CommandLine.StringToStringP(name, \"\", value, usage)\n}\n\n// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {\n\treturn CommandLine.StringToStringP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/text.go",
    "content": "package pflag\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// following is copied from go 1.23.4 flag.go\ntype textValue struct{ p encoding.TextUnmarshaler }\n\nfunc newTextValue(val encoding.TextMarshaler, p encoding.TextUnmarshaler) textValue {\n\tptrVal := reflect.ValueOf(p)\n\tif ptrVal.Kind() != reflect.Ptr {\n\t\tpanic(\"variable value type must be a pointer\")\n\t}\n\tdefVal := reflect.ValueOf(val)\n\tif defVal.Kind() == reflect.Ptr {\n\t\tdefVal = defVal.Elem()\n\t}\n\tif defVal.Type() != ptrVal.Type().Elem() {\n\t\tpanic(fmt.Sprintf(\"default type does not match variable type: %v != %v\", defVal.Type(), ptrVal.Type().Elem()))\n\t}\n\tptrVal.Elem().Set(defVal)\n\treturn textValue{p}\n}\n\nfunc (v textValue) Set(s string) error {\n\treturn v.p.UnmarshalText([]byte(s))\n}\n\nfunc (v textValue) Get() interface{} {\n\treturn v.p\n}\n\nfunc (v textValue) String() string {\n\tif m, ok := v.p.(encoding.TextMarshaler); ok {\n\t\tif b, err := m.MarshalText(); err == nil {\n\t\t\treturn string(b)\n\t\t}\n\t}\n\treturn \"\"\n}\n\n//end of copy\n\nfunc (v textValue) Type() string {\n\treturn reflect.ValueOf(v.p).Type().Name()\n}\n\n// GetText set out, which implements encoding.UnmarshalText, to the value of a flag with given name\nfunc (f *FlagSet) GetText(name string, out encoding.TextUnmarshaler) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"flag accessed but not defined: %s\", name)\n\t}\n\tif flag.Value.Type() != reflect.TypeOf(out).Name() {\n\t\treturn fmt.Errorf(\"trying to get %s value of flag of type %s\", reflect.TypeOf(out).Name(), flag.Value.Type())\n\t}\n\treturn out.UnmarshalText([]byte(flag.Value.String()))\n}\n\n// TextVar defines a flag with a specified name, default value, and usage string. The argument p must be a pointer to a variable that will hold the value of the flag, and p must implement encoding.TextUnmarshaler. If the flag is used, the flag value will be passed to p's UnmarshalText method. The type of the default value must be the same as the type of p.\nfunc (f *FlagSet) TextVar(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string) {\n\tf.VarP(newTextValue(value, p), name, \"\", usage)\n}\n\n// TextVarP is like TextVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) TextVarP(p encoding.TextUnmarshaler, name, shorthand string, value encoding.TextMarshaler, usage string) {\n\tf.VarP(newTextValue(value, p), name, shorthand, usage)\n}\n\n// TextVar defines a flag with a specified name, default value, and usage string. The argument p must be a pointer to a variable that will hold the value of the flag, and p must implement encoding.TextUnmarshaler. If the flag is used, the flag value will be passed to p's UnmarshalText method. The type of the default value must be the same as the type of p.\nfunc TextVar(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string) {\n\tCommandLine.VarP(newTextValue(value, p), name, \"\", usage)\n}\n\n// TextVarP is like TextVar, but accepts a shorthand letter that can be used after a single dash.\nfunc TextVarP(p encoding.TextUnmarshaler, name, shorthand string, value encoding.TextMarshaler, usage string) {\n\tCommandLine.VarP(newTextValue(value, p), name, shorthand, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/time.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// TimeValue adapts time.Time for use as a flag.\ntype timeValue struct {\n\t*time.Time\n\tformats []string\n}\n\nfunc newTimeValue(val time.Time, p *time.Time, formats []string) *timeValue {\n\t*p = val\n\treturn &timeValue{\n\t\tTime:    p,\n\t\tformats: formats,\n\t}\n}\n\n// Set time.Time value from string based on accepted formats.\nfunc (d *timeValue) Set(s string) error {\n\ts = strings.TrimSpace(s)\n\tfor _, f := range d.formats {\n\t\tv, err := time.Parse(f, s)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\t*d.Time = v\n\t\treturn nil\n\t}\n\n\tformatsString := \"\"\n\tfor i, f := range d.formats {\n\t\tif i > 0 {\n\t\t\tformatsString += \", \"\n\t\t}\n\t\tformatsString += fmt.Sprintf(\"`%s`\", f)\n\t}\n\n\treturn fmt.Errorf(\"invalid time format `%s` must be one of: %s\", s, formatsString)\n}\n\n// Type name for time.Time flags.\nfunc (d *timeValue) Type() string {\n\treturn \"time\"\n}\n\nfunc (d *timeValue) String() string {\n\tif d.Time.IsZero() {\n\t\treturn \"\"\n\t} else {\n\t\treturn d.Time.Format(time.RFC3339Nano)\n\t}\n}\n\n// GetTime return the time value of a flag with the given name\nfunc (f *FlagSet) GetTime(name string) (time.Time, error) {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\terr := fmt.Errorf(\"flag accessed but not defined: %s\", name)\n\t\treturn time.Time{}, err\n\t}\n\n\tif flag.Value.Type() != \"time\" {\n\t\terr := fmt.Errorf(\"trying to get %s value of flag of type %s\", \"time\", flag.Value.Type())\n\t\treturn time.Time{}, err\n\t}\n\n\tval, ok := flag.Value.(*timeValue)\n\tif !ok {\n\t\treturn time.Time{}, fmt.Errorf(\"value %s is not a time\", flag.Value)\n\t}\n\n\treturn *val.Time, nil\n}\n\n// TimeVar defines a time.Time flag with specified name, default value, and usage string.\n// The argument p points to a time.Time variable in which to store the value of the flag.\nfunc (f *FlagSet) TimeVar(p *time.Time, name string, value time.Time, formats []string, usage string) {\n\tf.TimeVarP(p, name, \"\", value, formats, usage)\n}\n\n// TimeVarP is like TimeVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) TimeVarP(p *time.Time, name, shorthand string, value time.Time, formats []string, usage string) {\n\tf.VarP(newTimeValue(value, p, formats), name, shorthand, usage)\n}\n\n// TimeVar defines a time.Time flag with specified name, default value, and usage string.\n// The argument p points to a time.Time variable in which to store the value of the flag.\nfunc TimeVar(p *time.Time, name string, value time.Time, formats []string, usage string) {\n\tCommandLine.TimeVarP(p, name, \"\", value, formats, usage)\n}\n\n// TimeVarP is like TimeVar, but accepts a shorthand letter that can be used after a single dash.\nfunc TimeVarP(p *time.Time, name, shorthand string, value time.Time, formats []string, usage string) {\n\tCommandLine.VarP(newTimeValue(value, p, formats), name, shorthand, usage)\n}\n\n// Time defines a time.Time flag with specified name, default value, and usage string.\n// The return value is the address of a time.Time variable that stores the value of the flag.\nfunc (f *FlagSet) Time(name string, value time.Time, formats []string, usage string) *time.Time {\n\treturn f.TimeP(name, \"\", value, formats, usage)\n}\n\n// TimeP is like Time, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) TimeP(name, shorthand string, value time.Time, formats []string, usage string) *time.Time {\n\tp := new(time.Time)\n\tf.TimeVarP(p, name, shorthand, value, formats, usage)\n\treturn p\n}\n\n// Time defines a time.Time flag with specified name, default value, and usage string.\n// The return value is the address of a time.Time variable that stores the value of the flag.\nfunc Time(name string, value time.Time, formats []string, usage string) *time.Time {\n\treturn CommandLine.TimeP(name, \"\", value, formats, usage)\n}\n\n// TimeP is like Time, but accepts a shorthand letter that can be used after a single dash.\nfunc TimeP(name, shorthand string, value time.Time, formats []string, usage string) *time.Time {\n\treturn CommandLine.TimeP(name, shorthand, value, formats, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint Value\ntype uintValue uint\n\nfunc newUintValue(val uint, p *uint) *uintValue {\n\t*p = val\n\treturn (*uintValue)(p)\n}\n\nfunc (i *uintValue) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 64)\n\t*i = uintValue(v)\n\treturn err\n}\n\nfunc (i *uintValue) Type() string {\n\treturn \"uint\"\n}\n\nfunc (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uintConv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint(v), nil\n}\n\n// GetUint return the uint value of a flag with the given name\nfunc (f *FlagSet) GetUint(name string) (uint, error) {\n\tval, err := f.getFlagType(name, \"uint\", uintConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint), nil\n}\n\n// UintVar defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint variable in which to store the value of the flag.\nfunc (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {\n\tf.VarP(newUintValue(value, p), name, \"\", usage)\n}\n\n// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) {\n\tf.VarP(newUintValue(value, p), name, shorthand, usage)\n}\n\n// UintVar defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint  variable in which to store the value of the flag.\nfunc UintVar(p *uint, name string, value uint, usage string) {\n\tCommandLine.VarP(newUintValue(value, p), name, \"\", usage)\n}\n\n// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.\nfunc UintVarP(p *uint, name, shorthand string, value uint, usage string) {\n\tCommandLine.VarP(newUintValue(value, p), name, shorthand, usage)\n}\n\n// Uint defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint(name string, value uint, usage string) *uint {\n\tp := new(uint)\n\tf.UintVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint {\n\tp := new(uint)\n\tf.UintVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc Uint(name string, value uint, usage string) *uint {\n\treturn CommandLine.UintP(name, \"\", value, usage)\n}\n\n// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.\nfunc UintP(name, shorthand string, value uint, usage string) *uint {\n\treturn CommandLine.UintP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint16.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint16 value\ntype uint16Value uint16\n\nfunc newUint16Value(val uint16, p *uint16) *uint16Value {\n\t*p = val\n\treturn (*uint16Value)(p)\n}\n\nfunc (i *uint16Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 16)\n\t*i = uint16Value(v)\n\treturn err\n}\n\nfunc (i *uint16Value) Type() string {\n\treturn \"uint16\"\n}\n\nfunc (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint16Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint16(v), nil\n}\n\n// GetUint16 return the uint16 value of a flag with the given name\nfunc (f *FlagSet) GetUint16(name string) (uint16, error) {\n\tval, err := f.getFlagType(name, \"uint16\", uint16Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint16), nil\n}\n\n// Uint16Var defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) {\n\tf.VarP(newUint16Value(value, p), name, \"\", usage)\n}\n\n// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {\n\tf.VarP(newUint16Value(value, p), name, shorthand, usage)\n}\n\n// Uint16Var defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint  variable in which to store the value of the flag.\nfunc Uint16Var(p *uint16, name string, value uint16, usage string) {\n\tCommandLine.VarP(newUint16Value(value, p), name, \"\", usage)\n}\n\n// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {\n\tCommandLine.VarP(newUint16Value(value, p), name, shorthand, usage)\n}\n\n// Uint16 defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {\n\tp := new(uint16)\n\tf.Uint16VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 {\n\tp := new(uint16)\n\tf.Uint16VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint16 defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc Uint16(name string, value uint16, usage string) *uint16 {\n\treturn CommandLine.Uint16P(name, \"\", value, usage)\n}\n\n// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint16P(name, shorthand string, value uint16, usage string) *uint16 {\n\treturn CommandLine.Uint16P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint32 value\ntype uint32Value uint32\n\nfunc newUint32Value(val uint32, p *uint32) *uint32Value {\n\t*p = val\n\treturn (*uint32Value)(p)\n}\n\nfunc (i *uint32Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 32)\n\t*i = uint32Value(v)\n\treturn err\n}\n\nfunc (i *uint32Value) Type() string {\n\treturn \"uint32\"\n}\n\nfunc (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint32(v), nil\n}\n\n// GetUint32 return the uint32 value of a flag with the given name\nfunc (f *FlagSet) GetUint32(name string) (uint32, error) {\n\tval, err := f.getFlagType(name, \"uint32\", uint32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint32), nil\n}\n\n// Uint32Var defines a uint32 flag with specified name, default value, and usage string.\n// The argument p points to a uint32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) {\n\tf.VarP(newUint32Value(value, p), name, \"\", usage)\n}\n\n// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {\n\tf.VarP(newUint32Value(value, p), name, shorthand, usage)\n}\n\n// Uint32Var defines a uint32 flag with specified name, default value, and usage string.\n// The argument p points to a uint32  variable in which to store the value of the flag.\nfunc Uint32Var(p *uint32, name string, value uint32, usage string) {\n\tCommandLine.VarP(newUint32Value(value, p), name, \"\", usage)\n}\n\n// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {\n\tCommandLine.VarP(newUint32Value(value, p), name, shorthand, usage)\n}\n\n// Uint32 defines a uint32 flag with specified name, default value, and usage string.\n// The return value is the address of a uint32  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {\n\tp := new(uint32)\n\tf.Uint32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 {\n\tp := new(uint32)\n\tf.Uint32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint32 defines a uint32 flag with specified name, default value, and usage string.\n// The return value is the address of a uint32  variable that stores the value of the flag.\nfunc Uint32(name string, value uint32, usage string) *uint32 {\n\treturn CommandLine.Uint32P(name, \"\", value, usage)\n}\n\n// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint32P(name, shorthand string, value uint32, usage string) *uint32 {\n\treturn CommandLine.Uint32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint64 Value\ntype uint64Value uint64\n\nfunc newUint64Value(val uint64, p *uint64) *uint64Value {\n\t*p = val\n\treturn (*uint64Value)(p)\n}\n\nfunc (i *uint64Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 64)\n\t*i = uint64Value(v)\n\treturn err\n}\n\nfunc (i *uint64Value) Type() string {\n\treturn \"uint64\"\n}\n\nfunc (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint64Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 64)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64(v), nil\n}\n\n// GetUint64 return the uint64 value of a flag with the given name\nfunc (f *FlagSet) GetUint64(name string) (uint64, error) {\n\tval, err := f.getFlagType(name, \"uint64\", uint64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint64), nil\n}\n\n// Uint64Var defines a uint64 flag with specified name, default value, and usage string.\n// The argument p points to a uint64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) {\n\tf.VarP(newUint64Value(value, p), name, \"\", usage)\n}\n\n// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {\n\tf.VarP(newUint64Value(value, p), name, shorthand, usage)\n}\n\n// Uint64Var defines a uint64 flag with specified name, default value, and usage string.\n// The argument p points to a uint64 variable in which to store the value of the flag.\nfunc Uint64Var(p *uint64, name string, value uint64, usage string) {\n\tCommandLine.VarP(newUint64Value(value, p), name, \"\", usage)\n}\n\n// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {\n\tCommandLine.VarP(newUint64Value(value, p), name, shorthand, usage)\n}\n\n// Uint64 defines a uint64 flag with specified name, default value, and usage string.\n// The return value is the address of a uint64 variable that stores the value of the flag.\nfunc (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {\n\tp := new(uint64)\n\tf.Uint64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 {\n\tp := new(uint64)\n\tf.Uint64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint64 defines a uint64 flag with specified name, default value, and usage string.\n// The return value is the address of a uint64 variable that stores the value of the flag.\nfunc Uint64(name string, value uint64, usage string) *uint64 {\n\treturn CommandLine.Uint64P(name, \"\", value, usage)\n}\n\n// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint64P(name, shorthand string, value uint64, usage string) *uint64 {\n\treturn CommandLine.Uint64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint8.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint8 Value\ntype uint8Value uint8\n\nfunc newUint8Value(val uint8, p *uint8) *uint8Value {\n\t*p = val\n\treturn (*uint8Value)(p)\n}\n\nfunc (i *uint8Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 8)\n\t*i = uint8Value(v)\n\treturn err\n}\n\nfunc (i *uint8Value) Type() string {\n\treturn \"uint8\"\n}\n\nfunc (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint8Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 8)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint8(v), nil\n}\n\n// GetUint8 return the uint8 value of a flag with the given name\nfunc (f *FlagSet) GetUint8(name string) (uint8, error) {\n\tval, err := f.getFlagType(name, \"uint8\", uint8Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint8), nil\n}\n\n// Uint8Var defines a uint8 flag with specified name, default value, and usage string.\n// The argument p points to a uint8 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) {\n\tf.VarP(newUint8Value(value, p), name, \"\", usage)\n}\n\n// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {\n\tf.VarP(newUint8Value(value, p), name, shorthand, usage)\n}\n\n// Uint8Var defines a uint8 flag with specified name, default value, and usage string.\n// The argument p points to a uint8 variable in which to store the value of the flag.\nfunc Uint8Var(p *uint8, name string, value uint8, usage string) {\n\tCommandLine.VarP(newUint8Value(value, p), name, \"\", usage)\n}\n\n// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {\n\tCommandLine.VarP(newUint8Value(value, p), name, shorthand, usage)\n}\n\n// Uint8 defines a uint8 flag with specified name, default value, and usage string.\n// The return value is the address of a uint8 variable that stores the value of the flag.\nfunc (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {\n\tp := new(uint8)\n\tf.Uint8VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 {\n\tp := new(uint8)\n\tf.Uint8VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint8 defines a uint8 flag with specified name, default value, and usage string.\n// The return value is the address of a uint8 variable that stores the value of the flag.\nfunc Uint8(name string, value uint8, usage string) *uint8 {\n\treturn CommandLine.Uint8P(name, \"\", value, usage)\n}\n\n// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint8P(name, shorthand string, value uint8, usage string) *uint8 {\n\treturn CommandLine.Uint8P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- uintSlice Value\ntype uintSliceValue struct {\n\tvalue   *[]uint\n\tchanged bool\n}\n\nfunc newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {\n\tuisv := new(uintSliceValue)\n\tuisv.value = p\n\t*uisv.value = val\n\treturn uisv\n}\n\nfunc (s *uintSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]uint, len(ss))\n\tfor i, d := range ss {\n\t\tu, err := strconv.ParseUint(d, 10, 0)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = uint(u)\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *uintSliceValue) Type() string {\n\treturn \"uintSlice\"\n}\n\nfunc (s *uintSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *uintSliceValue) fromString(val string) (uint, error) {\n\tt, err := strconv.ParseUint(val, 10, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint(t), nil\n}\n\nfunc (s *uintSliceValue) toString(val uint) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *uintSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *uintSliceValue) Replace(val []string) error {\n\tout := make([]uint, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *uintSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc uintSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []uint{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]uint, len(ss))\n\tfor i, d := range ss {\n\t\tu, err := strconv.ParseUint(d, 10, 0)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = uint(u)\n\t}\n\treturn out, nil\n}\n\n// GetUintSlice returns the []uint value of a flag with the given name.\nfunc (f *FlagSet) GetUintSlice(name string) ([]uint, error) {\n\tval, err := f.getFlagType(name, \"uintSlice\", uintSliceConv)\n\tif err != nil {\n\t\treturn []uint{}, err\n\t}\n\treturn val.([]uint), nil\n}\n\n// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string.\n// The argument p points to a []uint variable in which to store the value of the flag.\nfunc (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) {\n\tf.VarP(newUintSliceValue(value, p), name, \"\", usage)\n}\n\n// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {\n\tf.VarP(newUintSliceValue(value, p), name, shorthand, usage)\n}\n\n// UintSliceVar defines a uint[] flag with specified name, default value, and usage string.\n// The argument p points to a uint[] variable in which to store the value of the flag.\nfunc UintSliceVar(p *[]uint, name string, value []uint, usage string) {\n\tCommandLine.VarP(newUintSliceValue(value, p), name, \"\", usage)\n}\n\n// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {\n\tCommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage)\n}\n\n// UintSlice defines a []uint flag with specified name, default value, and usage string.\n// The return value is the address of a []uint variable that stores the value of the flag.\nfunc (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint {\n\tp := []uint{}\n\tf.UintSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {\n\tp := []uint{}\n\tf.UintSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// UintSlice defines a []uint flag with specified name, default value, and usage string.\n// The return value is the address of a []uint variable that stores the value of the flag.\nfunc UintSlice(name string, value []uint, usage string) *[]uint {\n\treturn CommandLine.UintSliceP(name, \"\", value, usage)\n}\n\n// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {\n\treturn CommandLine.UintSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/LICENSE",
    "content": "Copyright (c) 2015 Vincent Batts, Raleigh, NC, USA\n\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\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific 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 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/vbatts/tar-split/archive/tar/common.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// Package tar implements access to tar archives.\n//\n// Tape archives (tar) are a file format for storing a sequence of files that\n// can be read and written in a streaming manner.\n// This package aims to cover most variations of the format,\n// including those produced by GNU and BSD tar tools.\npackage tar\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// BUG: Use of the Uid and Gid fields in Header could overflow on 32-bit\n// architectures. If a large value is encountered when decoding, the result\n// stored in Header will be the truncated version.\n\nvar (\n\tErrHeader          = errors.New(\"archive/tar: invalid tar header\")\n\tErrWriteTooLong    = errors.New(\"archive/tar: write too long\")\n\tErrFieldTooLong    = errors.New(\"archive/tar: header field too long\")\n\tErrWriteAfterClose = errors.New(\"archive/tar: write after close\")\n\terrMissData        = errors.New(\"archive/tar: sparse file references non-existent data\")\n\terrUnrefData       = errors.New(\"archive/tar: sparse file contains unreferenced data\")\n\terrWriteHole       = errors.New(\"archive/tar: write non-NUL byte in sparse hole\")\n\terrSparseTooLong   = errors.New(\"archive/tar: sparse map too long\")\n)\n\ntype headerError []string\n\nfunc (he headerError) Error() string {\n\tconst prefix = \"archive/tar: cannot encode header\"\n\tvar ss []string\n\tfor _, s := range he {\n\t\tif s != \"\" {\n\t\t\tss = append(ss, s)\n\t\t}\n\t}\n\tif len(ss) == 0 {\n\t\treturn prefix\n\t}\n\treturn fmt.Sprintf(\"%s: %v\", prefix, strings.Join(ss, \"; and \"))\n}\n\n// Type flags for Header.Typeflag.\nconst (\n\t// Type '0' indicates a regular file.\n\tTypeReg  = '0'\n\tTypeRegA = '\\x00' // Deprecated: Use TypeReg instead.\n\n\t// Type '1' to '6' are header-only flags and may not have a data body.\n\tTypeLink    = '1' // Hard link\n\tTypeSymlink = '2' // Symbolic link\n\tTypeChar    = '3' // Character device node\n\tTypeBlock   = '4' // Block device node\n\tTypeDir     = '5' // Directory\n\tTypeFifo    = '6' // FIFO node\n\n\t// Type '7' is reserved.\n\tTypeCont = '7'\n\n\t// Type 'x' is used by the PAX format to store key-value records that\n\t// are only relevant to the next file.\n\t// This package transparently handles these types.\n\tTypeXHeader = 'x'\n\n\t// Type 'g' is used by the PAX format to store key-value records that\n\t// are relevant to all subsequent files.\n\t// This package only supports parsing and composing such headers,\n\t// but does not currently support persisting the global state across files.\n\tTypeXGlobalHeader = 'g'\n\n\t// Type 'S' indicates a sparse file in the GNU format.\n\tTypeGNUSparse = 'S'\n\n\t// Types 'L' and 'K' are used by the GNU format for a meta file\n\t// used to store the path or link name for the next file.\n\t// This package transparently handles these types.\n\tTypeGNULongName = 'L'\n\tTypeGNULongLink = 'K'\n)\n\n// Keywords for PAX extended header records.\nconst (\n\tpaxNone     = \"\" // Indicates that no PAX key is suitable\n\tpaxPath     = \"path\"\n\tpaxLinkpath = \"linkpath\"\n\tpaxSize     = \"size\"\n\tpaxUid      = \"uid\"\n\tpaxGid      = \"gid\"\n\tpaxUname    = \"uname\"\n\tpaxGname    = \"gname\"\n\tpaxMtime    = \"mtime\"\n\tpaxAtime    = \"atime\"\n\tpaxCtime    = \"ctime\"   // Removed from later revision of PAX spec, but was valid\n\tpaxCharset  = \"charset\" // Currently unused\n\tpaxComment  = \"comment\" // Currently unused\n\n\tpaxSchilyXattr = \"SCHILY.xattr.\"\n\n\t// Keywords for GNU sparse files in a PAX extended header.\n\tpaxGNUSparse          = \"GNU.sparse.\"\n\tpaxGNUSparseNumBlocks = \"GNU.sparse.numblocks\"\n\tpaxGNUSparseOffset    = \"GNU.sparse.offset\"\n\tpaxGNUSparseNumBytes  = \"GNU.sparse.numbytes\"\n\tpaxGNUSparseMap       = \"GNU.sparse.map\"\n\tpaxGNUSparseName      = \"GNU.sparse.name\"\n\tpaxGNUSparseMajor     = \"GNU.sparse.major\"\n\tpaxGNUSparseMinor     = \"GNU.sparse.minor\"\n\tpaxGNUSparseSize      = \"GNU.sparse.size\"\n\tpaxGNUSparseRealSize  = \"GNU.sparse.realsize\"\n)\n\n// basicKeys is a set of the PAX keys for which we have built-in support.\n// This does not contain \"charset\" or \"comment\", which are both PAX-specific,\n// so adding them as first-class features of Header is unlikely.\n// Users can use the PAXRecords field to set it themselves.\nvar basicKeys = map[string]bool{\n\tpaxPath: true, paxLinkpath: true, paxSize: true, paxUid: true, paxGid: true,\n\tpaxUname: true, paxGname: true, paxMtime: true, paxAtime: true, paxCtime: true,\n}\n\n// A Header represents a single header in a tar archive.\n// Some fields may not be populated.\n//\n// For forward compatibility, users that retrieve a Header from Reader.Next,\n// mutate it in some ways, and then pass it back to Writer.WriteHeader\n// should do so by creating a new Header and copying the fields\n// that they are interested in preserving.\ntype Header struct {\n\t// Typeflag is the type of header entry.\n\t// The zero value is automatically promoted to either TypeReg or TypeDir\n\t// depending on the presence of a trailing slash in Name.\n\tTypeflag byte\n\n\tName     string // Name of file entry\n\tLinkname string // Target name of link (valid for TypeLink or TypeSymlink)\n\n\tSize  int64  // Logical file size in bytes\n\tMode  int64  // Permission and mode bits\n\tUid   int    // User ID of owner\n\tGid   int    // Group ID of owner\n\tUname string // User name of owner\n\tGname string // Group name of owner\n\n\t// If the Format is unspecified, then Writer.WriteHeader rounds ModTime\n\t// to the nearest second and ignores the AccessTime and ChangeTime fields.\n\t//\n\t// To use AccessTime or ChangeTime, specify the Format as PAX or GNU.\n\t// To use sub-second resolution, specify the Format as PAX.\n\tModTime    time.Time // Modification time\n\tAccessTime time.Time // Access time (requires either PAX or GNU support)\n\tChangeTime time.Time // Change time (requires either PAX or GNU support)\n\n\tDevmajor int64 // Major device number (valid for TypeChar or TypeBlock)\n\tDevminor int64 // Minor device number (valid for TypeChar or TypeBlock)\n\n\t// Xattrs stores extended attributes as PAX records under the\n\t// \"SCHILY.xattr.\" namespace.\n\t//\n\t// The following are semantically equivalent:\n\t//  h.Xattrs[key] = value\n\t//  h.PAXRecords[\"SCHILY.xattr.\"+key] = value\n\t//\n\t// When Writer.WriteHeader is called, the contents of Xattrs will take\n\t// precedence over those in PAXRecords.\n\t//\n\t// Deprecated: Use PAXRecords instead.\n\tXattrs map[string]string\n\n\t// PAXRecords is a map of PAX extended header records.\n\t//\n\t// User-defined records should have keys of the following form:\n\t//\tVENDOR.keyword\n\t// Where VENDOR is some namespace in all uppercase, and keyword may\n\t// not contain the '=' character (e.g., \"GOLANG.pkg.version\").\n\t// The key and value should be non-empty UTF-8 strings.\n\t//\n\t// When Writer.WriteHeader is called, PAX records derived from the\n\t// other fields in Header take precedence over PAXRecords.\n\tPAXRecords map[string]string\n\n\t// Format specifies the format of the tar header.\n\t//\n\t// This is set by Reader.Next as a best-effort guess at the format.\n\t// Since the Reader liberally reads some non-compliant files,\n\t// it is possible for this to be FormatUnknown.\n\t//\n\t// If the format is unspecified when Writer.WriteHeader is called,\n\t// then it uses the first format (in the order of USTAR, PAX, GNU)\n\t// capable of encoding this Header (see Format).\n\tFormat Format\n}\n\n// sparseEntry represents a Length-sized fragment at Offset in the file.\ntype sparseEntry struct{ Offset, Length int64 }\n\nfunc (s sparseEntry) endOffset() int64 { return s.Offset + s.Length }\n\n// A sparse file can be represented as either a sparseDatas or a sparseHoles.\n// As long as the total size is known, they are equivalent and one can be\n// converted to the other form and back. The various tar formats with sparse\n// file support represent sparse files in the sparseDatas form. That is, they\n// specify the fragments in the file that has data, and treat everything else as\n// having zero bytes. As such, the encoding and decoding logic in this package\n// deals with sparseDatas.\n//\n// However, the external API uses sparseHoles instead of sparseDatas because the\n// zero value of sparseHoles logically represents a normal file (i.e., there are\n// no holes in it). On the other hand, the zero value of sparseDatas implies\n// that the file has no data in it, which is rather odd.\n//\n// As an example, if the underlying raw file contains the 10-byte data:\n//\tvar compactFile = \"abcdefgh\"\n//\n// And the sparse map has the following entries:\n//\tvar spd sparseDatas = []sparseEntry{\n//\t\t{Offset: 2,  Length: 5},  // Data fragment for 2..6\n//\t\t{Offset: 18, Length: 3},  // Data fragment for 18..20\n//\t}\n//\tvar sph sparseHoles = []sparseEntry{\n//\t\t{Offset: 0,  Length: 2},  // Hole fragment for 0..1\n//\t\t{Offset: 7,  Length: 11}, // Hole fragment for 7..17\n//\t\t{Offset: 21, Length: 4},  // Hole fragment for 21..24\n//\t}\n//\n// Then the content of the resulting sparse file with a Header.Size of 25 is:\n//\tvar sparseFile = \"\\x00\"*2 + \"abcde\" + \"\\x00\"*11 + \"fgh\" + \"\\x00\"*4\ntype (\n\tsparseDatas []sparseEntry\n\tsparseHoles []sparseEntry\n)\n\n// validateSparseEntries reports whether sp is a valid sparse map.\n// It does not matter whether sp represents data fragments or hole fragments.\nfunc validateSparseEntries(sp []sparseEntry, size int64) bool {\n\t// Validate all sparse entries. These are the same checks as performed by\n\t// the BSD tar utility.\n\tif size < 0 {\n\t\treturn false\n\t}\n\tvar pre sparseEntry\n\tfor _, cur := range sp {\n\t\tswitch {\n\t\tcase cur.Offset < 0 || cur.Length < 0:\n\t\t\treturn false // Negative values are never okay\n\t\tcase cur.Offset > math.MaxInt64-cur.Length:\n\t\t\treturn false // Integer overflow with large length\n\t\tcase cur.endOffset() > size:\n\t\t\treturn false // Region extends beyond the actual size\n\t\tcase pre.endOffset() > cur.Offset:\n\t\t\treturn false // Regions cannot overlap and must be in order\n\t\t}\n\t\tpre = cur\n\t}\n\treturn true\n}\n\n// alignSparseEntries mutates src and returns dst where each fragment's\n// starting offset is aligned up to the nearest block edge, and each\n// ending offset is aligned down to the nearest block edge.\n//\n// Even though the Go tar Reader and the BSD tar utility can handle entries\n// with arbitrary offsets and lengths, the GNU tar utility can only handle\n// offsets and lengths that are multiples of blockSize.\nfunc alignSparseEntries(src []sparseEntry, size int64) []sparseEntry {\n\tdst := src[:0]\n\tfor _, s := range src {\n\t\tpos, end := s.Offset, s.endOffset()\n\t\tpos += blockPadding(+pos) // Round-up to nearest blockSize\n\t\tif end != size {\n\t\t\tend -= blockPadding(-end) // Round-down to nearest blockSize\n\t\t}\n\t\tif pos < end {\n\t\t\tdst = append(dst, sparseEntry{Offset: pos, Length: end - pos})\n\t\t}\n\t}\n\treturn dst\n}\n\n// invertSparseEntries converts a sparse map from one form to the other.\n// If the input is sparseHoles, then it will output sparseDatas and vice-versa.\n// The input must have been already validated.\n//\n// This function mutates src and returns a normalized map where:\n//\t* adjacent fragments are coalesced together\n//\t* only the last fragment may be empty\n//\t* the endOffset of the last fragment is the total size\nfunc invertSparseEntries(src []sparseEntry, size int64) []sparseEntry {\n\tdst := src[:0]\n\tvar pre sparseEntry\n\tfor _, cur := range src {\n\t\tif cur.Length == 0 {\n\t\t\tcontinue // Skip empty fragments\n\t\t}\n\t\tpre.Length = cur.Offset - pre.Offset\n\t\tif pre.Length > 0 {\n\t\t\tdst = append(dst, pre) // Only add non-empty fragments\n\t\t}\n\t\tpre.Offset = cur.endOffset()\n\t}\n\tpre.Length = size - pre.Offset // Possibly the only empty fragment\n\treturn append(dst, pre)\n}\n\n// fileState tracks the number of logical (includes sparse holes) and physical\n// (actual in tar archive) bytes remaining for the current file.\n//\n// Invariant: LogicalRemaining >= PhysicalRemaining\ntype fileState interface {\n\tLogicalRemaining() int64\n\tPhysicalRemaining() int64\n}\n\n// allowedFormats determines which formats can be used.\n// The value returned is the logical OR of multiple possible formats.\n// If the value is FormatUnknown, then the input Header cannot be encoded\n// and an error is returned explaining why.\n//\n// As a by-product of checking the fields, this function returns paxHdrs, which\n// contain all fields that could not be directly encoded.\n// A value receiver ensures that this method does not mutate the source Header.\nfunc (h Header) allowedFormats() (format Format, paxHdrs map[string]string, err error) {\n\tformat = FormatUSTAR | FormatPAX | FormatGNU\n\tpaxHdrs = make(map[string]string)\n\n\tvar whyNoUSTAR, whyNoPAX, whyNoGNU string\n\tvar preferPAX bool // Prefer PAX over USTAR\n\tverifyString := func(s string, size int, name, paxKey string) {\n\t\t// NUL-terminator is optional for path and linkpath.\n\t\t// Technically, it is required for uname and gname,\n\t\t// but neither GNU nor BSD tar checks for it.\n\t\ttooLong := len(s) > size\n\t\tallowLongGNU := paxKey == paxPath || paxKey == paxLinkpath\n\t\tif hasNUL(s) || (tooLong && !allowLongGNU) {\n\t\t\twhyNoGNU = fmt.Sprintf(\"GNU cannot encode %s=%q\", name, s)\n\t\t\tformat.mustNotBe(FormatGNU)\n\t\t}\n\t\tif !isASCII(s) || tooLong {\n\t\t\tcanSplitUSTAR := paxKey == paxPath\n\t\t\tif _, _, ok := splitUSTARPath(s); !canSplitUSTAR || !ok {\n\t\t\t\twhyNoUSTAR = fmt.Sprintf(\"USTAR cannot encode %s=%q\", name, s)\n\t\t\t\tformat.mustNotBe(FormatUSTAR)\n\t\t\t}\n\t\t\tif paxKey == paxNone {\n\t\t\t\twhyNoPAX = fmt.Sprintf(\"PAX cannot encode %s=%q\", name, s)\n\t\t\t\tformat.mustNotBe(FormatPAX)\n\t\t\t} else {\n\t\t\t\tpaxHdrs[paxKey] = s\n\t\t\t}\n\t\t}\n\t\tif v, ok := h.PAXRecords[paxKey]; ok && v == s {\n\t\t\tpaxHdrs[paxKey] = v\n\t\t}\n\t}\n\tverifyNumeric := func(n int64, size int, name, paxKey string) {\n\t\tif !fitsInBase256(size, n) {\n\t\t\twhyNoGNU = fmt.Sprintf(\"GNU cannot encode %s=%d\", name, n)\n\t\t\tformat.mustNotBe(FormatGNU)\n\t\t}\n\t\tif !fitsInOctal(size, n) {\n\t\t\twhyNoUSTAR = fmt.Sprintf(\"USTAR cannot encode %s=%d\", name, n)\n\t\t\tformat.mustNotBe(FormatUSTAR)\n\t\t\tif paxKey == paxNone {\n\t\t\t\twhyNoPAX = fmt.Sprintf(\"PAX cannot encode %s=%d\", name, n)\n\t\t\t\tformat.mustNotBe(FormatPAX)\n\t\t\t} else {\n\t\t\t\tpaxHdrs[paxKey] = strconv.FormatInt(n, 10)\n\t\t\t}\n\t\t}\n\t\tif v, ok := h.PAXRecords[paxKey]; ok && v == strconv.FormatInt(n, 10) {\n\t\t\tpaxHdrs[paxKey] = v\n\t\t}\n\t}\n\tverifyTime := func(ts time.Time, size int, name, paxKey string) {\n\t\tif ts.IsZero() {\n\t\t\treturn // Always okay\n\t\t}\n\t\tif !fitsInBase256(size, ts.Unix()) {\n\t\t\twhyNoGNU = fmt.Sprintf(\"GNU cannot encode %s=%v\", name, ts)\n\t\t\tformat.mustNotBe(FormatGNU)\n\t\t}\n\t\tisMtime := paxKey == paxMtime\n\t\tfitsOctal := fitsInOctal(size, ts.Unix())\n\t\tif (isMtime && !fitsOctal) || !isMtime {\n\t\t\twhyNoUSTAR = fmt.Sprintf(\"USTAR cannot encode %s=%v\", name, ts)\n\t\t\tformat.mustNotBe(FormatUSTAR)\n\t\t}\n\t\tneedsNano := ts.Nanosecond() != 0\n\t\tif !isMtime || !fitsOctal || needsNano {\n\t\t\tpreferPAX = true // USTAR may truncate sub-second measurements\n\t\t\tif paxKey == paxNone {\n\t\t\t\twhyNoPAX = fmt.Sprintf(\"PAX cannot encode %s=%v\", name, ts)\n\t\t\t\tformat.mustNotBe(FormatPAX)\n\t\t\t} else {\n\t\t\t\tpaxHdrs[paxKey] = formatPAXTime(ts)\n\t\t\t}\n\t\t}\n\t\tif v, ok := h.PAXRecords[paxKey]; ok && v == formatPAXTime(ts) {\n\t\t\tpaxHdrs[paxKey] = v\n\t\t}\n\t}\n\n\t// Check basic fields.\n\tvar blk block\n\tv7 := blk.V7()\n\tustar := blk.USTAR()\n\tgnu := blk.GNU()\n\tverifyString(h.Name, len(v7.Name()), \"Name\", paxPath)\n\tverifyString(h.Linkname, len(v7.LinkName()), \"Linkname\", paxLinkpath)\n\tverifyString(h.Uname, len(ustar.UserName()), \"Uname\", paxUname)\n\tverifyString(h.Gname, len(ustar.GroupName()), \"Gname\", paxGname)\n\tverifyNumeric(h.Mode, len(v7.Mode()), \"Mode\", paxNone)\n\tverifyNumeric(int64(h.Uid), len(v7.UID()), \"Uid\", paxUid)\n\tverifyNumeric(int64(h.Gid), len(v7.GID()), \"Gid\", paxGid)\n\tverifyNumeric(h.Size, len(v7.Size()), \"Size\", paxSize)\n\tverifyNumeric(h.Devmajor, len(ustar.DevMajor()), \"Devmajor\", paxNone)\n\tverifyNumeric(h.Devminor, len(ustar.DevMinor()), \"Devminor\", paxNone)\n\tverifyTime(h.ModTime, len(v7.ModTime()), \"ModTime\", paxMtime)\n\tverifyTime(h.AccessTime, len(gnu.AccessTime()), \"AccessTime\", paxAtime)\n\tverifyTime(h.ChangeTime, len(gnu.ChangeTime()), \"ChangeTime\", paxCtime)\n\n\t// Check for header-only types.\n\tvar whyOnlyPAX, whyOnlyGNU string\n\tswitch h.Typeflag {\n\tcase TypeReg, TypeChar, TypeBlock, TypeFifo, TypeGNUSparse:\n\t\t// Exclude TypeLink and TypeSymlink, since they may reference directories.\n\t\tif strings.HasSuffix(h.Name, \"/\") {\n\t\t\treturn FormatUnknown, nil, headerError{\"filename may not have trailing slash\"}\n\t\t}\n\tcase TypeXHeader, TypeGNULongName, TypeGNULongLink:\n\t\treturn FormatUnknown, nil, headerError{\"cannot manually encode TypeXHeader, TypeGNULongName, or TypeGNULongLink headers\"}\n\tcase TypeXGlobalHeader:\n\t\th2 := Header{Name: h.Name, Typeflag: h.Typeflag, Xattrs: h.Xattrs, PAXRecords: h.PAXRecords, Format: h.Format}\n\t\tif !reflect.DeepEqual(h, h2) {\n\t\t\treturn FormatUnknown, nil, headerError{\"only PAXRecords should be set for TypeXGlobalHeader\"}\n\t\t}\n\t\twhyOnlyPAX = \"only PAX supports TypeXGlobalHeader\"\n\t\tformat.mayOnlyBe(FormatPAX)\n\t}\n\tif !isHeaderOnlyType(h.Typeflag) && h.Size < 0 {\n\t\treturn FormatUnknown, nil, headerError{\"negative size on header-only type\"}\n\t}\n\n\t// Check PAX records.\n\tif len(h.Xattrs) > 0 {\n\t\tfor k, v := range h.Xattrs {\n\t\t\tpaxHdrs[paxSchilyXattr+k] = v\n\t\t}\n\t\twhyOnlyPAX = \"only PAX supports Xattrs\"\n\t\tformat.mayOnlyBe(FormatPAX)\n\t}\n\tif len(h.PAXRecords) > 0 {\n\t\tfor k, v := range h.PAXRecords {\n\t\t\tswitch _, exists := paxHdrs[k]; {\n\t\t\tcase exists:\n\t\t\t\tcontinue // Do not overwrite existing records\n\t\t\tcase h.Typeflag == TypeXGlobalHeader:\n\t\t\t\tpaxHdrs[k] = v // Copy all records\n\t\t\tcase !basicKeys[k] && !strings.HasPrefix(k, paxGNUSparse):\n\t\t\t\tpaxHdrs[k] = v // Ignore local records that may conflict\n\t\t\t}\n\t\t}\n\t\twhyOnlyPAX = \"only PAX supports PAXRecords\"\n\t\tformat.mayOnlyBe(FormatPAX)\n\t}\n\tfor k, v := range paxHdrs {\n\t\tif !validPAXRecord(k, v) {\n\t\t\treturn FormatUnknown, nil, headerError{fmt.Sprintf(\"invalid PAX record: %q\", k+\" = \"+v)}\n\t\t}\n\t}\n\n\t// TODO(dsnet): Re-enable this when adding sparse support.\n\t// See https://golang.org/issue/22735\n\t/*\n\t\t// Check sparse files.\n\t\tif len(h.SparseHoles) > 0 || h.Typeflag == TypeGNUSparse {\n\t\t\tif isHeaderOnlyType(h.Typeflag) {\n\t\t\t\treturn FormatUnknown, nil, headerError{\"header-only type cannot be sparse\"}\n\t\t\t}\n\t\t\tif !validateSparseEntries(h.SparseHoles, h.Size) {\n\t\t\t\treturn FormatUnknown, nil, headerError{\"invalid sparse holes\"}\n\t\t\t}\n\t\t\tif h.Typeflag == TypeGNUSparse {\n\t\t\t\twhyOnlyGNU = \"only GNU supports TypeGNUSparse\"\n\t\t\t\tformat.mayOnlyBe(FormatGNU)\n\t\t\t} else {\n\t\t\t\twhyNoGNU = \"GNU supports sparse files only with TypeGNUSparse\"\n\t\t\t\tformat.mustNotBe(FormatGNU)\n\t\t\t}\n\t\t\twhyNoUSTAR = \"USTAR does not support sparse files\"\n\t\t\tformat.mustNotBe(FormatUSTAR)\n\t\t}\n\t*/\n\n\t// Check desired format.\n\tif wantFormat := h.Format; wantFormat != FormatUnknown {\n\t\tif wantFormat.has(FormatPAX) && !preferPAX {\n\t\t\twantFormat.mayBe(FormatUSTAR) // PAX implies USTAR allowed too\n\t\t}\n\t\tformat.mayOnlyBe(wantFormat) // Set union of formats allowed and format wanted\n\t}\n\tif format == FormatUnknown {\n\t\tswitch h.Format {\n\t\tcase FormatUSTAR:\n\t\t\terr = headerError{\"Format specifies USTAR\", whyNoUSTAR, whyOnlyPAX, whyOnlyGNU}\n\t\tcase FormatPAX:\n\t\t\terr = headerError{\"Format specifies PAX\", whyNoPAX, whyOnlyGNU}\n\t\tcase FormatGNU:\n\t\t\terr = headerError{\"Format specifies GNU\", whyNoGNU, whyOnlyPAX}\n\t\tdefault:\n\t\t\terr = headerError{whyNoUSTAR, whyNoPAX, whyNoGNU, whyOnlyPAX, whyOnlyGNU}\n\t\t}\n\t}\n\treturn format, paxHdrs, err\n}\n\n// FileInfo returns an os.FileInfo for the Header.\nfunc (h *Header) FileInfo() os.FileInfo {\n\treturn headerFileInfo{h}\n}\n\n// headerFileInfo implements os.FileInfo.\ntype headerFileInfo struct {\n\th *Header\n}\n\nfunc (fi headerFileInfo) Size() int64        { return fi.h.Size }\nfunc (fi headerFileInfo) IsDir() bool        { return fi.Mode().IsDir() }\nfunc (fi headerFileInfo) ModTime() time.Time { return fi.h.ModTime }\nfunc (fi headerFileInfo) Sys() interface{}   { return fi.h }\n\n// Name returns the base name of the file.\nfunc (fi headerFileInfo) Name() string {\n\tif fi.IsDir() {\n\t\treturn path.Base(path.Clean(fi.h.Name))\n\t}\n\treturn path.Base(fi.h.Name)\n}\n\n// Mode returns the permission and mode bits for the headerFileInfo.\nfunc (fi headerFileInfo) Mode() (mode os.FileMode) {\n\t// Set file permission bits.\n\tmode = os.FileMode(fi.h.Mode).Perm()\n\n\t// Set setuid, setgid and sticky bits.\n\tif fi.h.Mode&c_ISUID != 0 {\n\t\tmode |= os.ModeSetuid\n\t}\n\tif fi.h.Mode&c_ISGID != 0 {\n\t\tmode |= os.ModeSetgid\n\t}\n\tif fi.h.Mode&c_ISVTX != 0 {\n\t\tmode |= os.ModeSticky\n\t}\n\n\t// Set file mode bits; clear perm, setuid, setgid, and sticky bits.\n\tswitch m := os.FileMode(fi.h.Mode) &^ 07777; m {\n\tcase c_ISDIR:\n\t\tmode |= os.ModeDir\n\tcase c_ISFIFO:\n\t\tmode |= os.ModeNamedPipe\n\tcase c_ISLNK:\n\t\tmode |= os.ModeSymlink\n\tcase c_ISBLK:\n\t\tmode |= os.ModeDevice\n\tcase c_ISCHR:\n\t\tmode |= os.ModeDevice\n\t\tmode |= os.ModeCharDevice\n\tcase c_ISSOCK:\n\t\tmode |= os.ModeSocket\n\t}\n\n\tswitch fi.h.Typeflag {\n\tcase TypeSymlink:\n\t\tmode |= os.ModeSymlink\n\tcase TypeChar:\n\t\tmode |= os.ModeDevice\n\t\tmode |= os.ModeCharDevice\n\tcase TypeBlock:\n\t\tmode |= os.ModeDevice\n\tcase TypeDir:\n\t\tmode |= os.ModeDir\n\tcase TypeFifo:\n\t\tmode |= os.ModeNamedPipe\n\t}\n\n\treturn mode\n}\n\n// sysStat, if non-nil, populates h from system-dependent fields of fi.\nvar sysStat func(fi os.FileInfo, h *Header) error\n\nconst (\n\t// Mode constants from the USTAR spec:\n\t// See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06\n\tc_ISUID = 04000 // Set uid\n\tc_ISGID = 02000 // Set gid\n\tc_ISVTX = 01000 // Save text (sticky bit)\n\n\t// Common Unix mode constants; these are not defined in any common tar standard.\n\t// Header.FileInfo understands these, but FileInfoHeader will never produce these.\n\tc_ISDIR  = 040000  // Directory\n\tc_ISFIFO = 010000  // FIFO\n\tc_ISREG  = 0100000 // Regular file\n\tc_ISLNK  = 0120000 // Symbolic link\n\tc_ISBLK  = 060000  // Block special file\n\tc_ISCHR  = 020000  // Character special file\n\tc_ISSOCK = 0140000 // Socket\n)\n\n// FileInfoHeader creates a partially-populated Header from fi.\n// If fi describes a symlink, FileInfoHeader records link as the link target.\n// If fi describes a directory, a slash is appended to the name.\n//\n// Since os.FileInfo's Name method only returns the base name of\n// the file it describes, it may be necessary to modify Header.Name\n// to provide the full path name of the file.\nfunc FileInfoHeader(fi os.FileInfo, link string) (*Header, error) {\n\tif fi == nil {\n\t\treturn nil, errors.New(\"archive/tar: FileInfo is nil\")\n\t}\n\tfm := fi.Mode()\n\th := &Header{\n\t\tName:    fi.Name(),\n\t\tModTime: fi.ModTime(),\n\t\tMode:    int64(fm.Perm()), // or'd with c_IS* constants later\n\t}\n\tswitch {\n\tcase fm.IsRegular():\n\t\th.Typeflag = TypeReg\n\t\th.Size = fi.Size()\n\tcase fi.IsDir():\n\t\th.Typeflag = TypeDir\n\t\th.Name += \"/\"\n\tcase fm&os.ModeSymlink != 0:\n\t\th.Typeflag = TypeSymlink\n\t\th.Linkname = link\n\tcase fm&os.ModeDevice != 0:\n\t\tif fm&os.ModeCharDevice != 0 {\n\t\t\th.Typeflag = TypeChar\n\t\t} else {\n\t\t\th.Typeflag = TypeBlock\n\t\t}\n\tcase fm&os.ModeNamedPipe != 0:\n\t\th.Typeflag = TypeFifo\n\tcase fm&os.ModeSocket != 0:\n\t\treturn nil, fmt.Errorf(\"archive/tar: sockets not supported\")\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"archive/tar: unknown file mode %v\", fm)\n\t}\n\tif fm&os.ModeSetuid != 0 {\n\t\th.Mode |= c_ISUID\n\t}\n\tif fm&os.ModeSetgid != 0 {\n\t\th.Mode |= c_ISGID\n\t}\n\tif fm&os.ModeSticky != 0 {\n\t\th.Mode |= c_ISVTX\n\t}\n\t// If possible, populate additional fields from OS-specific\n\t// FileInfo fields.\n\tif sys, ok := fi.Sys().(*Header); ok {\n\t\t// This FileInfo came from a Header (not the OS). Use the\n\t\t// original Header to populate all remaining fields.\n\t\th.Uid = sys.Uid\n\t\th.Gid = sys.Gid\n\t\th.Uname = sys.Uname\n\t\th.Gname = sys.Gname\n\t\th.AccessTime = sys.AccessTime\n\t\th.ChangeTime = sys.ChangeTime\n\t\tif sys.Xattrs != nil {\n\t\t\th.Xattrs = make(map[string]string)\n\t\t\tfor k, v := range sys.Xattrs {\n\t\t\t\th.Xattrs[k] = v\n\t\t\t}\n\t\t}\n\t\tif sys.Typeflag == TypeLink {\n\t\t\t// hard link\n\t\t\th.Typeflag = TypeLink\n\t\t\th.Size = 0\n\t\t\th.Linkname = sys.Linkname\n\t\t}\n\t\tif sys.PAXRecords != nil {\n\t\t\th.PAXRecords = make(map[string]string)\n\t\t\tfor k, v := range sys.PAXRecords {\n\t\t\t\th.PAXRecords[k] = v\n\t\t\t}\n\t\t}\n\t}\n\tif sysStat != nil {\n\t\treturn h, sysStat(fi, h)\n\t}\n\treturn h, nil\n}\n\n// isHeaderOnlyType checks if the given type flag is of the type that has no\n// data section even if a size is specified.\nfunc isHeaderOnlyType(flag byte) bool {\n\tswitch flag {\n\tcase TypeLink, TypeSymlink, TypeChar, TypeBlock, TypeDir, TypeFifo:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc min(a, b int64) int64 {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/format.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 tar\n\nimport \"strings\"\n\n// Format represents the tar archive format.\n//\n// The original tar format was introduced in Unix V7.\n// Since then, there have been multiple competing formats attempting to\n// standardize or extend the V7 format to overcome its limitations.\n// The most common formats are the USTAR, PAX, and GNU formats,\n// each with their own advantages and limitations.\n//\n// The following table captures the capabilities of each format:\n//\n//\t                  |  USTAR |       PAX |       GNU\n//\t------------------+--------+-----------+----------\n//\tName              |   256B | unlimited | unlimited\n//\tLinkname          |   100B | unlimited | unlimited\n//\tSize              | uint33 | unlimited |    uint89\n//\tMode              | uint21 |    uint21 |    uint57\n//\tUid/Gid           | uint21 | unlimited |    uint57\n//\tUname/Gname       |    32B | unlimited |       32B\n//\tModTime           | uint33 | unlimited |     int89\n//\tAccessTime        |    n/a | unlimited |     int89\n//\tChangeTime        |    n/a | unlimited |     int89\n//\tDevmajor/Devminor | uint21 |    uint21 |    uint57\n//\t------------------+--------+-----------+----------\n//\tstring encoding   |  ASCII |     UTF-8 |    binary\n//\tsub-second times  |     no |       yes |        no\n//\tsparse files      |     no |       yes |       yes\n//\n// The table's upper portion shows the Header fields, where each format reports\n// the maximum number of bytes allowed for each string field and\n// the integer type used to store each numeric field\n// (where timestamps are stored as the number of seconds since the Unix epoch).\n//\n// The table's lower portion shows specialized features of each format,\n// such as supported string encodings, support for sub-second timestamps,\n// or support for sparse files.\n//\n// The Writer currently provides no support for sparse files.\ntype Format int\n\n// Constants to identify various tar formats.\nconst (\n\t// Deliberately hide the meaning of constants from public API.\n\t_ Format = (1 << iota) / 4 // Sequence of 0, 0, 1, 2, 4, 8, etc...\n\n\t// FormatUnknown indicates that the format is unknown.\n\tFormatUnknown\n\n\t// The format of the original Unix V7 tar tool prior to standardization.\n\tformatV7\n\n\t// FormatUSTAR represents the USTAR header format defined in POSIX.1-1988.\n\t//\n\t// While this format is compatible with most tar readers,\n\t// the format has several limitations making it unsuitable for some usages.\n\t// Most notably, it cannot support sparse files, files larger than 8GiB,\n\t// filenames larger than 256 characters, and non-ASCII filenames.\n\t//\n\t// Reference:\n\t//\thttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06\n\tFormatUSTAR\n\n\t// FormatPAX represents the PAX header format defined in POSIX.1-2001.\n\t//\n\t// PAX extends USTAR by writing a special file with Typeflag TypeXHeader\n\t// preceding the original header. This file contains a set of key-value\n\t// records, which are used to overcome USTAR's shortcomings, in addition to\n\t// providing the ability to have sub-second resolution for timestamps.\n\t//\n\t// Some newer formats add their own extensions to PAX by defining their\n\t// own keys and assigning certain semantic meaning to the associated values.\n\t// For example, sparse file support in PAX is implemented using keys\n\t// defined by the GNU manual (e.g., \"GNU.sparse.map\").\n\t//\n\t// Reference:\n\t//\thttp://pubs.opengroup.org/onlinepubs/009695399/utilities/pax.html\n\tFormatPAX\n\n\t// FormatGNU represents the GNU header format.\n\t//\n\t// The GNU header format is older than the USTAR and PAX standards and\n\t// is not compatible with them. The GNU format supports\n\t// arbitrary file sizes, filenames of arbitrary encoding and length,\n\t// sparse files, and other features.\n\t//\n\t// It is recommended that PAX be chosen over GNU unless the target\n\t// application can only parse GNU formatted archives.\n\t//\n\t// Reference:\n\t//\thttps://www.gnu.org/software/tar/manual/html_node/Standard.html\n\tFormatGNU\n\n\t// Schily's tar format, which is incompatible with USTAR.\n\t// This does not cover STAR extensions to the PAX format; these fall under\n\t// the PAX format.\n\tformatSTAR\n\n\tformatMax\n)\n\nfunc (f Format) has(f2 Format) bool   { return f&f2 != 0 }\nfunc (f *Format) mayBe(f2 Format)     { *f |= f2 }\nfunc (f *Format) mayOnlyBe(f2 Format) { *f &= f2 }\nfunc (f *Format) mustNotBe(f2 Format) { *f &^= f2 }\n\nvar formatNames = map[Format]string{\n\tformatV7: \"V7\", FormatUSTAR: \"USTAR\", FormatPAX: \"PAX\", FormatGNU: \"GNU\", formatSTAR: \"STAR\",\n}\n\nfunc (f Format) String() string {\n\tvar ss []string\n\tfor f2 := Format(1); f2 < formatMax; f2 <<= 1 {\n\t\tif f.has(f2) {\n\t\t\tss = append(ss, formatNames[f2])\n\t\t}\n\t}\n\tswitch len(ss) {\n\tcase 0:\n\t\treturn \"<unknown>\"\n\tcase 1:\n\t\treturn ss[0]\n\tdefault:\n\t\treturn \"(\" + strings.Join(ss, \" | \") + \")\"\n\t}\n}\n\n// Magics used to identify various formats.\nconst (\n\tmagicGNU, versionGNU     = \"ustar \", \" \\x00\"\n\tmagicUSTAR, versionUSTAR = \"ustar\\x00\", \"00\"\n\ttrailerSTAR              = \"tar\\x00\"\n)\n\n// Size constants from various tar specifications.\nconst (\n\tblockSize  = 512 // Size of each block in a tar stream\n\tnameSize   = 100 // Max length of the name field in USTAR format\n\tprefixSize = 155 // Max length of the prefix field in USTAR format\n\n\t// Max length of a special file (PAX header, GNU long name or link).\n\t// This matches the limit used by libarchive.\n\tmaxSpecialFileSize = 1 << 20\n)\n\n// blockPadding computes the number of bytes needed to pad offset up to the\n// nearest block edge where 0 <= n < blockSize.\nfunc blockPadding(offset int64) (n int64) {\n\treturn -offset & (blockSize - 1)\n}\n\nvar zeroBlock block\n\ntype block [blockSize]byte\n\n// Convert block to any number of formats.\nfunc (b *block) V7() *headerV7       { return (*headerV7)(b) }\nfunc (b *block) GNU() *headerGNU     { return (*headerGNU)(b) }\nfunc (b *block) STAR() *headerSTAR   { return (*headerSTAR)(b) }\nfunc (b *block) USTAR() *headerUSTAR { return (*headerUSTAR)(b) }\nfunc (b *block) Sparse() sparseArray { return (sparseArray)(b[:]) }\n\n// GetFormat checks that the block is a valid tar header based on the checksum.\n// It then attempts to guess the specific format based on magic values.\n// If the checksum fails, then FormatUnknown is returned.\nfunc (b *block) GetFormat() Format {\n\t// Verify checksum.\n\tvar p parser\n\tvalue := p.parseOctal(b.V7().Chksum())\n\tchksum1, chksum2 := b.ComputeChecksum()\n\tif p.err != nil || (value != chksum1 && value != chksum2) {\n\t\treturn FormatUnknown\n\t}\n\n\t// Guess the magic values.\n\tmagic := string(b.USTAR().Magic())\n\tversion := string(b.USTAR().Version())\n\ttrailer := string(b.STAR().Trailer())\n\tswitch {\n\tcase magic == magicUSTAR && trailer == trailerSTAR:\n\t\treturn formatSTAR\n\tcase magic == magicUSTAR:\n\t\treturn FormatUSTAR | FormatPAX\n\tcase magic == magicGNU && version == versionGNU:\n\t\treturn FormatGNU\n\tdefault:\n\t\treturn formatV7\n\t}\n}\n\n// SetFormat writes the magic values necessary for specified format\n// and then updates the checksum accordingly.\nfunc (b *block) SetFormat(format Format) {\n\t// Set the magic values.\n\tswitch {\n\tcase format.has(formatV7):\n\t\t// Do nothing.\n\tcase format.has(FormatGNU):\n\t\tcopy(b.GNU().Magic(), magicGNU)\n\t\tcopy(b.GNU().Version(), versionGNU)\n\tcase format.has(formatSTAR):\n\t\tcopy(b.STAR().Magic(), magicUSTAR)\n\t\tcopy(b.STAR().Version(), versionUSTAR)\n\t\tcopy(b.STAR().Trailer(), trailerSTAR)\n\tcase format.has(FormatUSTAR | FormatPAX):\n\t\tcopy(b.USTAR().Magic(), magicUSTAR)\n\t\tcopy(b.USTAR().Version(), versionUSTAR)\n\tdefault:\n\t\tpanic(\"invalid format\")\n\t}\n\n\t// Update checksum.\n\t// This field is special in that it is terminated by a NULL then space.\n\tvar f formatter\n\tfield := b.V7().Chksum()\n\tchksum, _ := b.ComputeChecksum() // Possible values are 256..128776\n\tf.formatOctal(field[:7], chksum) // Never fails since 128776 < 262143\n\tfield[7] = ' '\n}\n\n// ComputeChecksum computes the checksum for the header block.\n// POSIX specifies a sum of the unsigned byte values, but the Sun tar used\n// signed byte values.\n// We compute and return both.\nfunc (b *block) ComputeChecksum() (unsigned, signed int64) {\n\tfor i, c := range b {\n\t\tif 148 <= i && i < 156 {\n\t\t\tc = ' ' // Treat the checksum field itself as all spaces.\n\t\t}\n\t\tunsigned += int64(c)\n\t\tsigned += int64(int8(c))\n\t}\n\treturn unsigned, signed\n}\n\n// Reset clears the block with all zeros.\nfunc (b *block) Reset() {\n\t*b = block{}\n}\n\ntype headerV7 [blockSize]byte\n\nfunc (h *headerV7) Name() []byte     { return h[000:][:100] }\nfunc (h *headerV7) Mode() []byte     { return h[100:][:8] }\nfunc (h *headerV7) UID() []byte      { return h[108:][:8] }\nfunc (h *headerV7) GID() []byte      { return h[116:][:8] }\nfunc (h *headerV7) Size() []byte     { return h[124:][:12] }\nfunc (h *headerV7) ModTime() []byte  { return h[136:][:12] }\nfunc (h *headerV7) Chksum() []byte   { return h[148:][:8] }\nfunc (h *headerV7) TypeFlag() []byte { return h[156:][:1] }\nfunc (h *headerV7) LinkName() []byte { return h[157:][:100] }\n\ntype headerGNU [blockSize]byte\n\nfunc (h *headerGNU) V7() *headerV7       { return (*headerV7)(h) }\nfunc (h *headerGNU) Magic() []byte       { return h[257:][:6] }\nfunc (h *headerGNU) Version() []byte     { return h[263:][:2] }\nfunc (h *headerGNU) UserName() []byte    { return h[265:][:32] }\nfunc (h *headerGNU) GroupName() []byte   { return h[297:][:32] }\nfunc (h *headerGNU) DevMajor() []byte    { return h[329:][:8] }\nfunc (h *headerGNU) DevMinor() []byte    { return h[337:][:8] }\nfunc (h *headerGNU) AccessTime() []byte  { return h[345:][:12] }\nfunc (h *headerGNU) ChangeTime() []byte  { return h[357:][:12] }\nfunc (h *headerGNU) Sparse() sparseArray { return (sparseArray)(h[386:][:24*4+1]) }\nfunc (h *headerGNU) RealSize() []byte    { return h[483:][:12] }\n\ntype headerSTAR [blockSize]byte\n\nfunc (h *headerSTAR) V7() *headerV7      { return (*headerV7)(h) }\nfunc (h *headerSTAR) Magic() []byte      { return h[257:][:6] }\nfunc (h *headerSTAR) Version() []byte    { return h[263:][:2] }\nfunc (h *headerSTAR) UserName() []byte   { return h[265:][:32] }\nfunc (h *headerSTAR) GroupName() []byte  { return h[297:][:32] }\nfunc (h *headerSTAR) DevMajor() []byte   { return h[329:][:8] }\nfunc (h *headerSTAR) DevMinor() []byte   { return h[337:][:8] }\nfunc (h *headerSTAR) Prefix() []byte     { return h[345:][:131] }\nfunc (h *headerSTAR) AccessTime() []byte { return h[476:][:12] }\nfunc (h *headerSTAR) ChangeTime() []byte { return h[488:][:12] }\nfunc (h *headerSTAR) Trailer() []byte    { return h[508:][:4] }\n\ntype headerUSTAR [blockSize]byte\n\nfunc (h *headerUSTAR) V7() *headerV7     { return (*headerV7)(h) }\nfunc (h *headerUSTAR) Magic() []byte     { return h[257:][:6] }\nfunc (h *headerUSTAR) Version() []byte   { return h[263:][:2] }\nfunc (h *headerUSTAR) UserName() []byte  { return h[265:][:32] }\nfunc (h *headerUSTAR) GroupName() []byte { return h[297:][:32] }\nfunc (h *headerUSTAR) DevMajor() []byte  { return h[329:][:8] }\nfunc (h *headerUSTAR) DevMinor() []byte  { return h[337:][:8] }\nfunc (h *headerUSTAR) Prefix() []byte    { return h[345:][:155] }\n\ntype sparseArray []byte\n\nfunc (s sparseArray) Entry(i int) sparseElem { return (sparseElem)(s[i*24:]) }\nfunc (s sparseArray) IsExtended() []byte     { return s[24*s.MaxEntries():][:1] }\nfunc (s sparseArray) MaxEntries() int        { return len(s) / 24 }\n\ntype sparseElem []byte\n\nfunc (s sparseElem) Offset() []byte { return s[00:][:12] }\nfunc (s sparseElem) Length() []byte { return s[12:][:12] }\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/reader.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\npackage tar\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Reader provides sequential access to the contents of a tar archive.\n// Reader.Next advances to the next file in the archive (including the first),\n// and then Reader can be treated as an io.Reader to access the file's data.\ntype Reader struct {\n\tr    io.Reader\n\tpad  int64      // Amount of padding (ignored) after current file entry\n\tcurr fileReader // Reader for current file entry\n\tblk  block      // Buffer to use as temporary local storage\n\n\t// err is a persistent error.\n\t// It is only the responsibility of every exported method of Reader to\n\t// ensure that this error is sticky.\n\terr error\n\n\tRawAccounting bool          // Whether to enable the access needed to reassemble the tar from raw bytes. Some performance/memory hit for this.\n\trawBytes      *bytes.Buffer // last raw bits\n}\n\ntype fileReader interface {\n\tio.Reader\n\tfileState\n\n\tWriteTo(io.Writer) (int64, error)\n}\n\n// RawBytes accesses the raw bytes of the archive, apart from the file payload itself.\n// This includes the header and padding.\n//\n// # This call resets the current rawbytes buffer\n//\n// Only when RawAccounting is enabled, otherwise this returns nil\nfunc (tr *Reader) RawBytes() []byte {\n\tif !tr.RawAccounting {\n\t\treturn nil\n\t}\n\tif tr.rawBytes == nil {\n\t\ttr.rawBytes = bytes.NewBuffer(nil)\n\t}\n\tdefer tr.rawBytes.Reset() // if we've read them, then flush them.\n\n\treturn tr.rawBytes.Bytes()\n\n}\n\n// ExpectedPadding returns the number of bytes of padding expected after the last header returned by Next()\nfunc (tr *Reader) ExpectedPadding() int64 {\n\treturn tr.pad\n}\n\n// NewReader creates a new Reader reading from r.\nfunc NewReader(r io.Reader) *Reader {\n\treturn &Reader{r: r, curr: &regFileReader{r, 0}}\n}\n\n// Next advances to the next entry in the tar archive.\n// The Header.Size determines how many bytes can be read for the next file.\n// Any remaining data in the current file is automatically discarded.\n//\n// io.EOF is returned at the end of the input.\nfunc (tr *Reader) Next() (*Header, error) {\n\tif tr.err != nil {\n\t\treturn nil, tr.err\n\t}\n\thdr, err := tr.next()\n\ttr.err = err\n\treturn hdr, err\n}\n\nfunc (tr *Reader) next() (*Header, error) {\n\tvar paxHdrs map[string]string\n\tvar gnuLongName, gnuLongLink string\n\n\tif tr.RawAccounting {\n\t\tif tr.rawBytes == nil {\n\t\t\ttr.rawBytes = bytes.NewBuffer(nil)\n\t\t} else {\n\t\t\ttr.rawBytes.Reset()\n\t\t}\n\t}\n\n\t// Externally, Next iterates through the tar archive as if it is a series of\n\t// files. Internally, the tar format often uses fake \"files\" to add meta\n\t// data that describes the next file. These meta data \"files\" should not\n\t// normally be visible to the outside. As such, this loop iterates through\n\t// one or more \"header files\" until it finds a \"normal file\".\n\tformat := FormatUSTAR | FormatPAX | FormatGNU\n\tfor {\n\t\t// Discard the remainder of the file and any padding.\n\t\tif err := discard(tr, tr.curr.PhysicalRemaining()); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tn, err := tryReadFull(tr.r, tr.blk[:tr.pad])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif tr.RawAccounting {\n\t\t\ttr.rawBytes.Write(tr.blk[:n])\n\t\t}\n\t\ttr.pad = 0\n\n\t\thdr, rawHdr, err := tr.readHeader()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := tr.handleRegularFile(hdr); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tformat.mayOnlyBe(hdr.Format)\n\n\t\t// Check for PAX/GNU special headers and files.\n\t\tswitch hdr.Typeflag {\n\t\tcase TypeXHeader, TypeXGlobalHeader:\n\t\t\tformat.mayOnlyBe(FormatPAX)\n\t\t\tpaxHdrs, err = parsePAX(tr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif hdr.Typeflag == TypeXGlobalHeader {\n\t\t\t\tif err = mergePAX(hdr, paxHdrs); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn &Header{\n\t\t\t\t\tName:       hdr.Name,\n\t\t\t\t\tTypeflag:   hdr.Typeflag,\n\t\t\t\t\tXattrs:     hdr.Xattrs,\n\t\t\t\t\tPAXRecords: hdr.PAXRecords,\n\t\t\t\t\tFormat:     format,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t\tcontinue // This is a meta header affecting the next header\n\t\tcase TypeGNULongName, TypeGNULongLink:\n\t\t\tformat.mayOnlyBe(FormatGNU)\n\t\t\trealname, err := readSpecialFile(tr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif tr.RawAccounting {\n\t\t\t\ttr.rawBytes.Write(realname)\n\t\t\t}\n\n\t\t\tvar p parser\n\t\t\tswitch hdr.Typeflag {\n\t\t\tcase TypeGNULongName:\n\t\t\t\tgnuLongName = p.parseString(realname)\n\t\t\tcase TypeGNULongLink:\n\t\t\t\tgnuLongLink = p.parseString(realname)\n\t\t\t}\n\t\t\tcontinue // This is a meta header affecting the next header\n\t\tdefault:\n\t\t\t// The old GNU sparse format is handled here since it is technically\n\t\t\t// just a regular file with additional attributes.\n\n\t\t\tif err := mergePAX(hdr, paxHdrs); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif gnuLongName != \"\" {\n\t\t\t\thdr.Name = gnuLongName\n\t\t\t}\n\t\t\tif gnuLongLink != \"\" {\n\t\t\t\thdr.Linkname = gnuLongLink\n\t\t\t}\n\t\t\tif hdr.Typeflag == TypeRegA {\n\t\t\t\tif strings.HasSuffix(hdr.Name, \"/\") {\n\t\t\t\t\thdr.Typeflag = TypeDir // Legacy archives use trailing slash for directories\n\t\t\t\t} else {\n\t\t\t\t\thdr.Typeflag = TypeReg\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// The extended headers may have updated the size.\n\t\t\t// Thus, setup the regFileReader again after merging PAX headers.\n\t\t\tif err := tr.handleRegularFile(hdr); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Sparse formats rely on being able to read from the logical data\n\t\t\t// section; there must be a preceding call to handleRegularFile.\n\t\t\tif err := tr.handleSparseFile(hdr, rawHdr); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Set the final guess at the format.\n\t\t\tif format.has(FormatUSTAR) && format.has(FormatPAX) {\n\t\t\t\tformat.mayOnlyBe(FormatUSTAR)\n\t\t\t}\n\t\t\thdr.Format = format\n\t\t\treturn hdr, nil // This is a file, so stop\n\t\t}\n\t}\n}\n\n// handleRegularFile sets up the current file reader and padding such that it\n// can only read the following logical data section. It will properly handle\n// special headers that contain no data section.\nfunc (tr *Reader) handleRegularFile(hdr *Header) error {\n\tnb := hdr.Size\n\tif isHeaderOnlyType(hdr.Typeflag) {\n\t\tnb = 0\n\t}\n\tif nb < 0 {\n\t\treturn ErrHeader\n\t}\n\n\ttr.pad = blockPadding(nb)\n\ttr.curr = &regFileReader{r: tr.r, nb: nb}\n\treturn nil\n}\n\n// handleSparseFile checks if the current file is a sparse format of any type\n// and sets the curr reader appropriately.\nfunc (tr *Reader) handleSparseFile(hdr *Header, rawHdr *block) error {\n\tvar spd sparseDatas\n\tvar err error\n\tif hdr.Typeflag == TypeGNUSparse {\n\t\tspd, err = tr.readOldGNUSparseMap(hdr, rawHdr)\n\t} else {\n\t\tspd, err = tr.readGNUSparsePAXHeaders(hdr)\n\t}\n\n\t// If sp is non-nil, then this is a sparse file.\n\t// Note that it is possible for len(sp) == 0.\n\tif err == nil && spd != nil {\n\t\tif isHeaderOnlyType(hdr.Typeflag) || !validateSparseEntries(spd, hdr.Size) {\n\t\t\treturn ErrHeader\n\t\t}\n\t\tsph := invertSparseEntries(spd, hdr.Size)\n\t\ttr.curr = &sparseFileReader{tr.curr, sph, 0}\n\t}\n\treturn err\n}\n\n// readGNUSparsePAXHeaders checks the PAX headers for GNU sparse headers.\n// If they are found, then this function reads the sparse map and returns it.\n// This assumes that 0.0 headers have already been converted to 0.1 headers\n// by the PAX header parsing logic.\nfunc (tr *Reader) readGNUSparsePAXHeaders(hdr *Header) (sparseDatas, error) {\n\t// Identify the version of GNU headers.\n\tvar is1x0 bool\n\tmajor, minor := hdr.PAXRecords[paxGNUSparseMajor], hdr.PAXRecords[paxGNUSparseMinor]\n\tswitch {\n\tcase major == \"0\" && (minor == \"0\" || minor == \"1\"):\n\t\tis1x0 = false\n\tcase major == \"1\" && minor == \"0\":\n\t\tis1x0 = true\n\tcase major != \"\" || minor != \"\":\n\t\treturn nil, nil // Unknown GNU sparse PAX version\n\tcase hdr.PAXRecords[paxGNUSparseMap] != \"\":\n\t\tis1x0 = false // 0.0 and 0.1 did not have explicit version records, so guess\n\tdefault:\n\t\treturn nil, nil // Not a PAX format GNU sparse file.\n\t}\n\thdr.Format.mayOnlyBe(FormatPAX)\n\n\t// Update hdr from GNU sparse PAX headers.\n\tif name := hdr.PAXRecords[paxGNUSparseName]; name != \"\" {\n\t\thdr.Name = name\n\t}\n\tsize := hdr.PAXRecords[paxGNUSparseSize]\n\tif size == \"\" {\n\t\tsize = hdr.PAXRecords[paxGNUSparseRealSize]\n\t}\n\tif size != \"\" {\n\t\tn, err := strconv.ParseInt(size, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, ErrHeader\n\t\t}\n\t\thdr.Size = n\n\t}\n\n\t// Read the sparse map according to the appropriate format.\n\tif is1x0 {\n\t\treturn readGNUSparseMap1x0(tr.curr)\n\t}\n\treturn readGNUSparseMap0x1(hdr.PAXRecords)\n}\n\n// mergePAX merges paxHdrs into hdr for all relevant fields of Header.\nfunc mergePAX(hdr *Header, paxHdrs map[string]string) (err error) {\n\tfor k, v := range paxHdrs {\n\t\tif v == \"\" {\n\t\t\tcontinue // Keep the original USTAR value\n\t\t}\n\t\tvar id64 int64\n\t\tswitch k {\n\t\tcase paxPath:\n\t\t\thdr.Name = v\n\t\tcase paxLinkpath:\n\t\t\thdr.Linkname = v\n\t\tcase paxUname:\n\t\t\thdr.Uname = v\n\t\tcase paxGname:\n\t\t\thdr.Gname = v\n\t\tcase paxUid:\n\t\t\tid64, err = strconv.ParseInt(v, 10, 64)\n\t\t\thdr.Uid = int(id64) // Integer overflow possible\n\t\tcase paxGid:\n\t\t\tid64, err = strconv.ParseInt(v, 10, 64)\n\t\t\thdr.Gid = int(id64) // Integer overflow possible\n\t\tcase paxAtime:\n\t\t\thdr.AccessTime, err = parsePAXTime(v)\n\t\tcase paxMtime:\n\t\t\thdr.ModTime, err = parsePAXTime(v)\n\t\tcase paxCtime:\n\t\t\thdr.ChangeTime, err = parsePAXTime(v)\n\t\tcase paxSize:\n\t\t\thdr.Size, err = strconv.ParseInt(v, 10, 64)\n\t\tdefault:\n\t\t\tif strings.HasPrefix(k, paxSchilyXattr) {\n\t\t\t\tif hdr.Xattrs == nil {\n\t\t\t\t\thdr.Xattrs = make(map[string]string)\n\t\t\t\t}\n\t\t\t\thdr.Xattrs[k[len(paxSchilyXattr):]] = v\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn ErrHeader\n\t\t}\n\t}\n\thdr.PAXRecords = paxHdrs\n\treturn nil\n}\n\n// parsePAX parses PAX headers.\n// If an extended header (type 'x') is invalid, ErrHeader is returned\nfunc parsePAX(r io.Reader) (map[string]string, error) {\n\tbuf, err := readSpecialFile(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// leaving this function for io.Reader makes it more testable\n\tif tr, ok := r.(*Reader); ok && tr.RawAccounting {\n\t\tif _, err = tr.rawBytes.Write(buf); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tsbuf := string(buf)\n\n\t// For GNU PAX sparse format 0.0 support.\n\t// This function transforms the sparse format 0.0 headers into format 0.1\n\t// headers since 0.0 headers were not PAX compliant.\n\tvar sparseMap []string\n\n\tpaxHdrs := make(map[string]string)\n\tfor len(sbuf) > 0 {\n\t\tkey, value, residual, err := parsePAXRecord(sbuf)\n\t\tif err != nil {\n\t\t\treturn nil, ErrHeader\n\t\t}\n\t\tsbuf = residual\n\n\t\tswitch key {\n\t\tcase paxGNUSparseOffset, paxGNUSparseNumBytes:\n\t\t\t// Validate sparse header order and value.\n\t\t\tif (len(sparseMap)%2 == 0 && key != paxGNUSparseOffset) ||\n\t\t\t\t(len(sparseMap)%2 == 1 && key != paxGNUSparseNumBytes) ||\n\t\t\t\tstrings.Contains(value, \",\") {\n\t\t\t\treturn nil, ErrHeader\n\t\t\t}\n\t\t\tsparseMap = append(sparseMap, value)\n\t\tdefault:\n\t\t\tpaxHdrs[key] = value\n\t\t}\n\t}\n\tif len(sparseMap) > 0 {\n\t\tpaxHdrs[paxGNUSparseMap] = strings.Join(sparseMap, \",\")\n\t}\n\treturn paxHdrs, nil\n}\n\n// readHeader reads the next block header and assumes that the underlying reader\n// is already aligned to a block boundary. It returns the raw block of the\n// header in case further processing is required.\n//\n// The err will be set to io.EOF only when one of the following occurs:\n//   - Exactly 0 bytes are read and EOF is hit.\n//   - Exactly 1 block of zeros is read and EOF is hit.\n//   - At least 2 blocks of zeros are read.\nfunc (tr *Reader) readHeader() (*Header, *block, error) {\n\t// Two blocks of zero bytes marks the end of the archive.\n\tn, err := io.ReadFull(tr.r, tr.blk[:])\n\tif tr.RawAccounting && (err == nil || err == io.EOF) {\n\t\ttr.rawBytes.Write(tr.blk[:n])\n\t}\n\tif err != nil {\n\t\treturn nil, nil, err // EOF is okay here; exactly 0 bytes read\n\t}\n\n\tif bytes.Equal(tr.blk[:], zeroBlock[:]) {\n\t\tn, err = io.ReadFull(tr.r, tr.blk[:])\n\t\tif tr.RawAccounting && (err == nil || err == io.EOF) {\n\t\t\ttr.rawBytes.Write(tr.blk[:n])\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, nil, err // EOF is okay here; exactly 1 block of zeros read\n\t\t}\n\t\tif bytes.Equal(tr.blk[:], zeroBlock[:]) {\n\t\t\treturn nil, nil, io.EOF // normal EOF; exactly 2 block of zeros read\n\t\t}\n\t\treturn nil, nil, ErrHeader // Zero block and then non-zero block\n\t}\n\n\t// Verify the header matches a known format.\n\tformat := tr.blk.GetFormat()\n\tif format == FormatUnknown {\n\t\treturn nil, nil, ErrHeader\n\t}\n\n\tvar p parser\n\thdr := new(Header)\n\n\t// Unpack the V7 header.\n\tv7 := tr.blk.V7()\n\thdr.Typeflag = v7.TypeFlag()[0]\n\thdr.Name = p.parseString(v7.Name())\n\thdr.Linkname = p.parseString(v7.LinkName())\n\thdr.Size = p.parseNumeric(v7.Size())\n\thdr.Mode = p.parseNumeric(v7.Mode())\n\thdr.Uid = int(p.parseNumeric(v7.UID()))\n\thdr.Gid = int(p.parseNumeric(v7.GID()))\n\thdr.ModTime = time.Unix(p.parseNumeric(v7.ModTime()), 0)\n\n\t// Unpack format specific fields.\n\tif format > formatV7 {\n\t\tustar := tr.blk.USTAR()\n\t\thdr.Uname = p.parseString(ustar.UserName())\n\t\thdr.Gname = p.parseString(ustar.GroupName())\n\t\thdr.Devmajor = p.parseNumeric(ustar.DevMajor())\n\t\thdr.Devminor = p.parseNumeric(ustar.DevMinor())\n\n\t\tvar prefix string\n\t\tswitch {\n\t\tcase format.has(FormatUSTAR | FormatPAX):\n\t\t\thdr.Format = format\n\t\t\tustar := tr.blk.USTAR()\n\t\t\tprefix = p.parseString(ustar.Prefix())\n\n\t\t\t// For Format detection, check if block is properly formatted since\n\t\t\t// the parser is more liberal than what USTAR actually permits.\n\t\t\tnotASCII := func(r rune) bool { return r >= 0x80 }\n\t\t\tif bytes.IndexFunc(tr.blk[:], notASCII) >= 0 {\n\t\t\t\thdr.Format = FormatUnknown // Non-ASCII characters in block.\n\t\t\t}\n\t\t\tnul := func(b []byte) bool { return int(b[len(b)-1]) == 0 }\n\t\t\tif !(nul(v7.Size()) && nul(v7.Mode()) && nul(v7.UID()) && nul(v7.GID()) &&\n\t\t\t\tnul(v7.ModTime()) && nul(ustar.DevMajor()) && nul(ustar.DevMinor())) {\n\t\t\t\thdr.Format = FormatUnknown // Numeric fields must end in NUL\n\t\t\t}\n\t\tcase format.has(formatSTAR):\n\t\t\tstar := tr.blk.STAR()\n\t\t\tprefix = p.parseString(star.Prefix())\n\t\t\thdr.AccessTime = time.Unix(p.parseNumeric(star.AccessTime()), 0)\n\t\t\thdr.ChangeTime = time.Unix(p.parseNumeric(star.ChangeTime()), 0)\n\t\tcase format.has(FormatGNU):\n\t\t\thdr.Format = format\n\t\t\tvar p2 parser\n\t\t\tgnu := tr.blk.GNU()\n\t\t\tif b := gnu.AccessTime(); b[0] != 0 {\n\t\t\t\thdr.AccessTime = time.Unix(p2.parseNumeric(b), 0)\n\t\t\t}\n\t\t\tif b := gnu.ChangeTime(); b[0] != 0 {\n\t\t\t\thdr.ChangeTime = time.Unix(p2.parseNumeric(b), 0)\n\t\t\t}\n\n\t\t\t// Prior to Go1.8, the Writer had a bug where it would output\n\t\t\t// an invalid tar file in certain rare situations because the logic\n\t\t\t// incorrectly believed that the old GNU format had a prefix field.\n\t\t\t// This is wrong and leads to an output file that mangles the\n\t\t\t// atime and ctime fields, which are often left unused.\n\t\t\t//\n\t\t\t// In order to continue reading tar files created by former, buggy\n\t\t\t// versions of Go, we skeptically parse the atime and ctime fields.\n\t\t\t// If we are unable to parse them and the prefix field looks like\n\t\t\t// an ASCII string, then we fallback on the pre-Go1.8 behavior\n\t\t\t// of treating these fields as the USTAR prefix field.\n\t\t\t//\n\t\t\t// Note that this will not use the fallback logic for all possible\n\t\t\t// files generated by a pre-Go1.8 toolchain. If the generated file\n\t\t\t// happened to have a prefix field that parses as valid\n\t\t\t// atime and ctime fields (e.g., when they are valid octal strings),\n\t\t\t// then it is impossible to distinguish between an valid GNU file\n\t\t\t// and an invalid pre-Go1.8 file.\n\t\t\t//\n\t\t\t// See https://golang.org/issues/12594\n\t\t\t// See https://golang.org/issues/21005\n\t\t\tif p2.err != nil {\n\t\t\t\thdr.AccessTime, hdr.ChangeTime = time.Time{}, time.Time{}\n\t\t\t\tustar := tr.blk.USTAR()\n\t\t\t\tif s := p.parseString(ustar.Prefix()); isASCII(s) {\n\t\t\t\t\tprefix = s\n\t\t\t\t}\n\t\t\t\thdr.Format = FormatUnknown // Buggy file is not GNU\n\t\t\t}\n\t\t}\n\t\tif len(prefix) > 0 {\n\t\t\thdr.Name = prefix + \"/\" + hdr.Name\n\t\t}\n\t}\n\treturn hdr, &tr.blk, p.err\n}\n\n// readOldGNUSparseMap reads the sparse map from the old GNU sparse format.\n// The sparse map is stored in the tar header if it's small enough.\n// If it's larger than four entries, then one or more extension headers are used\n// to store the rest of the sparse map.\n//\n// The Header.Size does not reflect the size of any extended headers used.\n// Thus, this function will read from the raw io.Reader to fetch extra headers.\n// This method mutates blk in the process.\nfunc (tr *Reader) readOldGNUSparseMap(hdr *Header, blk *block) (sparseDatas, error) {\n\t// Make sure that the input format is GNU.\n\t// Unfortunately, the STAR format also has a sparse header format that uses\n\t// the same type flag but has a completely different layout.\n\tif blk.GetFormat() != FormatGNU {\n\t\treturn nil, ErrHeader\n\t}\n\thdr.Format.mayOnlyBe(FormatGNU)\n\n\tvar p parser\n\thdr.Size = p.parseNumeric(blk.GNU().RealSize())\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\ts := blk.GNU().Sparse()\n\tspd := make(sparseDatas, 0, s.MaxEntries())\n\tfor {\n\t\tfor i := 0; i < s.MaxEntries(); i++ {\n\t\t\t// This termination condition is identical to GNU and BSD tar.\n\t\t\tif s.Entry(i).Offset()[0] == 0x00 {\n\t\t\t\tbreak // Don't return, need to process extended headers (even if empty)\n\t\t\t}\n\t\t\toffset := p.parseNumeric(s.Entry(i).Offset())\n\t\t\tlength := p.parseNumeric(s.Entry(i).Length())\n\t\t\tif p.err != nil {\n\t\t\t\treturn nil, p.err\n\t\t\t}\n\t\t\tspd = append(spd, sparseEntry{Offset: offset, Length: length})\n\t\t}\n\n\t\tif s.IsExtended()[0] > 0 {\n\t\t\t// There are more entries. Read an extension header and parse its entries.\n\t\t\tif _, err := mustReadFull(tr.r, blk[:]); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif tr.RawAccounting {\n\t\t\t\ttr.rawBytes.Write(blk[:])\n\t\t\t}\n\t\t\ts = blk.Sparse()\n\t\t\tcontinue\n\t\t}\n\t\treturn spd, nil // Done\n\t}\n}\n\n// readGNUSparseMap1x0 reads the sparse map as stored in GNU's PAX sparse format\n// version 1.0. The format of the sparse map consists of a series of\n// newline-terminated numeric fields. The first field is the number of entries\n// and is always present. Following this are the entries, consisting of two\n// fields (offset, length). This function must stop reading at the end\n// boundary of the block containing the last newline.\n//\n// Note that the GNU manual says that numeric values should be encoded in octal\n// format. However, the GNU tar utility itself outputs these values in decimal.\n// As such, this library treats values as being encoded in decimal.\nfunc readGNUSparseMap1x0(r io.Reader) (sparseDatas, error) {\n\tvar (\n\t\tcntNewline int64\n\t\tbuf        bytes.Buffer\n\t\tblk        block\n\t\ttotalSize  int\n\t)\n\n\t// feedTokens copies data in blocks from r into buf until there are\n\t// at least cnt newlines in buf. It will not read more blocks than needed.\n\tfeedTokens := func(n int64) error {\n\t\tfor cntNewline < n {\n\t\t\ttotalSize += len(blk)\n\t\t\tif totalSize > maxSpecialFileSize {\n\t\t\t\treturn errSparseTooLong\n\t\t\t}\n\t\t\tif _, err := mustReadFull(r, blk[:]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tbuf.Write(blk[:])\n\t\t\tfor _, c := range blk {\n\t\t\t\tif c == '\\n' {\n\t\t\t\t\tcntNewline++\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\t// nextToken gets the next token delimited by a newline. This assumes that\n\t// at least one newline exists in the buffer.\n\tnextToken := func() string {\n\t\tcntNewline--\n\t\ttok, _ := buf.ReadString('\\n')\n\t\treturn strings.TrimRight(tok, \"\\n\")\n\t}\n\n\t// Parse for the number of entries.\n\t// Use integer overflow resistant math to check this.\n\tif err := feedTokens(1); err != nil {\n\t\treturn nil, err\n\t}\n\tnumEntries, err := strconv.ParseInt(nextToken(), 10, 0) // Intentionally parse as native int\n\tif err != nil || numEntries < 0 || int(2*numEntries) < int(numEntries) {\n\t\treturn nil, ErrHeader\n\t}\n\n\t// Parse for all member entries.\n\t// numEntries is trusted after this since feedTokens limits the number of\n\t// tokens based on maxSpecialFileSize.\n\tif err := feedTokens(2 * numEntries); err != nil {\n\t\treturn nil, err\n\t}\n\tspd := make(sparseDatas, 0, numEntries)\n\tfor i := int64(0); i < numEntries; i++ {\n\t\toffset, err1 := strconv.ParseInt(nextToken(), 10, 64)\n\t\tlength, err2 := strconv.ParseInt(nextToken(), 10, 64)\n\t\tif err1 != nil || err2 != nil {\n\t\t\treturn nil, ErrHeader\n\t\t}\n\t\tspd = append(spd, sparseEntry{Offset: offset, Length: length})\n\t}\n\treturn spd, nil\n}\n\n// readGNUSparseMap0x1 reads the sparse map as stored in GNU's PAX sparse format\n// version 0.1. The sparse map is stored in the PAX headers.\nfunc readGNUSparseMap0x1(paxHdrs map[string]string) (sparseDatas, error) {\n\t// Get number of entries.\n\t// Use integer overflow resistant math to check this.\n\tnumEntriesStr := paxHdrs[paxGNUSparseNumBlocks]\n\tnumEntries, err := strconv.ParseInt(numEntriesStr, 10, 0) // Intentionally parse as native int\n\tif err != nil || numEntries < 0 || int(2*numEntries) < int(numEntries) {\n\t\treturn nil, ErrHeader\n\t}\n\n\t// There should be two numbers in sparseMap for each entry.\n\tsparseMap := strings.Split(paxHdrs[paxGNUSparseMap], \",\")\n\tif len(sparseMap) == 1 && sparseMap[0] == \"\" {\n\t\tsparseMap = sparseMap[:0]\n\t}\n\tif int64(len(sparseMap)) != 2*numEntries {\n\t\treturn nil, ErrHeader\n\t}\n\n\t// Loop through the entries in the sparse map.\n\t// numEntries is trusted now.\n\tspd := make(sparseDatas, 0, numEntries)\n\tfor len(sparseMap) >= 2 {\n\t\toffset, err1 := strconv.ParseInt(sparseMap[0], 10, 64)\n\t\tlength, err2 := strconv.ParseInt(sparseMap[1], 10, 64)\n\t\tif err1 != nil || err2 != nil {\n\t\t\treturn nil, ErrHeader\n\t\t}\n\t\tspd = append(spd, sparseEntry{Offset: offset, Length: length})\n\t\tsparseMap = sparseMap[2:]\n\t}\n\treturn spd, nil\n}\n\n// Read reads from the current file in the tar archive.\n// It returns (0, io.EOF) when it reaches the end of that file,\n// until Next is called to advance to the next file.\n//\n// If the current file is sparse, then the regions marked as a hole\n// are read back as NUL-bytes.\n//\n// Calling Read on special types like TypeLink, TypeSymlink, TypeChar,\n// TypeBlock, TypeDir, and TypeFifo returns (0, io.EOF) regardless of what\n// the Header.Size claims.\nfunc (tr *Reader) Read(b []byte) (int, error) {\n\tif tr.err != nil {\n\t\treturn 0, tr.err\n\t}\n\tn, err := tr.curr.Read(b)\n\tif err != nil && err != io.EOF {\n\t\ttr.err = err\n\t}\n\treturn n, err\n}\n\n// writeTo writes the content of the current file to w.\n// The bytes written matches the number of remaining bytes in the current file.\n//\n// If the current file is sparse and w is an io.WriteSeeker,\n// then writeTo uses Seek to skip past holes defined in Header.SparseHoles,\n// assuming that skipped regions are filled with NULs.\n// This always writes the last byte to ensure w is the right size.\n//\n// TODO(dsnet): Re-export this when adding sparse file support.\n// See https://golang.org/issue/22735\nfunc (tr *Reader) writeTo(w io.Writer) (int64, error) {\n\tif tr.err != nil {\n\t\treturn 0, tr.err\n\t}\n\tn, err := tr.curr.WriteTo(w)\n\tif err != nil {\n\t\ttr.err = err\n\t}\n\treturn n, err\n}\n\n// regFileReader is a fileReader for reading data from a regular file entry.\ntype regFileReader struct {\n\tr  io.Reader // Underlying Reader\n\tnb int64     // Number of remaining bytes to read\n}\n\nfunc (fr *regFileReader) Read(b []byte) (n int, err error) {\n\tif int64(len(b)) > fr.nb {\n\t\tb = b[:fr.nb]\n\t}\n\tif len(b) > 0 {\n\t\tn, err = fr.r.Read(b)\n\t\tfr.nb -= int64(n)\n\t}\n\tswitch {\n\tcase err == io.EOF && fr.nb > 0:\n\t\treturn n, io.ErrUnexpectedEOF\n\tcase err == nil && fr.nb == 0:\n\t\treturn n, io.EOF\n\tdefault:\n\t\treturn n, err\n\t}\n}\n\nfunc (fr *regFileReader) WriteTo(w io.Writer) (int64, error) {\n\treturn io.Copy(w, struct{ io.Reader }{fr})\n}\n\nfunc (fr regFileReader) LogicalRemaining() int64 {\n\treturn fr.nb\n}\n\nfunc (fr regFileReader) PhysicalRemaining() int64 {\n\treturn fr.nb\n}\n\n// sparseFileReader is a fileReader for reading data from a sparse file entry.\ntype sparseFileReader struct {\n\tfr  fileReader  // Underlying fileReader\n\tsp  sparseHoles // Normalized list of sparse holes\n\tpos int64       // Current position in sparse file\n}\n\nfunc (sr *sparseFileReader) Read(b []byte) (n int, err error) {\n\tfinished := int64(len(b)) >= sr.LogicalRemaining()\n\tif finished {\n\t\tb = b[:sr.LogicalRemaining()]\n\t}\n\n\tb0 := b\n\tendPos := sr.pos + int64(len(b))\n\tfor endPos > sr.pos && err == nil {\n\t\tvar nf int // Bytes read in fragment\n\t\tholeStart, holeEnd := sr.sp[0].Offset, sr.sp[0].endOffset()\n\t\tif sr.pos < holeStart { // In a data fragment\n\t\t\tbf := b[:min(int64(len(b)), holeStart-sr.pos)]\n\t\t\tnf, err = tryReadFull(sr.fr, bf)\n\t\t} else { // In a hole fragment\n\t\t\tbf := b[:min(int64(len(b)), holeEnd-sr.pos)]\n\t\t\tnf, err = tryReadFull(zeroReader{}, bf)\n\t\t}\n\t\tb = b[nf:]\n\t\tsr.pos += int64(nf)\n\t\tif sr.pos >= holeEnd && len(sr.sp) > 1 {\n\t\t\tsr.sp = sr.sp[1:] // Ensure last fragment always remains\n\t\t}\n\t}\n\n\tn = len(b0) - len(b)\n\tswitch {\n\tcase err == io.EOF:\n\t\treturn n, errMissData // Less data in dense file than sparse file\n\tcase err != nil:\n\t\treturn n, err\n\tcase sr.LogicalRemaining() == 0 && sr.PhysicalRemaining() > 0:\n\t\treturn n, errUnrefData // More data in dense file than sparse file\n\tcase finished:\n\t\treturn n, io.EOF\n\tdefault:\n\t\treturn n, nil\n\t}\n}\n\nfunc (sr *sparseFileReader) WriteTo(w io.Writer) (n int64, err error) {\n\tws, ok := w.(io.WriteSeeker)\n\tif ok {\n\t\tif _, err := ws.Seek(0, io.SeekCurrent); err != nil {\n\t\t\tok = false // Not all io.Seeker can really seek\n\t\t}\n\t}\n\tif !ok {\n\t\treturn io.Copy(w, struct{ io.Reader }{sr})\n\t}\n\n\tvar writeLastByte bool\n\tpos0 := sr.pos\n\tfor sr.LogicalRemaining() > 0 && !writeLastByte && err == nil {\n\t\tvar nf int64 // Size of fragment\n\t\tholeStart, holeEnd := sr.sp[0].Offset, sr.sp[0].endOffset()\n\t\tif sr.pos < holeStart { // In a data fragment\n\t\t\tnf = holeStart - sr.pos\n\t\t\tnf, err = io.CopyN(ws, sr.fr, nf)\n\t\t} else { // In a hole fragment\n\t\t\tnf = holeEnd - sr.pos\n\t\t\tif sr.PhysicalRemaining() == 0 {\n\t\t\t\twriteLastByte = true\n\t\t\t\tnf--\n\t\t\t}\n\t\t\t_, err = ws.Seek(nf, io.SeekCurrent)\n\t\t}\n\t\tsr.pos += nf\n\t\tif sr.pos >= holeEnd && len(sr.sp) > 1 {\n\t\t\tsr.sp = sr.sp[1:] // Ensure last fragment always remains\n\t\t}\n\t}\n\n\t// If the last fragment is a hole, then seek to 1-byte before EOF, and\n\t// write a single byte to ensure the file is the right size.\n\tif writeLastByte && err == nil {\n\t\t_, err = ws.Write([]byte{0})\n\t\tsr.pos++\n\t}\n\n\tn = sr.pos - pos0\n\tswitch {\n\tcase err == io.EOF:\n\t\treturn n, errMissData // Less data in dense file than sparse file\n\tcase err != nil:\n\t\treturn n, err\n\tcase sr.LogicalRemaining() == 0 && sr.PhysicalRemaining() > 0:\n\t\treturn n, errUnrefData // More data in dense file than sparse file\n\tdefault:\n\t\treturn n, nil\n\t}\n}\n\nfunc (sr sparseFileReader) LogicalRemaining() int64 {\n\treturn sr.sp[len(sr.sp)-1].endOffset() - sr.pos\n}\nfunc (sr sparseFileReader) PhysicalRemaining() int64 {\n\treturn sr.fr.PhysicalRemaining()\n}\n\ntype zeroReader struct{}\n\nfunc (zeroReader) Read(b []byte) (int, error) {\n\tfor i := range b {\n\t\tb[i] = 0\n\t}\n\treturn len(b), nil\n}\n\n// mustReadFull is like io.ReadFull except it returns\n// io.ErrUnexpectedEOF when io.EOF is hit before len(b) bytes are read.\nfunc mustReadFull(r io.Reader, b []byte) (int, error) {\n\tn, err := tryReadFull(r, b)\n\tif err == io.EOF {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\treturn n, err\n}\n\n// tryReadFull is like io.ReadFull except it returns\n// io.EOF when it is hit before len(b) bytes are read.\nfunc tryReadFull(r io.Reader, b []byte) (n int, err error) {\n\tfor len(b) > n && err == nil {\n\t\tvar nn int\n\t\tnn, err = r.Read(b[n:])\n\t\tn += nn\n\t}\n\tif len(b) == n && err == io.EOF {\n\t\terr = nil\n\t}\n\treturn n, err\n}\n\n// readSpecialFile is like io.ReadAll except it returns\n// ErrFieldTooLong if more than maxSpecialFileSize is read.\nfunc readSpecialFile(r io.Reader) ([]byte, error) {\n\tbuf, err := io.ReadAll(io.LimitReader(r, maxSpecialFileSize+1))\n\tif len(buf) > maxSpecialFileSize {\n\t\treturn nil, ErrFieldTooLong\n\t}\n\treturn buf, err\n}\n\n// discard skips n bytes in r, reporting an error if unable to do so.\nfunc discard(tr *Reader, n int64) error {\n\tvar seekSkipped, copySkipped int64\n\tvar err error\n\tr := tr.r\n\tif tr.RawAccounting {\n\n\t\tcopySkipped, err = io.CopyN(tr.rawBytes, tr.r, n)\n\t\tgoto out\n\t}\n\n\t// If possible, Seek to the last byte before the end of the data section.\n\t// Do this because Seek is often lazy about reporting errors; this will mask\n\t// the fact that the stream may be truncated. We can rely on the\n\t// io.CopyN done shortly afterwards to trigger any IO errors.\n\tif sr, ok := r.(io.Seeker); ok && n > 1 {\n\t\t// Not all io.Seeker can actually Seek. For example, os.Stdin implements\n\t\t// io.Seeker, but calling Seek always returns an error and performs\n\t\t// no action. Thus, we try an innocent seek to the current position\n\t\t// to see if Seek is really supported.\n\t\tpos1, err := sr.Seek(0, io.SeekCurrent)\n\t\tif pos1 >= 0 && err == nil {\n\t\t\t// Seek seems supported, so perform the real Seek.\n\t\t\tpos2, err := sr.Seek(n-1, io.SeekCurrent)\n\t\t\tif pos2 < 0 || err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tseekSkipped = pos2 - pos1\n\t\t}\n\t}\n\n\tcopySkipped, err = io.CopyN(io.Discard, r, n-seekSkipped)\nout:\n\tif err == io.EOF && seekSkipped+copySkipped < n {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/stat_actime1.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// +build linux dragonfly openbsd solaris\n\npackage tar\n\nimport (\n\t\"syscall\"\n\t\"time\"\n)\n\nfunc statAtime(st *syscall.Stat_t) time.Time {\n\treturn time.Unix(st.Atim.Unix())\n}\n\nfunc statCtime(st *syscall.Stat_t) time.Time {\n\treturn time.Unix(st.Ctim.Unix())\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/stat_actime2.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// +build darwin freebsd netbsd\n\npackage tar\n\nimport (\n\t\"syscall\"\n\t\"time\"\n)\n\nfunc statAtime(st *syscall.Stat_t) time.Time {\n\treturn time.Unix(st.Atimespec.Unix())\n}\n\nfunc statCtime(st *syscall.Stat_t) time.Time {\n\treturn time.Unix(st.Ctimespec.Unix())\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/stat_unix.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// +build linux darwin dragonfly freebsd openbsd netbsd solaris\n\npackage tar\n\nimport (\n\t\"os\"\n\t\"os/user\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n\t\"syscall\"\n)\n\nfunc init() {\n\tsysStat = statUnix\n}\n\n// userMap and groupMap caches UID and GID lookups for performance reasons.\n// The downside is that renaming uname or gname by the OS never takes effect.\nvar userMap, groupMap sync.Map // map[int]string\n\nfunc statUnix(fi os.FileInfo, h *Header) error {\n\tsys, ok := fi.Sys().(*syscall.Stat_t)\n\tif !ok {\n\t\treturn nil\n\t}\n\th.Uid = int(sys.Uid)\n\th.Gid = int(sys.Gid)\n\n\t// Best effort at populating Uname and Gname.\n\t// The os/user functions may fail for any number of reasons\n\t// (not implemented on that platform, cgo not enabled, etc).\n\tif u, ok := userMap.Load(h.Uid); ok {\n\t\th.Uname = u.(string)\n\t} else if u, err := user.LookupId(strconv.Itoa(h.Uid)); err == nil {\n\t\th.Uname = u.Username\n\t\tuserMap.Store(h.Uid, h.Uname)\n\t}\n\tif g, ok := groupMap.Load(h.Gid); ok {\n\t\th.Gname = g.(string)\n\t} else if g, err := user.LookupGroupId(strconv.Itoa(h.Gid)); err == nil {\n\t\th.Gname = g.Name\n\t\tgroupMap.Store(h.Gid, h.Gname)\n\t}\n\n\th.AccessTime = statAtime(sys)\n\th.ChangeTime = statCtime(sys)\n\n\t// Best effort at populating Devmajor and Devminor.\n\tif h.Typeflag == TypeChar || h.Typeflag == TypeBlock {\n\t\tdev := uint64(sys.Rdev) // May be int32 or uint32\n\t\tswitch runtime.GOOS {\n\t\tcase \"linux\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_linux.go.\n\t\t\tmajor := uint32((dev & 0x00000000000fff00) >> 8)\n\t\t\tmajor |= uint32((dev & 0xfffff00000000000) >> 32)\n\t\t\tminor := uint32((dev & 0x00000000000000ff) >> 0)\n\t\t\tminor |= uint32((dev & 0x00000ffffff00000) >> 12)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tcase \"darwin\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_darwin.go.\n\t\t\tmajor := uint32((dev >> 24) & 0xff)\n\t\t\tminor := uint32(dev & 0xffffff)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tcase \"dragonfly\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_dragonfly.go.\n\t\t\tmajor := uint32((dev >> 8) & 0xff)\n\t\t\tminor := uint32(dev & 0xffff00ff)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tcase \"freebsd\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_freebsd.go.\n\t\t\tmajor := uint32((dev >> 8) & 0xff)\n\t\t\tminor := uint32(dev & 0xffff00ff)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tcase \"netbsd\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_netbsd.go.\n\t\t\tmajor := uint32((dev & 0x000fff00) >> 8)\n\t\t\tminor := uint32((dev & 0x000000ff) >> 0)\n\t\t\tminor |= uint32((dev & 0xfff00000) >> 12)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tcase \"openbsd\":\n\t\t\t// Copied from golang.org/x/sys/unix/dev_openbsd.go.\n\t\t\tmajor := uint32((dev & 0x0000ff00) >> 8)\n\t\t\tminor := uint32((dev & 0x000000ff) >> 0)\n\t\t\tminor |= uint32((dev & 0xffff0000) >> 8)\n\t\t\th.Devmajor, h.Devminor = int64(major), int64(minor)\n\t\tdefault:\n\t\t\t// TODO: Implement solaris (see https://golang.org/issue/8106)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/strconv.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 tar\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// hasNUL reports whether the NUL character exists within s.\nfunc hasNUL(s string) bool {\n\treturn strings.IndexByte(s, 0) >= 0\n}\n\n// isASCII reports whether the input is an ASCII C-style string.\nfunc isASCII(s string) bool {\n\tfor _, c := range s {\n\t\tif c >= 0x80 || c == 0x00 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// toASCII converts the input to an ASCII C-style string.\n// This a best effort conversion, so invalid characters are dropped.\nfunc toASCII(s string) string {\n\tif isASCII(s) {\n\t\treturn s\n\t}\n\tb := make([]byte, 0, len(s))\n\tfor _, c := range s {\n\t\tif c < 0x80 && c != 0x00 {\n\t\t\tb = append(b, byte(c))\n\t\t}\n\t}\n\treturn string(b)\n}\n\ntype parser struct {\n\terr error // Last error seen\n}\n\ntype formatter struct {\n\terr error // Last error seen\n}\n\n// parseString parses bytes as a NUL-terminated C-style string.\n// If a NUL byte is not found then the whole slice is returned as a string.\nfunc (*parser) parseString(b []byte) string {\n\tif i := bytes.IndexByte(b, 0); i >= 0 {\n\t\treturn string(b[:i])\n\t}\n\treturn string(b)\n}\n\n// formatString copies s into b, NUL-terminating if possible.\nfunc (f *formatter) formatString(b []byte, s string) {\n\tif len(s) > len(b) {\n\t\tf.err = ErrFieldTooLong\n\t}\n\tcopy(b, s)\n\tif len(s) < len(b) {\n\t\tb[len(s)] = 0\n\t}\n\n\t// Some buggy readers treat regular files with a trailing slash\n\t// in the V7 path field as a directory even though the full path\n\t// recorded elsewhere (e.g., via PAX record) contains no trailing slash.\n\tif len(s) > len(b) && b[len(b)-1] == '/' {\n\t\tn := len(strings.TrimRight(s[:len(b)], \"/\"))\n\t\tb[n] = 0 // Replace trailing slash with NUL terminator\n\t}\n}\n\n// fitsInBase256 reports whether x can be encoded into n bytes using base-256\n// encoding. Unlike octal encoding, base-256 encoding does not require that the\n// string ends with a NUL character. Thus, all n bytes are available for output.\n//\n// If operating in binary mode, this assumes strict GNU binary mode; which means\n// that the first byte can only be either 0x80 or 0xff. Thus, the first byte is\n// equivalent to the sign bit in two's complement form.\nfunc fitsInBase256(n int, x int64) bool {\n\tbinBits := uint(n-1) * 8\n\treturn n >= 9 || (x >= -1<<binBits && x < 1<<binBits)\n}\n\n// parseNumeric parses the input as being encoded in either base-256 or octal.\n// This function may return negative numbers.\n// If parsing fails or an integer overflow occurs, err will be set.\nfunc (p *parser) parseNumeric(b []byte) int64 {\n\t// Check for base-256 (binary) format first.\n\t// If the first bit is set, then all following bits constitute a two's\n\t// complement encoded number in big-endian byte order.\n\tif len(b) > 0 && b[0]&0x80 != 0 {\n\t\t// Handling negative numbers relies on the following identity:\n\t\t//\t-a-1 == ^a\n\t\t//\n\t\t// If the number is negative, we use an inversion mask to invert the\n\t\t// data bytes and treat the value as an unsigned number.\n\t\tvar inv byte // 0x00 if positive or zero, 0xff if negative\n\t\tif b[0]&0x40 != 0 {\n\t\t\tinv = 0xff\n\t\t}\n\n\t\tvar x uint64\n\t\tfor i, c := range b {\n\t\t\tc ^= inv // Inverts c only if inv is 0xff, otherwise does nothing\n\t\t\tif i == 0 {\n\t\t\t\tc &= 0x7f // Ignore signal bit in first byte\n\t\t\t}\n\t\t\tif (x >> 56) > 0 {\n\t\t\t\tp.err = ErrHeader // Integer overflow\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tx = x<<8 | uint64(c)\n\t\t}\n\t\tif (x >> 63) > 0 {\n\t\t\tp.err = ErrHeader // Integer overflow\n\t\t\treturn 0\n\t\t}\n\t\tif inv == 0xff {\n\t\t\treturn ^int64(x)\n\t\t}\n\t\treturn int64(x)\n\t}\n\n\t// Normal case is base-8 (octal) format.\n\treturn p.parseOctal(b)\n}\n\n// formatNumeric encodes x into b using base-8 (octal) encoding if possible.\n// Otherwise it will attempt to use base-256 (binary) encoding.\nfunc (f *formatter) formatNumeric(b []byte, x int64) {\n\tif fitsInOctal(len(b), x) {\n\t\tf.formatOctal(b, x)\n\t\treturn\n\t}\n\n\tif fitsInBase256(len(b), x) {\n\t\tfor i := len(b) - 1; i >= 0; i-- {\n\t\t\tb[i] = byte(x)\n\t\t\tx >>= 8\n\t\t}\n\t\tb[0] |= 0x80 // Highest bit indicates binary format\n\t\treturn\n\t}\n\n\tf.formatOctal(b, 0) // Last resort, just write zero\n\tf.err = ErrFieldTooLong\n}\n\nfunc (p *parser) parseOctal(b []byte) int64 {\n\t// Because unused fields are filled with NULs, we need\n\t// to skip leading NULs. Fields may also be padded with\n\t// spaces or NULs.\n\t// So we remove leading and trailing NULs and spaces to\n\t// be sure.\n\tb = bytes.Trim(b, \" \\x00\")\n\n\tif len(b) == 0 {\n\t\treturn 0\n\t}\n\tx, perr := strconv.ParseUint(p.parseString(b), 8, 64)\n\tif perr != nil {\n\t\tp.err = ErrHeader\n\t}\n\treturn int64(x)\n}\n\nfunc (f *formatter) formatOctal(b []byte, x int64) {\n\tif !fitsInOctal(len(b), x) {\n\t\tx = 0 // Last resort, just write zero\n\t\tf.err = ErrFieldTooLong\n\t}\n\n\ts := strconv.FormatInt(x, 8)\n\t// Add leading zeros, but leave room for a NUL.\n\tif n := len(b) - len(s) - 1; n > 0 {\n\t\ts = strings.Repeat(\"0\", n) + s\n\t}\n\tf.formatString(b, s)\n}\n\n// fitsInOctal reports whether the integer x fits in a field n-bytes long\n// using octal encoding with the appropriate NUL terminator.\nfunc fitsInOctal(n int, x int64) bool {\n\toctBits := uint(n-1) * 3\n\treturn x >= 0 && (n >= 22 || x < 1<<octBits)\n}\n\n// parsePAXTime takes a string of the form %d.%d as described in the PAX\n// specification. Note that this implementation allows for negative timestamps,\n// which is allowed for by the PAX specification, but not always portable.\nfunc parsePAXTime(s string) (time.Time, error) {\n\tconst maxNanoSecondDigits = 9\n\n\t// Split string into seconds and sub-seconds parts.\n\tss, sn := s, \"\"\n\tif pos := strings.IndexByte(s, '.'); pos >= 0 {\n\t\tss, sn = s[:pos], s[pos+1:]\n\t}\n\n\t// Parse the seconds.\n\tsecs, err := strconv.ParseInt(ss, 10, 64)\n\tif err != nil {\n\t\treturn time.Time{}, ErrHeader\n\t}\n\tif len(sn) == 0 {\n\t\treturn time.Unix(secs, 0), nil // No sub-second values\n\t}\n\n\t// Parse the nanoseconds.\n\tif strings.Trim(sn, \"0123456789\") != \"\" {\n\t\treturn time.Time{}, ErrHeader\n\t}\n\tif len(sn) < maxNanoSecondDigits {\n\t\tsn += strings.Repeat(\"0\", maxNanoSecondDigits-len(sn)) // Right pad\n\t} else {\n\t\tsn = sn[:maxNanoSecondDigits] // Right truncate\n\t}\n\tnsecs, _ := strconv.ParseInt(sn, 10, 64) // Must succeed\n\tif len(ss) > 0 && ss[0] == '-' {\n\t\treturn time.Unix(secs, -1*nsecs), nil // Negative correction\n\t}\n\treturn time.Unix(secs, nsecs), nil\n}\n\n// formatPAXTime converts ts into a time of the form %d.%d as described in the\n// PAX specification. This function is capable of negative timestamps.\nfunc formatPAXTime(ts time.Time) (s string) {\n\tsecs, nsecs := ts.Unix(), ts.Nanosecond()\n\tif nsecs == 0 {\n\t\treturn strconv.FormatInt(secs, 10)\n\t}\n\n\t// If seconds is negative, then perform correction.\n\tsign := \"\"\n\tif secs < 0 {\n\t\tsign = \"-\"             // Remember sign\n\t\tsecs = -(secs + 1)     // Add a second to secs\n\t\tnsecs = -(nsecs - 1E9) // Take that second away from nsecs\n\t}\n\treturn strings.TrimRight(fmt.Sprintf(\"%s%d.%09d\", sign, secs, nsecs), \"0\")\n}\n\n// parsePAXRecord parses the input PAX record string into a key-value pair.\n// If parsing is successful, it will slice off the currently read record and\n// return the remainder as r.\nfunc parsePAXRecord(s string) (k, v, r string, err error) {\n\t// The size field ends at the first space.\n\tsp := strings.IndexByte(s, ' ')\n\tif sp == -1 {\n\t\treturn \"\", \"\", s, ErrHeader\n\t}\n\n\t// Parse the first token as a decimal integer.\n\tn, perr := strconv.ParseInt(s[:sp], 10, 0) // Intentionally parse as native int\n\tif perr != nil || n < 5 || int64(len(s)) < n {\n\t\treturn \"\", \"\", s, ErrHeader\n\t}\n\n\t// Extract everything between the space and the final newline.\n\trec, nl, rem := s[sp+1:n-1], s[n-1:n], s[n:]\n\tif nl != \"\\n\" {\n\t\treturn \"\", \"\", s, ErrHeader\n\t}\n\n\t// The first equals separates the key from the value.\n\teq := strings.IndexByte(rec, '=')\n\tif eq == -1 {\n\t\treturn \"\", \"\", s, ErrHeader\n\t}\n\tk, v = rec[:eq], rec[eq+1:]\n\n\tif !validPAXRecord(k, v) {\n\t\treturn \"\", \"\", s, ErrHeader\n\t}\n\treturn k, v, rem, nil\n}\n\n// formatPAXRecord formats a single PAX record, prefixing it with the\n// appropriate length.\nfunc formatPAXRecord(k, v string) (string, error) {\n\tif !validPAXRecord(k, v) {\n\t\treturn \"\", ErrHeader\n\t}\n\n\tconst padding = 3 // Extra padding for ' ', '=', and '\\n'\n\tsize := len(k) + len(v) + padding\n\tsize += len(strconv.Itoa(size))\n\trecord := strconv.Itoa(size) + \" \" + k + \"=\" + v + \"\\n\"\n\n\t// Final adjustment if adding size field increased the record size.\n\tif len(record) != size {\n\t\tsize = len(record)\n\t\trecord = strconv.Itoa(size) + \" \" + k + \"=\" + v + \"\\n\"\n\t}\n\treturn record, nil\n}\n\n// validPAXRecord reports whether the key-value pair is valid where each\n// record is formatted as:\n//\t\"%d %s=%s\\n\" % (size, key, value)\n//\n// Keys and values should be UTF-8, but the number of bad writers out there\n// forces us to be a more liberal.\n// Thus, we only reject all keys with NUL, and only reject NULs in values\n// for the PAX version of the USTAR string fields.\n// The key must not contain an '=' character.\nfunc validPAXRecord(k, v string) bool {\n\tif k == \"\" || strings.IndexByte(k, '=') >= 0 {\n\t\treturn false\n\t}\n\tswitch k {\n\tcase paxPath, paxLinkpath, paxUname, paxGname:\n\t\treturn !hasNUL(v)\n\tdefault:\n\t\treturn !hasNUL(k)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/vbatts/tar-split/archive/tar/writer.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\npackage tar\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Writer provides sequential writing of a tar archive.\n// Write.WriteHeader begins a new file with the provided Header,\n// and then Writer can be treated as an io.Writer to supply that file's data.\ntype Writer struct {\n\tw    io.Writer\n\tpad  int64      // Amount of padding to write after current file entry\n\tcurr fileWriter // Writer for current file entry\n\thdr  Header     // Shallow copy of Header that is safe for mutations\n\tblk  block      // Buffer to use as temporary local storage\n\n\t// err is a persistent error.\n\t// It is only the responsibility of every exported method of Writer to\n\t// ensure that this error is sticky.\n\terr error\n}\n\n// NewWriter creates a new Writer writing to w.\nfunc NewWriter(w io.Writer) *Writer {\n\treturn &Writer{w: w, curr: &regFileWriter{w, 0}}\n}\n\ntype fileWriter interface {\n\tio.Writer\n\tfileState\n\n\tReadFrom(io.Reader) (int64, error)\n}\n\n// Flush finishes writing the current file's block padding.\n// The current file must be fully written before Flush can be called.\n//\n// This is unnecessary as the next call to WriteHeader or Close\n// will implicitly flush out the file's padding.\nfunc (tw *Writer) Flush() error {\n\tif tw.err != nil {\n\t\treturn tw.err\n\t}\n\tif nb := tw.curr.LogicalRemaining(); nb > 0 {\n\t\treturn fmt.Errorf(\"archive/tar: missed writing %d bytes\", nb)\n\t}\n\tif _, tw.err = tw.w.Write(zeroBlock[:tw.pad]); tw.err != nil {\n\t\treturn tw.err\n\t}\n\ttw.pad = 0\n\treturn nil\n}\n\n// WriteHeader writes hdr and prepares to accept the file's contents.\n// The Header.Size determines how many bytes can be written for the next file.\n// If the current file is not fully written, then this returns an error.\n// This implicitly flushes any padding necessary before writing the header.\nfunc (tw *Writer) WriteHeader(hdr *Header) error {\n\tif err := tw.Flush(); err != nil {\n\t\treturn err\n\t}\n\ttw.hdr = *hdr // Shallow copy of Header\n\n\t// Avoid usage of the legacy TypeRegA flag, and automatically promote\n\t// it to use TypeReg or TypeDir.\n\tif tw.hdr.Typeflag == TypeRegA {\n\t\tif strings.HasSuffix(tw.hdr.Name, \"/\") {\n\t\t\ttw.hdr.Typeflag = TypeDir\n\t\t} else {\n\t\t\ttw.hdr.Typeflag = TypeReg\n\t\t}\n\t}\n\n\t// Round ModTime and ignore AccessTime and ChangeTime unless\n\t// the format is explicitly chosen.\n\t// This ensures nominal usage of WriteHeader (without specifying the format)\n\t// does not always result in the PAX format being chosen, which\n\t// causes a 1KiB increase to every header.\n\tif tw.hdr.Format == FormatUnknown {\n\t\ttw.hdr.ModTime = tw.hdr.ModTime.Round(time.Second)\n\t\ttw.hdr.AccessTime = time.Time{}\n\t\ttw.hdr.ChangeTime = time.Time{}\n\t}\n\n\tallowedFormats, paxHdrs, err := tw.hdr.allowedFormats()\n\tswitch {\n\tcase allowedFormats.has(FormatUSTAR):\n\t\ttw.err = tw.writeUSTARHeader(&tw.hdr)\n\t\treturn tw.err\n\tcase allowedFormats.has(FormatPAX):\n\t\ttw.err = tw.writePAXHeader(&tw.hdr, paxHdrs)\n\t\treturn tw.err\n\tcase allowedFormats.has(FormatGNU):\n\t\ttw.err = tw.writeGNUHeader(&tw.hdr)\n\t\treturn tw.err\n\tdefault:\n\t\treturn err // Non-fatal error\n\t}\n}\n\nfunc (tw *Writer) writeUSTARHeader(hdr *Header) error {\n\t// Check if we can use USTAR prefix/suffix splitting.\n\tvar namePrefix string\n\tif prefix, suffix, ok := splitUSTARPath(hdr.Name); ok {\n\t\tnamePrefix, hdr.Name = prefix, suffix\n\t}\n\n\t// Pack the main header.\n\tvar f formatter\n\tblk := tw.templateV7Plus(hdr, f.formatString, f.formatOctal)\n\tf.formatString(blk.USTAR().Prefix(), namePrefix)\n\tblk.SetFormat(FormatUSTAR)\n\tif f.err != nil {\n\t\treturn f.err // Should never happen since header is validated\n\t}\n\treturn tw.writeRawHeader(blk, hdr.Size, hdr.Typeflag)\n}\n\nfunc (tw *Writer) writePAXHeader(hdr *Header, paxHdrs map[string]string) error {\n\trealName, realSize := hdr.Name, hdr.Size\n\n\t// TODO(dsnet): Re-enable this when adding sparse support.\n\t// See https://golang.org/issue/22735\n\t/*\n\t\t// Handle sparse files.\n\t\tvar spd sparseDatas\n\t\tvar spb []byte\n\t\tif len(hdr.SparseHoles) > 0 {\n\t\t\tsph := append([]sparseEntry{}, hdr.SparseHoles...) // Copy sparse map\n\t\t\tsph = alignSparseEntries(sph, hdr.Size)\n\t\t\tspd = invertSparseEntries(sph, hdr.Size)\n\n\t\t\t// Format the sparse map.\n\t\t\thdr.Size = 0 // Replace with encoded size\n\t\t\tspb = append(strconv.AppendInt(spb, int64(len(spd)), 10), '\\n')\n\t\t\tfor _, s := range spd {\n\t\t\t\thdr.Size += s.Length\n\t\t\t\tspb = append(strconv.AppendInt(spb, s.Offset, 10), '\\n')\n\t\t\t\tspb = append(strconv.AppendInt(spb, s.Length, 10), '\\n')\n\t\t\t}\n\t\t\tpad := blockPadding(int64(len(spb)))\n\t\t\tspb = append(spb, zeroBlock[:pad]...)\n\t\t\thdr.Size += int64(len(spb)) // Accounts for encoded sparse map\n\n\t\t\t// Add and modify appropriate PAX records.\n\t\t\tdir, file := path.Split(realName)\n\t\t\thdr.Name = path.Join(dir, \"GNUSparseFile.0\", file)\n\t\t\tpaxHdrs[paxGNUSparseMajor] = \"1\"\n\t\t\tpaxHdrs[paxGNUSparseMinor] = \"0\"\n\t\t\tpaxHdrs[paxGNUSparseName] = realName\n\t\t\tpaxHdrs[paxGNUSparseRealSize] = strconv.FormatInt(realSize, 10)\n\t\t\tpaxHdrs[paxSize] = strconv.FormatInt(hdr.Size, 10)\n\t\t\tdelete(paxHdrs, paxPath) // Recorded by paxGNUSparseName\n\t\t}\n\t*/\n\t_ = realSize\n\n\t// Write PAX records to the output.\n\tisGlobal := hdr.Typeflag == TypeXGlobalHeader\n\tif len(paxHdrs) > 0 || isGlobal {\n\t\t// Sort keys for deterministic ordering.\n\t\tvar keys []string\n\t\tfor k := range paxHdrs {\n\t\t\tkeys = append(keys, k)\n\t\t}\n\t\tsort.Strings(keys)\n\n\t\t// Write each record to a buffer.\n\t\tvar buf strings.Builder\n\t\tfor _, k := range keys {\n\t\t\trec, err := formatPAXRecord(k, paxHdrs[k])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tbuf.WriteString(rec)\n\t\t}\n\n\t\t// Write the extended header file.\n\t\tvar name string\n\t\tvar flag byte\n\t\tif isGlobal {\n\t\t\tname = realName\n\t\t\tif name == \"\" {\n\t\t\t\tname = \"GlobalHead.0.0\"\n\t\t\t}\n\t\t\tflag = TypeXGlobalHeader\n\t\t} else {\n\t\t\tdir, file := path.Split(realName)\n\t\t\tname = path.Join(dir, \"PaxHeaders.0\", file)\n\t\t\tflag = TypeXHeader\n\t\t}\n\t\tdata := buf.String()\n\t\tif len(data) > maxSpecialFileSize {\n\t\t\treturn ErrFieldTooLong\n\t\t}\n\t\tif err := tw.writeRawFile(name, data, flag, FormatPAX); err != nil || isGlobal {\n\t\t\treturn err // Global headers return here\n\t\t}\n\t}\n\n\t// Pack the main header.\n\tvar f formatter // Ignore errors since they are expected\n\tfmtStr := func(b []byte, s string) { f.formatString(b, toASCII(s)) }\n\tblk := tw.templateV7Plus(hdr, fmtStr, f.formatOctal)\n\tblk.SetFormat(FormatPAX)\n\tif err := tw.writeRawHeader(blk, hdr.Size, hdr.Typeflag); err != nil {\n\t\treturn err\n\t}\n\n\t// TODO(dsnet): Re-enable this when adding sparse support.\n\t// See https://golang.org/issue/22735\n\t/*\n\t\t// Write the sparse map and setup the sparse writer if necessary.\n\t\tif len(spd) > 0 {\n\t\t\t// Use tw.curr since the sparse map is accounted for in hdr.Size.\n\t\t\tif _, err := tw.curr.Write(spb); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\ttw.curr = &sparseFileWriter{tw.curr, spd, 0}\n\t\t}\n\t*/\n\treturn nil\n}\n\nfunc (tw *Writer) writeGNUHeader(hdr *Header) error {\n\t// Use long-link files if Name or Linkname exceeds the field size.\n\tconst longName = \"././@LongLink\"\n\tif len(hdr.Name) > nameSize {\n\t\tdata := hdr.Name + \"\\x00\"\n\t\tif err := tw.writeRawFile(longName, data, TypeGNULongName, FormatGNU); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif len(hdr.Linkname) > nameSize {\n\t\tdata := hdr.Linkname + \"\\x00\"\n\t\tif err := tw.writeRawFile(longName, data, TypeGNULongLink, FormatGNU); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Pack the main header.\n\tvar f formatter // Ignore errors since they are expected\n\tvar spd sparseDatas\n\tvar spb []byte\n\tblk := tw.templateV7Plus(hdr, f.formatString, f.formatNumeric)\n\tif !hdr.AccessTime.IsZero() {\n\t\tf.formatNumeric(blk.GNU().AccessTime(), hdr.AccessTime.Unix())\n\t}\n\tif !hdr.ChangeTime.IsZero() {\n\t\tf.formatNumeric(blk.GNU().ChangeTime(), hdr.ChangeTime.Unix())\n\t}\n\t// TODO(dsnet): Re-enable this when adding sparse support.\n\t// See https://golang.org/issue/22735\n\t/*\n\t\tif hdr.Typeflag == TypeGNUSparse {\n\t\t\tsph := append([]sparseEntry{}, hdr.SparseHoles...) // Copy sparse map\n\t\t\tsph = alignSparseEntries(sph, hdr.Size)\n\t\t\tspd = invertSparseEntries(sph, hdr.Size)\n\n\t\t\t// Format the sparse map.\n\t\t\tformatSPD := func(sp sparseDatas, sa sparseArray) sparseDatas {\n\t\t\t\tfor i := 0; len(sp) > 0 && i < sa.MaxEntries(); i++ {\n\t\t\t\t\tf.formatNumeric(sa.Entry(i).Offset(), sp[0].Offset)\n\t\t\t\t\tf.formatNumeric(sa.Entry(i).Length(), sp[0].Length)\n\t\t\t\t\tsp = sp[1:]\n\t\t\t\t}\n\t\t\t\tif len(sp) > 0 {\n\t\t\t\t\tsa.IsExtended()[0] = 1\n\t\t\t\t}\n\t\t\t\treturn sp\n\t\t\t}\n\t\t\tsp2 := formatSPD(spd, blk.GNU().Sparse())\n\t\t\tfor len(sp2) > 0 {\n\t\t\t\tvar spHdr block\n\t\t\t\tsp2 = formatSPD(sp2, spHdr.Sparse())\n\t\t\t\tspb = append(spb, spHdr[:]...)\n\t\t\t}\n\n\t\t\t// Update size fields in the header block.\n\t\t\trealSize := hdr.Size\n\t\t\thdr.Size = 0 // Encoded size; does not account for encoded sparse map\n\t\t\tfor _, s := range spd {\n\t\t\t\thdr.Size += s.Length\n\t\t\t}\n\t\t\tcopy(blk.V7().Size(), zeroBlock[:]) // Reset field\n\t\t\tf.formatNumeric(blk.V7().Size(), hdr.Size)\n\t\t\tf.formatNumeric(blk.GNU().RealSize(), realSize)\n\t\t}\n\t*/\n\tblk.SetFormat(FormatGNU)\n\tif err := tw.writeRawHeader(blk, hdr.Size, hdr.Typeflag); err != nil {\n\t\treturn err\n\t}\n\n\t// Write the extended sparse map and setup the sparse writer if necessary.\n\tif len(spd) > 0 {\n\t\t// Use tw.w since the sparse map is not accounted for in hdr.Size.\n\t\tif _, err := tw.w.Write(spb); err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttw.curr = &sparseFileWriter{tw.curr, spd, 0}\n\t}\n\treturn nil\n}\n\ntype (\n\tstringFormatter func([]byte, string)\n\tnumberFormatter func([]byte, int64)\n)\n\n// templateV7Plus fills out the V7 fields of a block using values from hdr.\n// It also fills out fields (uname, gname, devmajor, devminor) that are\n// shared in the USTAR, PAX, and GNU formats using the provided formatters.\n//\n// The block returned is only valid until the next call to\n// templateV7Plus or writeRawFile.\nfunc (tw *Writer) templateV7Plus(hdr *Header, fmtStr stringFormatter, fmtNum numberFormatter) *block {\n\ttw.blk.Reset()\n\n\tmodTime := hdr.ModTime\n\tif modTime.IsZero() {\n\t\tmodTime = time.Unix(0, 0)\n\t}\n\n\tv7 := tw.blk.V7()\n\tv7.TypeFlag()[0] = hdr.Typeflag\n\tfmtStr(v7.Name(), hdr.Name)\n\tfmtStr(v7.LinkName(), hdr.Linkname)\n\tfmtNum(v7.Mode(), hdr.Mode)\n\tfmtNum(v7.UID(), int64(hdr.Uid))\n\tfmtNum(v7.GID(), int64(hdr.Gid))\n\tfmtNum(v7.Size(), hdr.Size)\n\tfmtNum(v7.ModTime(), modTime.Unix())\n\n\tustar := tw.blk.USTAR()\n\tfmtStr(ustar.UserName(), hdr.Uname)\n\tfmtStr(ustar.GroupName(), hdr.Gname)\n\tfmtNum(ustar.DevMajor(), hdr.Devmajor)\n\tfmtNum(ustar.DevMinor(), hdr.Devminor)\n\n\treturn &tw.blk\n}\n\n// writeRawFile writes a minimal file with the given name and flag type.\n// It uses format to encode the header format and will write data as the body.\n// It uses default values for all of the other fields (as BSD and GNU tar does).\nfunc (tw *Writer) writeRawFile(name, data string, flag byte, format Format) error {\n\ttw.blk.Reset()\n\n\t// Best effort for the filename.\n\tname = toASCII(name)\n\tif len(name) > nameSize {\n\t\tname = name[:nameSize]\n\t}\n\tname = strings.TrimRight(name, \"/\")\n\n\tvar f formatter\n\tv7 := tw.blk.V7()\n\tv7.TypeFlag()[0] = flag\n\tf.formatString(v7.Name(), name)\n\tf.formatOctal(v7.Mode(), 0)\n\tf.formatOctal(v7.UID(), 0)\n\tf.formatOctal(v7.GID(), 0)\n\tf.formatOctal(v7.Size(), int64(len(data))) // Must be < 8GiB\n\tf.formatOctal(v7.ModTime(), 0)\n\ttw.blk.SetFormat(format)\n\tif f.err != nil {\n\t\treturn f.err // Only occurs if size condition is violated\n\t}\n\n\t// Write the header and data.\n\tif err := tw.writeRawHeader(&tw.blk, int64(len(data)), flag); err != nil {\n\t\treturn err\n\t}\n\t_, err := io.WriteString(tw, data)\n\treturn err\n}\n\n// writeRawHeader writes the value of blk, regardless of its value.\n// It sets up the Writer such that it can accept a file of the given size.\n// If the flag is a special header-only flag, then the size is treated as zero.\nfunc (tw *Writer) writeRawHeader(blk *block, size int64, flag byte) error {\n\tif err := tw.Flush(); err != nil {\n\t\treturn err\n\t}\n\tif _, err := tw.w.Write(blk[:]); err != nil {\n\t\treturn err\n\t}\n\tif isHeaderOnlyType(flag) {\n\t\tsize = 0\n\t}\n\ttw.curr = &regFileWriter{tw.w, size}\n\ttw.pad = blockPadding(size)\n\treturn nil\n}\n\n// splitUSTARPath splits a path according to USTAR prefix and suffix rules.\n// If the path is not splittable, then it will return (\"\", \"\", false).\nfunc splitUSTARPath(name string) (prefix, suffix string, ok bool) {\n\tlength := len(name)\n\tif length <= nameSize || !isASCII(name) {\n\t\treturn \"\", \"\", false\n\t} else if length > prefixSize+1 {\n\t\tlength = prefixSize + 1\n\t} else if name[length-1] == '/' {\n\t\tlength--\n\t}\n\n\ti := strings.LastIndex(name[:length], \"/\")\n\tnlen := len(name) - i - 1 // nlen is length of suffix\n\tplen := i                 // plen is length of prefix\n\tif i <= 0 || nlen > nameSize || nlen == 0 || plen > prefixSize {\n\t\treturn \"\", \"\", false\n\t}\n\treturn name[:i], name[i+1:], true\n}\n\n// Write writes to the current file in the tar archive.\n// Write returns the error ErrWriteTooLong if more than\n// Header.Size bytes are written after WriteHeader.\n//\n// Calling Write on special types like TypeLink, TypeSymlink, TypeChar,\n// TypeBlock, TypeDir, and TypeFifo returns (0, ErrWriteTooLong) regardless\n// of what the Header.Size claims.\nfunc (tw *Writer) Write(b []byte) (int, error) {\n\tif tw.err != nil {\n\t\treturn 0, tw.err\n\t}\n\tn, err := tw.curr.Write(b)\n\tif err != nil && err != ErrWriteTooLong {\n\t\ttw.err = err\n\t}\n\treturn n, err\n}\n\n// readFrom populates the content of the current file by reading from r.\n// The bytes read must match the number of remaining bytes in the current file.\n//\n// If the current file is sparse and r is an io.ReadSeeker,\n// then readFrom uses Seek to skip past holes defined in Header.SparseHoles,\n// assuming that skipped regions are all NULs.\n// This always reads the last byte to ensure r is the right size.\n//\n// TODO(dsnet): Re-export this when adding sparse file support.\n// See https://golang.org/issue/22735\nfunc (tw *Writer) readFrom(r io.Reader) (int64, error) {\n\tif tw.err != nil {\n\t\treturn 0, tw.err\n\t}\n\tn, err := tw.curr.ReadFrom(r)\n\tif err != nil && err != ErrWriteTooLong {\n\t\ttw.err = err\n\t}\n\treturn n, err\n}\n\n// Close closes the tar archive by flushing the padding, and writing the footer.\n// If the current file (from a prior call to WriteHeader) is not fully written,\n// then this returns an error.\nfunc (tw *Writer) Close() error {\n\tif tw.err == ErrWriteAfterClose {\n\t\treturn nil\n\t}\n\tif tw.err != nil {\n\t\treturn tw.err\n\t}\n\n\t// Trailer: two zero blocks.\n\terr := tw.Flush()\n\tfor i := 0; i < 2 && err == nil; i++ {\n\t\t_, err = tw.w.Write(zeroBlock[:])\n\t}\n\n\t// Ensure all future actions are invalid.\n\ttw.err = ErrWriteAfterClose\n\treturn err // Report IO errors\n}\n\n// regFileWriter is a fileWriter for writing data to a regular file entry.\ntype regFileWriter struct {\n\tw  io.Writer // Underlying Writer\n\tnb int64     // Number of remaining bytes to write\n}\n\nfunc (fw *regFileWriter) Write(b []byte) (n int, err error) {\n\toverwrite := int64(len(b)) > fw.nb\n\tif overwrite {\n\t\tb = b[:fw.nb]\n\t}\n\tif len(b) > 0 {\n\t\tn, err = fw.w.Write(b)\n\t\tfw.nb -= int64(n)\n\t}\n\tswitch {\n\tcase err != nil:\n\t\treturn n, err\n\tcase overwrite:\n\t\treturn n, ErrWriteTooLong\n\tdefault:\n\t\treturn n, nil\n\t}\n}\n\nfunc (fw *regFileWriter) ReadFrom(r io.Reader) (int64, error) {\n\treturn io.Copy(struct{ io.Writer }{fw}, r)\n}\n\nfunc (fw regFileWriter) LogicalRemaining() int64 {\n\treturn fw.nb\n}\nfunc (fw regFileWriter) PhysicalRemaining() int64 {\n\treturn fw.nb\n}\n\n// sparseFileWriter is a fileWriter for writing data to a sparse file entry.\ntype sparseFileWriter struct {\n\tfw  fileWriter  // Underlying fileWriter\n\tsp  sparseDatas // Normalized list of data fragments\n\tpos int64       // Current position in sparse file\n}\n\nfunc (sw *sparseFileWriter) Write(b []byte) (n int, err error) {\n\toverwrite := int64(len(b)) > sw.LogicalRemaining()\n\tif overwrite {\n\t\tb = b[:sw.LogicalRemaining()]\n\t}\n\n\tb0 := b\n\tendPos := sw.pos + int64(len(b))\n\tfor endPos > sw.pos && err == nil {\n\t\tvar nf int // Bytes written in fragment\n\t\tdataStart, dataEnd := sw.sp[0].Offset, sw.sp[0].endOffset()\n\t\tif sw.pos < dataStart { // In a hole fragment\n\t\t\tbf := b[:min(int64(len(b)), dataStart-sw.pos)]\n\t\t\tnf, err = zeroWriter{}.Write(bf)\n\t\t} else { // In a data fragment\n\t\t\tbf := b[:min(int64(len(b)), dataEnd-sw.pos)]\n\t\t\tnf, err = sw.fw.Write(bf)\n\t\t}\n\t\tb = b[nf:]\n\t\tsw.pos += int64(nf)\n\t\tif sw.pos >= dataEnd && len(sw.sp) > 1 {\n\t\t\tsw.sp = sw.sp[1:] // Ensure last fragment always remains\n\t\t}\n\t}\n\n\tn = len(b0) - len(b)\n\tswitch {\n\tcase err == ErrWriteTooLong:\n\t\treturn n, errMissData // Not possible; implies bug in validation logic\n\tcase err != nil:\n\t\treturn n, err\n\tcase sw.LogicalRemaining() == 0 && sw.PhysicalRemaining() > 0:\n\t\treturn n, errUnrefData // Not possible; implies bug in validation logic\n\tcase overwrite:\n\t\treturn n, ErrWriteTooLong\n\tdefault:\n\t\treturn n, nil\n\t}\n}\n\nfunc (sw *sparseFileWriter) ReadFrom(r io.Reader) (n int64, err error) {\n\trs, ok := r.(io.ReadSeeker)\n\tif ok {\n\t\tif _, err := rs.Seek(0, io.SeekCurrent); err != nil {\n\t\t\tok = false // Not all io.Seeker can really seek\n\t\t}\n\t}\n\tif !ok {\n\t\treturn io.Copy(struct{ io.Writer }{sw}, r)\n\t}\n\n\tvar readLastByte bool\n\tpos0 := sw.pos\n\tfor sw.LogicalRemaining() > 0 && !readLastByte && err == nil {\n\t\tvar nf int64 // Size of fragment\n\t\tdataStart, dataEnd := sw.sp[0].Offset, sw.sp[0].endOffset()\n\t\tif sw.pos < dataStart { // In a hole fragment\n\t\t\tnf = dataStart - sw.pos\n\t\t\tif sw.PhysicalRemaining() == 0 {\n\t\t\t\treadLastByte = true\n\t\t\t\tnf--\n\t\t\t}\n\t\t\t_, err = rs.Seek(nf, io.SeekCurrent)\n\t\t} else { // In a data fragment\n\t\t\tnf = dataEnd - sw.pos\n\t\t\tnf, err = io.CopyN(sw.fw, rs, nf)\n\t\t}\n\t\tsw.pos += nf\n\t\tif sw.pos >= dataEnd && len(sw.sp) > 1 {\n\t\t\tsw.sp = sw.sp[1:] // Ensure last fragment always remains\n\t\t}\n\t}\n\n\t// If the last fragment is a hole, then seek to 1-byte before EOF, and\n\t// read a single byte to ensure the file is the right size.\n\tif readLastByte && err == nil {\n\t\t_, err = mustReadFull(rs, []byte{0})\n\t\tsw.pos++\n\t}\n\n\tn = sw.pos - pos0\n\tswitch {\n\tcase err == io.EOF:\n\t\treturn n, io.ErrUnexpectedEOF\n\tcase err == ErrWriteTooLong:\n\t\treturn n, errMissData // Not possible; implies bug in validation logic\n\tcase err != nil:\n\t\treturn n, err\n\tcase sw.LogicalRemaining() == 0 && sw.PhysicalRemaining() > 0:\n\t\treturn n, errUnrefData // Not possible; implies bug in validation logic\n\tdefault:\n\t\treturn n, ensureEOF(rs)\n\t}\n}\n\nfunc (sw sparseFileWriter) LogicalRemaining() int64 {\n\treturn sw.sp[len(sw.sp)-1].endOffset() - sw.pos\n}\nfunc (sw sparseFileWriter) PhysicalRemaining() int64 {\n\treturn sw.fw.PhysicalRemaining()\n}\n\n// zeroWriter may only be written with NULs, otherwise it returns errWriteHole.\ntype zeroWriter struct{}\n\nfunc (zeroWriter) Write(b []byte) (int, error) {\n\tfor i, c := range b {\n\t\tif c != 0 {\n\t\t\treturn i, errWriteHole\n\t\t}\n\t}\n\treturn len(b), nil\n}\n\n// ensureEOF checks whether r is at EOF, reporting ErrWriteTooLong if not so.\nfunc ensureEOF(r io.Reader) error {\n\tn, err := tryReadFull(r, []byte{0})\n\tswitch {\n\tcase n > 0:\n\t\treturn ErrWriteTooLong\n\tcase err == io.EOF:\n\t\treturn nil\n\tdefault:\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/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/crypto/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/crypto/blowfish/block.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\npackage blowfish\n\n// getNextWord returns the next big-endian uint32 value from the byte slice\n// at the given position in a circular manner, updating the position.\nfunc getNextWord(b []byte, pos *int) uint32 {\n\tvar w uint32\n\tj := *pos\n\tfor i := 0; i < 4; i++ {\n\t\tw = w<<8 | uint32(b[j])\n\t\tj++\n\t\tif j >= len(b) {\n\t\t\tj = 0\n\t\t}\n\t}\n\t*pos = j\n\treturn w\n}\n\n// ExpandKey performs a key expansion on the given *Cipher. Specifically, it\n// performs the Blowfish algorithm's key schedule which sets up the *Cipher's\n// pi and substitution tables for calls to Encrypt. This is used, primarily,\n// by the bcrypt package to reuse the Blowfish key schedule during its\n// set up. It's unlikely that you need to use this directly.\nfunc ExpandKey(key []byte, c *Cipher) {\n\tj := 0\n\tfor i := 0; i < 18; i++ {\n\t\t// Using inlined getNextWord for performance.\n\t\tvar d uint32\n\t\tfor k := 0; k < 4; k++ {\n\t\t\td = d<<8 | uint32(key[j])\n\t\t\tj++\n\t\t\tif j >= len(key) {\n\t\t\t\tj = 0\n\t\t\t}\n\t\t}\n\t\tc.p[i] ^= d\n\t}\n\n\tvar l, r uint32\n\tfor i := 0; i < 18; i += 2 {\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.p[i], c.p[i+1] = l, r\n\t}\n\n\tfor i := 0; i < 256; i += 2 {\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s0[i], c.s0[i+1] = l, r\n\t}\n\tfor i := 0; i < 256; i += 2 {\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s1[i], c.s1[i+1] = l, r\n\t}\n\tfor i := 0; i < 256; i += 2 {\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s2[i], c.s2[i+1] = l, r\n\t}\n\tfor i := 0; i < 256; i += 2 {\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s3[i], c.s3[i+1] = l, r\n\t}\n}\n\n// This is similar to ExpandKey, but folds the salt during the key\n// schedule. While ExpandKey is essentially expandKeyWithSalt with an all-zero\n// salt passed in, reusing ExpandKey turns out to be a place of inefficiency\n// and specializing it here is useful.\nfunc expandKeyWithSalt(key []byte, salt []byte, c *Cipher) {\n\tj := 0\n\tfor i := 0; i < 18; i++ {\n\t\tc.p[i] ^= getNextWord(key, &j)\n\t}\n\n\tj = 0\n\tvar l, r uint32\n\tfor i := 0; i < 18; i += 2 {\n\t\tl ^= getNextWord(salt, &j)\n\t\tr ^= getNextWord(salt, &j)\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.p[i], c.p[i+1] = l, r\n\t}\n\n\tfor i := 0; i < 256; i += 2 {\n\t\tl ^= getNextWord(salt, &j)\n\t\tr ^= getNextWord(salt, &j)\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s0[i], c.s0[i+1] = l, r\n\t}\n\n\tfor i := 0; i < 256; i += 2 {\n\t\tl ^= getNextWord(salt, &j)\n\t\tr ^= getNextWord(salt, &j)\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s1[i], c.s1[i+1] = l, r\n\t}\n\n\tfor i := 0; i < 256; i += 2 {\n\t\tl ^= getNextWord(salt, &j)\n\t\tr ^= getNextWord(salt, &j)\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s2[i], c.s2[i+1] = l, r\n\t}\n\n\tfor i := 0; i < 256; i += 2 {\n\t\tl ^= getNextWord(salt, &j)\n\t\tr ^= getNextWord(salt, &j)\n\t\tl, r = encryptBlock(l, r, c)\n\t\tc.s3[i], c.s3[i+1] = l, r\n\t}\n}\n\nfunc encryptBlock(l, r uint32, c *Cipher) (uint32, uint32) {\n\txl, xr := l, r\n\txl ^= c.p[0]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[1]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[2]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[3]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[4]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[5]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[6]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[7]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[8]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[9]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[10]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[11]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[12]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[13]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[14]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[15]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[16]\n\txr ^= c.p[17]\n\treturn xr, xl\n}\n\nfunc decryptBlock(l, r uint32, c *Cipher) (uint32, uint32) {\n\txl, xr := l, r\n\txl ^= c.p[17]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[16]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[15]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[14]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[13]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[12]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[11]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[10]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[9]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[8]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[7]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[6]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[5]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[4]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[3]\n\txr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[2]\n\txl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[1]\n\txr ^= c.p[0]\n\treturn xr, xl\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blowfish/cipher.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// Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.\n//\n// Blowfish is a legacy cipher and its short block size makes it vulnerable to\n// birthday bound attacks (see https://sweet32.info). It should only be used\n// where compatibility with legacy systems, not security, is the goal.\n//\n// Deprecated: any new system should use AES (from crypto/aes, if necessary in\n// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from\n// golang.org/x/crypto/chacha20poly1305).\npackage blowfish\n\n// The code is a port of Bruce Schneier's C implementation.\n// See https://www.schneier.com/blowfish.html.\n\nimport \"strconv\"\n\n// The Blowfish block size in bytes.\nconst BlockSize = 8\n\n// A Cipher is an instance of Blowfish encryption using a particular key.\ntype Cipher struct {\n\tp              [18]uint32\n\ts0, s1, s2, s3 [256]uint32\n}\n\ntype KeySizeError int\n\nfunc (k KeySizeError) Error() string {\n\treturn \"crypto/blowfish: invalid key size \" + strconv.Itoa(int(k))\n}\n\n// NewCipher creates and returns a Cipher.\n// The key argument should be the Blowfish key, from 1 to 56 bytes.\nfunc NewCipher(key []byte) (*Cipher, error) {\n\tvar result Cipher\n\tif k := len(key); k < 1 || k > 56 {\n\t\treturn nil, KeySizeError(k)\n\t}\n\tinitCipher(&result)\n\tExpandKey(key, &result)\n\treturn &result, nil\n}\n\n// NewSaltedCipher creates a returns a Cipher that folds a salt into its key\n// schedule. For most purposes, NewCipher, instead of NewSaltedCipher, is\n// sufficient and desirable. For bcrypt compatibility, the key can be over 56\n// bytes.\nfunc NewSaltedCipher(key, salt []byte) (*Cipher, error) {\n\tif len(salt) == 0 {\n\t\treturn NewCipher(key)\n\t}\n\tvar result Cipher\n\tif k := len(key); k < 1 {\n\t\treturn nil, KeySizeError(k)\n\t}\n\tinitCipher(&result)\n\texpandKeyWithSalt(key, salt, &result)\n\treturn &result, nil\n}\n\n// BlockSize returns the Blowfish block size, 8 bytes.\n// It is necessary to satisfy the Block interface in the\n// package \"crypto/cipher\".\nfunc (c *Cipher) BlockSize() int { return BlockSize }\n\n// Encrypt encrypts the 8-byte buffer src using the key k\n// and stores the result in dst.\n// Note that for amounts of data larger than a block,\n// it is not safe to just call Encrypt on successive blocks;\n// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go).\nfunc (c *Cipher) Encrypt(dst, src []byte) {\n\tl := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3])\n\tr := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7])\n\tl, r = encryptBlock(l, r, c)\n\tdst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l)\n\tdst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r)\n}\n\n// Decrypt decrypts the 8-byte buffer src using the key k\n// and stores the result in dst.\nfunc (c *Cipher) Decrypt(dst, src []byte) {\n\tl := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3])\n\tr := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7])\n\tl, r = decryptBlock(l, r, c)\n\tdst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l)\n\tdst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r)\n}\n\nfunc initCipher(c *Cipher) {\n\tcopy(c.p[0:], p[0:])\n\tcopy(c.s0[0:], s0[0:])\n\tcopy(c.s1[0:], s1[0:])\n\tcopy(c.s2[0:], s2[0:])\n\tcopy(c.s3[0:], s3[0:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/blowfish/const.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// The startup permutation array and substitution boxes.\n// They are the hexadecimal digits of PI; see:\n// https://www.schneier.com/code/constants.txt.\n\npackage blowfish\n\nvar s0 = [256]uint32{\n\t0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,\n\t0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,\n\t0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658,\n\t0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,\n\t0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\n\t0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,\n\t0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6,\n\t0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,\n\t0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c,\n\t0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\n\t0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1,\n\t0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,\n\t0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a,\n\t0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,\n\t0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\n\t0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,\n\t0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706,\n\t0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,\n\t0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b,\n\t0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\n\t0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c,\n\t0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,\n\t0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a,\n\t0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,\n\t0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\n\t0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,\n\t0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8,\n\t0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,\n\t0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33,\n\t0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\n\t0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0,\n\t0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,\n\t0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777,\n\t0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,\n\t0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\n\t0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,\n\t0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e,\n\t0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,\n\t0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9,\n\t0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\n\t0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f,\n\t0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,\n\t0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a,\n}\n\nvar s1 = [256]uint32{\n\t0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d,\n\t0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,\n\t0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65,\n\t0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\n\t0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9,\n\t0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,\n\t0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d,\n\t0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,\n\t0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\n\t0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,\n\t0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908,\n\t0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,\n\t0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124,\n\t0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\n\t0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908,\n\t0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,\n\t0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b,\n\t0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,\n\t0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\n\t0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,\n\t0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d,\n\t0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,\n\t0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5,\n\t0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\n\t0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96,\n\t0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,\n\t0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca,\n\t0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,\n\t0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\n\t0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,\n\t0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054,\n\t0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,\n\t0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea,\n\t0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\n\t0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646,\n\t0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,\n\t0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea,\n\t0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,\n\t0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\n\t0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,\n\t0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd,\n\t0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,\n\t0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7,\n}\n\nvar s2 = [256]uint32{\n\t0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7,\n\t0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,\n\t0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\n\t0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,\n\t0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4,\n\t0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,\n\t0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec,\n\t0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\n\t0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332,\n\t0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,\n\t0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58,\n\t0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,\n\t0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\n\t0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,\n\t0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60,\n\t0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,\n\t0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99,\n\t0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\n\t0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74,\n\t0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,\n\t0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3,\n\t0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,\n\t0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\n\t0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,\n\t0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa,\n\t0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,\n\t0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086,\n\t0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\n\t0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24,\n\t0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,\n\t0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84,\n\t0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,\n\t0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\n\t0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,\n\t0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe,\n\t0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,\n\t0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0,\n\t0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\n\t0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188,\n\t0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,\n\t0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8,\n\t0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,\n\t0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0,\n}\n\nvar s3 = [256]uint32{\n\t0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742,\n\t0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\n\t0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79,\n\t0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,\n\t0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a,\n\t0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,\n\t0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\n\t0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,\n\t0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797,\n\t0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,\n\t0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6,\n\t0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\n\t0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba,\n\t0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,\n\t0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5,\n\t0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,\n\t0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\n\t0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,\n\t0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd,\n\t0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,\n\t0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb,\n\t0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\n\t0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc,\n\t0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,\n\t0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc,\n\t0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,\n\t0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\n\t0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,\n\t0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a,\n\t0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,\n\t0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b,\n\t0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\n\t0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e,\n\t0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,\n\t0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623,\n\t0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,\n\t0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\n\t0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,\n\t0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3,\n\t0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,\n\t0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c,\n\t0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\n\t0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6,\n}\n\nvar p = [18]uint32{\n\t0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,\n\t0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n\t0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_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 gc && !purego\n\npackage chacha20\n\nconst bufSize = 256\n\n//go:noescape\nfunc xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)\n\nfunc (c *Cipher) xorKeyStreamBlocks(dst, src []byte) {\n\txorKeyStreamVX(dst, src, &c.key, &c.nonce, &c.counter)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_arm64.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 && !purego\n\n#include \"textflag.h\"\n\n#define NUM_ROUNDS 10\n\n// func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)\nTEXT ·xorKeyStreamVX(SB), NOSPLIT, $0\n\tMOVD\tdst+0(FP), R1\n\tMOVD\tsrc+24(FP), R2\n\tMOVD\tsrc_len+32(FP), R3\n\tMOVD\tkey+48(FP), R4\n\tMOVD\tnonce+56(FP), R6\n\tMOVD\tcounter+64(FP), R7\n\n\tMOVD\t$·constants(SB), R10\n\tMOVD\t$·incRotMatrix(SB), R11\n\n\tMOVW\t(R7), R20\n\n\tAND\t$~255, R3, R13\n\tADD\tR2, R13, R12 // R12 for block end\n\tAND\t$255, R3, R13\nloop:\n\tMOVD\t$NUM_ROUNDS, R21\n\tVLD1\t(R11), [V30.S4, V31.S4]\n\n\t// load constants\n\t// VLD4R (R10), [V0.S4, V1.S4, V2.S4, V3.S4]\n\tWORD\t$0x4D60E940\n\n\t// load keys\n\t// VLD4R 16(R4), [V4.S4, V5.S4, V6.S4, V7.S4]\n\tWORD\t$0x4DFFE884\n\t// VLD4R 16(R4), [V8.S4, V9.S4, V10.S4, V11.S4]\n\tWORD\t$0x4DFFE888\n\tSUB\t$32, R4\n\n\t// load counter + nonce\n\t// VLD1R (R7), [V12.S4]\n\tWORD\t$0x4D40C8EC\n\n\t// VLD3R (R6), [V13.S4, V14.S4, V15.S4]\n\tWORD\t$0x4D40E8CD\n\n\t// update counter\n\tVADD\tV30.S4, V12.S4, V12.S4\n\nchacha:\n\t// V0..V3 += V4..V7\n\t// V12..V15 <<<= ((V12..V15 XOR V0..V3), 16)\n\tVADD\tV0.S4, V4.S4, V0.S4\n\tVADD\tV1.S4, V5.S4, V1.S4\n\tVADD\tV2.S4, V6.S4, V2.S4\n\tVADD\tV3.S4, V7.S4, V3.S4\n\tVEOR\tV12.B16, V0.B16, V12.B16\n\tVEOR\tV13.B16, V1.B16, V13.B16\n\tVEOR\tV14.B16, V2.B16, V14.B16\n\tVEOR\tV15.B16, V3.B16, V15.B16\n\tVREV32\tV12.H8, V12.H8\n\tVREV32\tV13.H8, V13.H8\n\tVREV32\tV14.H8, V14.H8\n\tVREV32\tV15.H8, V15.H8\n\t// V8..V11 += V12..V15\n\t// V4..V7 <<<= ((V4..V7 XOR V8..V11), 12)\n\tVADD\tV8.S4, V12.S4, V8.S4\n\tVADD\tV9.S4, V13.S4, V9.S4\n\tVADD\tV10.S4, V14.S4, V10.S4\n\tVADD\tV11.S4, V15.S4, V11.S4\n\tVEOR\tV8.B16, V4.B16, V16.B16\n\tVEOR\tV9.B16, V5.B16, V17.B16\n\tVEOR\tV10.B16, V6.B16, V18.B16\n\tVEOR\tV11.B16, V7.B16, V19.B16\n\tVSHL\t$12, V16.S4, V4.S4\n\tVSHL\t$12, V17.S4, V5.S4\n\tVSHL\t$12, V18.S4, V6.S4\n\tVSHL\t$12, V19.S4, V7.S4\n\tVSRI\t$20, V16.S4, V4.S4\n\tVSRI\t$20, V17.S4, V5.S4\n\tVSRI\t$20, V18.S4, V6.S4\n\tVSRI\t$20, V19.S4, V7.S4\n\n\t// V0..V3 += V4..V7\n\t// V12..V15 <<<= ((V12..V15 XOR V0..V3), 8)\n\tVADD\tV0.S4, V4.S4, V0.S4\n\tVADD\tV1.S4, V5.S4, V1.S4\n\tVADD\tV2.S4, V6.S4, V2.S4\n\tVADD\tV3.S4, V7.S4, V3.S4\n\tVEOR\tV12.B16, V0.B16, V12.B16\n\tVEOR\tV13.B16, V1.B16, V13.B16\n\tVEOR\tV14.B16, V2.B16, V14.B16\n\tVEOR\tV15.B16, V3.B16, V15.B16\n\tVTBL\tV31.B16, [V12.B16], V12.B16\n\tVTBL\tV31.B16, [V13.B16], V13.B16\n\tVTBL\tV31.B16, [V14.B16], V14.B16\n\tVTBL\tV31.B16, [V15.B16], V15.B16\n\n\t// V8..V11 += V12..V15\n\t// V4..V7 <<<= ((V4..V7 XOR V8..V11), 7)\n\tVADD\tV12.S4, V8.S4, V8.S4\n\tVADD\tV13.S4, V9.S4, V9.S4\n\tVADD\tV14.S4, V10.S4, V10.S4\n\tVADD\tV15.S4, V11.S4, V11.S4\n\tVEOR\tV8.B16, V4.B16, V16.B16\n\tVEOR\tV9.B16, V5.B16, V17.B16\n\tVEOR\tV10.B16, V6.B16, V18.B16\n\tVEOR\tV11.B16, V7.B16, V19.B16\n\tVSHL\t$7, V16.S4, V4.S4\n\tVSHL\t$7, V17.S4, V5.S4\n\tVSHL\t$7, V18.S4, V6.S4\n\tVSHL\t$7, V19.S4, V7.S4\n\tVSRI\t$25, V16.S4, V4.S4\n\tVSRI\t$25, V17.S4, V5.S4\n\tVSRI\t$25, V18.S4, V6.S4\n\tVSRI\t$25, V19.S4, V7.S4\n\n\t// V0..V3 += V5..V7, V4\n\t// V15,V12-V14 <<<= ((V15,V12-V14 XOR V0..V3), 16)\n\tVADD\tV0.S4, V5.S4, V0.S4\n\tVADD\tV1.S4, V6.S4, V1.S4\n\tVADD\tV2.S4, V7.S4, V2.S4\n\tVADD\tV3.S4, V4.S4, V3.S4\n\tVEOR\tV15.B16, V0.B16, V15.B16\n\tVEOR\tV12.B16, V1.B16, V12.B16\n\tVEOR\tV13.B16, V2.B16, V13.B16\n\tVEOR\tV14.B16, V3.B16, V14.B16\n\tVREV32\tV12.H8, V12.H8\n\tVREV32\tV13.H8, V13.H8\n\tVREV32\tV14.H8, V14.H8\n\tVREV32\tV15.H8, V15.H8\n\n\t// V10 += V15; V5 <<<= ((V10 XOR V5), 12)\n\t// ...\n\tVADD\tV15.S4, V10.S4, V10.S4\n\tVADD\tV12.S4, V11.S4, V11.S4\n\tVADD\tV13.S4, V8.S4, V8.S4\n\tVADD\tV14.S4, V9.S4, V9.S4\n\tVEOR\tV10.B16, V5.B16, V16.B16\n\tVEOR\tV11.B16, V6.B16, V17.B16\n\tVEOR\tV8.B16, V7.B16, V18.B16\n\tVEOR\tV9.B16, V4.B16, V19.B16\n\tVSHL\t$12, V16.S4, V5.S4\n\tVSHL\t$12, V17.S4, V6.S4\n\tVSHL\t$12, V18.S4, V7.S4\n\tVSHL\t$12, V19.S4, V4.S4\n\tVSRI\t$20, V16.S4, V5.S4\n\tVSRI\t$20, V17.S4, V6.S4\n\tVSRI\t$20, V18.S4, V7.S4\n\tVSRI\t$20, V19.S4, V4.S4\n\n\t// V0 += V5; V15 <<<= ((V0 XOR V15), 8)\n\t// ...\n\tVADD\tV5.S4, V0.S4, V0.S4\n\tVADD\tV6.S4, V1.S4, V1.S4\n\tVADD\tV7.S4, V2.S4, V2.S4\n\tVADD\tV4.S4, V3.S4, V3.S4\n\tVEOR\tV0.B16, V15.B16, V15.B16\n\tVEOR\tV1.B16, V12.B16, V12.B16\n\tVEOR\tV2.B16, V13.B16, V13.B16\n\tVEOR\tV3.B16, V14.B16, V14.B16\n\tVTBL\tV31.B16, [V12.B16], V12.B16\n\tVTBL\tV31.B16, [V13.B16], V13.B16\n\tVTBL\tV31.B16, [V14.B16], V14.B16\n\tVTBL\tV31.B16, [V15.B16], V15.B16\n\n\t// V10 += V15; V5 <<<= ((V10 XOR V5), 7)\n\t// ...\n\tVADD\tV15.S4, V10.S4, V10.S4\n\tVADD\tV12.S4, V11.S4, V11.S4\n\tVADD\tV13.S4, V8.S4, V8.S4\n\tVADD\tV14.S4, V9.S4, V9.S4\n\tVEOR\tV10.B16, V5.B16, V16.B16\n\tVEOR\tV11.B16, V6.B16, V17.B16\n\tVEOR\tV8.B16, V7.B16, V18.B16\n\tVEOR\tV9.B16, V4.B16, V19.B16\n\tVSHL\t$7, V16.S4, V5.S4\n\tVSHL\t$7, V17.S4, V6.S4\n\tVSHL\t$7, V18.S4, V7.S4\n\tVSHL\t$7, V19.S4, V4.S4\n\tVSRI\t$25, V16.S4, V5.S4\n\tVSRI\t$25, V17.S4, V6.S4\n\tVSRI\t$25, V18.S4, V7.S4\n\tVSRI\t$25, V19.S4, V4.S4\n\n\tSUB\t$1, R21\n\tCBNZ\tR21, chacha\n\n\t// VLD4R (R10), [V16.S4, V17.S4, V18.S4, V19.S4]\n\tWORD\t$0x4D60E950\n\n\t// VLD4R 16(R4), [V20.S4, V21.S4, V22.S4, V23.S4]\n\tWORD\t$0x4DFFE894\n\tVADD\tV30.S4, V12.S4, V12.S4\n\tVADD\tV16.S4, V0.S4, V0.S4\n\tVADD\tV17.S4, V1.S4, V1.S4\n\tVADD\tV18.S4, V2.S4, V2.S4\n\tVADD\tV19.S4, V3.S4, V3.S4\n\t// VLD4R 16(R4), [V24.S4, V25.S4, V26.S4, V27.S4]\n\tWORD\t$0x4DFFE898\n\t// restore R4\n\tSUB\t$32, R4\n\n\t// load counter + nonce\n\t// VLD1R (R7), [V28.S4]\n\tWORD\t$0x4D40C8FC\n\t// VLD3R (R6), [V29.S4, V30.S4, V31.S4]\n\tWORD\t$0x4D40E8DD\n\n\tVADD\tV20.S4, V4.S4, V4.S4\n\tVADD\tV21.S4, V5.S4, V5.S4\n\tVADD\tV22.S4, V6.S4, V6.S4\n\tVADD\tV23.S4, V7.S4, V7.S4\n\tVADD\tV24.S4, V8.S4, V8.S4\n\tVADD\tV25.S4, V9.S4, V9.S4\n\tVADD\tV26.S4, V10.S4, V10.S4\n\tVADD\tV27.S4, V11.S4, V11.S4\n\tVADD\tV28.S4, V12.S4, V12.S4\n\tVADD\tV29.S4, V13.S4, V13.S4\n\tVADD\tV30.S4, V14.S4, V14.S4\n\tVADD\tV31.S4, V15.S4, V15.S4\n\n\tVZIP1\tV1.S4, V0.S4, V16.S4\n\tVZIP2\tV1.S4, V0.S4, V17.S4\n\tVZIP1\tV3.S4, V2.S4, V18.S4\n\tVZIP2\tV3.S4, V2.S4, V19.S4\n\tVZIP1\tV5.S4, V4.S4, V20.S4\n\tVZIP2\tV5.S4, V4.S4, V21.S4\n\tVZIP1\tV7.S4, V6.S4, V22.S4\n\tVZIP2\tV7.S4, V6.S4, V23.S4\n\tVZIP1\tV9.S4, V8.S4, V24.S4\n\tVZIP2\tV9.S4, V8.S4, V25.S4\n\tVZIP1\tV11.S4, V10.S4, V26.S4\n\tVZIP2\tV11.S4, V10.S4, V27.S4\n\tVZIP1\tV13.S4, V12.S4, V28.S4\n\tVZIP2\tV13.S4, V12.S4, V29.S4\n\tVZIP1\tV15.S4, V14.S4, V30.S4\n\tVZIP2\tV15.S4, V14.S4, V31.S4\n\tVZIP1\tV18.D2, V16.D2, V0.D2\n\tVZIP2\tV18.D2, V16.D2, V4.D2\n\tVZIP1\tV19.D2, V17.D2, V8.D2\n\tVZIP2\tV19.D2, V17.D2, V12.D2\n\tVLD1.P\t64(R2), [V16.B16, V17.B16, V18.B16, V19.B16]\n\n\tVZIP1\tV22.D2, V20.D2, V1.D2\n\tVZIP2\tV22.D2, V20.D2, V5.D2\n\tVZIP1\tV23.D2, V21.D2, V9.D2\n\tVZIP2\tV23.D2, V21.D2, V13.D2\n\tVLD1.P\t64(R2), [V20.B16, V21.B16, V22.B16, V23.B16]\n\tVZIP1\tV26.D2, V24.D2, V2.D2\n\tVZIP2\tV26.D2, V24.D2, V6.D2\n\tVZIP1\tV27.D2, V25.D2, V10.D2\n\tVZIP2\tV27.D2, V25.D2, V14.D2\n\tVLD1.P\t64(R2), [V24.B16, V25.B16, V26.B16, V27.B16]\n\tVZIP1\tV30.D2, V28.D2, V3.D2\n\tVZIP2\tV30.D2, V28.D2, V7.D2\n\tVZIP1\tV31.D2, V29.D2, V11.D2\n\tVZIP2\tV31.D2, V29.D2, V15.D2\n\tVLD1.P\t64(R2), [V28.B16, V29.B16, V30.B16, V31.B16]\n\tVEOR\tV0.B16, V16.B16, V16.B16\n\tVEOR\tV1.B16, V17.B16, V17.B16\n\tVEOR\tV2.B16, V18.B16, V18.B16\n\tVEOR\tV3.B16, V19.B16, V19.B16\n\tVST1.P\t[V16.B16, V17.B16, V18.B16, V19.B16], 64(R1)\n\tVEOR\tV4.B16, V20.B16, V20.B16\n\tVEOR\tV5.B16, V21.B16, V21.B16\n\tVEOR\tV6.B16, V22.B16, V22.B16\n\tVEOR\tV7.B16, V23.B16, V23.B16\n\tVST1.P\t[V20.B16, V21.B16, V22.B16, V23.B16], 64(R1)\n\tVEOR\tV8.B16, V24.B16, V24.B16\n\tVEOR\tV9.B16, V25.B16, V25.B16\n\tVEOR\tV10.B16, V26.B16, V26.B16\n\tVEOR\tV11.B16, V27.B16, V27.B16\n\tVST1.P\t[V24.B16, V25.B16, V26.B16, V27.B16], 64(R1)\n\tVEOR\tV12.B16, V28.B16, V28.B16\n\tVEOR\tV13.B16, V29.B16, V29.B16\n\tVEOR\tV14.B16, V30.B16, V30.B16\n\tVEOR\tV15.B16, V31.B16, V31.B16\n\tVST1.P\t[V28.B16, V29.B16, V30.B16, V31.B16], 64(R1)\n\n\tADD\t$4, R20\n\tMOVW\tR20, (R7) // update counter\n\n\tCMP\tR2, R12\n\tBGT\tloop\n\n\tRET\n\n\nDATA\t·constants+0x00(SB)/4, $0x61707865\nDATA\t·constants+0x04(SB)/4, $0x3320646e\nDATA\t·constants+0x08(SB)/4, $0x79622d32\nDATA\t·constants+0x0c(SB)/4, $0x6b206574\nGLOBL\t·constants(SB), NOPTR|RODATA, $32\n\nDATA\t·incRotMatrix+0x00(SB)/4, $0x00000000\nDATA\t·incRotMatrix+0x04(SB)/4, $0x00000001\nDATA\t·incRotMatrix+0x08(SB)/4, $0x00000002\nDATA\t·incRotMatrix+0x0c(SB)/4, $0x00000003\nDATA\t·incRotMatrix+0x10(SB)/4, $0x02010003\nDATA\t·incRotMatrix+0x14(SB)/4, $0x06050407\nDATA\t·incRotMatrix+0x18(SB)/4, $0x0A09080B\nDATA\t·incRotMatrix+0x1c(SB)/4, $0x0E0D0C0F\nGLOBL\t·incRotMatrix(SB), NOPTR|RODATA, $32\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_generic.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// Package chacha20 implements the ChaCha20 and XChaCha20 encryption algorithms\n// as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.\npackage chacha20\n\nimport (\n\t\"crypto/cipher\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"math/bits\"\n\n\t\"golang.org/x/crypto/internal/alias\"\n)\n\nconst (\n\t// KeySize is the size of the key used by this cipher, in bytes.\n\tKeySize = 32\n\n\t// NonceSize is the size of the nonce used with the standard variant of this\n\t// cipher, in bytes.\n\t//\n\t// Note that this is too short to be safely generated at random if the same\n\t// key is reused more than 2³² times.\n\tNonceSize = 12\n\n\t// NonceSizeX is the size of the nonce used with the XChaCha20 variant of\n\t// this cipher, in bytes.\n\tNonceSizeX = 24\n)\n\n// Cipher is a stateful instance of ChaCha20 or XChaCha20 using a particular key\n// and nonce. A *Cipher implements the cipher.Stream interface.\ntype Cipher struct {\n\t// The ChaCha20 state is 16 words: 4 constant, 8 of key, 1 of counter\n\t// (incremented after each block), and 3 of nonce.\n\tkey     [8]uint32\n\tcounter uint32\n\tnonce   [3]uint32\n\n\t// The last len bytes of buf are leftover key stream bytes from the previous\n\t// XORKeyStream invocation. The size of buf depends on how many blocks are\n\t// computed at a time by xorKeyStreamBlocks.\n\tbuf [bufSize]byte\n\tlen int\n\n\t// overflow is set when the counter overflowed, no more blocks can be\n\t// generated, and the next XORKeyStream call should panic.\n\toverflow bool\n\n\t// The counter-independent results of the first round are cached after they\n\t// are computed the first time.\n\tprecompDone      bool\n\tp1, p5, p9, p13  uint32\n\tp2, p6, p10, p14 uint32\n\tp3, p7, p11, p15 uint32\n}\n\nvar _ cipher.Stream = (*Cipher)(nil)\n\n// NewUnauthenticatedCipher creates a new ChaCha20 stream cipher with the given\n// 32 bytes key and a 12 or 24 bytes nonce. If a nonce of 24 bytes is provided,\n// the XChaCha20 construction will be used. It returns an error if key or nonce\n// have any other length.\n//\n// Note that ChaCha20, like all stream ciphers, is not authenticated and allows\n// attackers to silently tamper with the plaintext. For this reason, it is more\n// appropriate as a building block than as a standalone encryption mechanism.\n// Instead, consider using package golang.org/x/crypto/chacha20poly1305.\nfunc NewUnauthenticatedCipher(key, nonce []byte) (*Cipher, error) {\n\t// This function is split into a wrapper so that the Cipher allocation will\n\t// be inlined, and depending on how the caller uses the return value, won't\n\t// escape to the heap.\n\tc := &Cipher{}\n\treturn newUnauthenticatedCipher(c, key, nonce)\n}\n\nfunc newUnauthenticatedCipher(c *Cipher, key, nonce []byte) (*Cipher, error) {\n\tif len(key) != KeySize {\n\t\treturn nil, errors.New(\"chacha20: wrong key size\")\n\t}\n\tif len(nonce) == NonceSizeX {\n\t\t// XChaCha20 uses the ChaCha20 core to mix 16 bytes of the nonce into a\n\t\t// derived key, allowing it to operate on a nonce of 24 bytes. See\n\t\t// draft-irtf-cfrg-xchacha-01, Section 2.3.\n\t\tkey, _ = HChaCha20(key, nonce[0:16])\n\t\tcNonce := make([]byte, NonceSize)\n\t\tcopy(cNonce[4:12], nonce[16:24])\n\t\tnonce = cNonce\n\t} else if len(nonce) != NonceSize {\n\t\treturn nil, errors.New(\"chacha20: wrong nonce size\")\n\t}\n\n\tkey, nonce = key[:KeySize], nonce[:NonceSize] // bounds check elimination hint\n\tc.key = [8]uint32{\n\t\tbinary.LittleEndian.Uint32(key[0:4]),\n\t\tbinary.LittleEndian.Uint32(key[4:8]),\n\t\tbinary.LittleEndian.Uint32(key[8:12]),\n\t\tbinary.LittleEndian.Uint32(key[12:16]),\n\t\tbinary.LittleEndian.Uint32(key[16:20]),\n\t\tbinary.LittleEndian.Uint32(key[20:24]),\n\t\tbinary.LittleEndian.Uint32(key[24:28]),\n\t\tbinary.LittleEndian.Uint32(key[28:32]),\n\t}\n\tc.nonce = [3]uint32{\n\t\tbinary.LittleEndian.Uint32(nonce[0:4]),\n\t\tbinary.LittleEndian.Uint32(nonce[4:8]),\n\t\tbinary.LittleEndian.Uint32(nonce[8:12]),\n\t}\n\treturn c, nil\n}\n\n// The constant first 4 words of the ChaCha20 state.\nconst (\n\tj0 uint32 = 0x61707865 // expa\n\tj1 uint32 = 0x3320646e // nd 3\n\tj2 uint32 = 0x79622d32 // 2-by\n\tj3 uint32 = 0x6b206574 // te k\n)\n\nconst blockSize = 64\n\n// quarterRound is the core of ChaCha20. It shuffles the bits of 4 state words.\n// It's executed 4 times for each of the 20 ChaCha20 rounds, operating on all 16\n// words each round, in columnar or diagonal groups of 4 at a time.\nfunc quarterRound(a, b, c, d uint32) (uint32, uint32, uint32, uint32) {\n\ta += b\n\td ^= a\n\td = bits.RotateLeft32(d, 16)\n\tc += d\n\tb ^= c\n\tb = bits.RotateLeft32(b, 12)\n\ta += b\n\td ^= a\n\td = bits.RotateLeft32(d, 8)\n\tc += d\n\tb ^= c\n\tb = bits.RotateLeft32(b, 7)\n\treturn a, b, c, d\n}\n\n// SetCounter sets the Cipher counter. The next invocation of XORKeyStream will\n// behave as if (64 * counter) bytes had been encrypted so far.\n//\n// To prevent accidental counter reuse, SetCounter panics if counter is less\n// than the current value.\n//\n// Note that the execution time of XORKeyStream is not independent of the\n// counter value.\nfunc (s *Cipher) SetCounter(counter uint32) {\n\t// Internally, s may buffer multiple blocks, which complicates this\n\t// implementation slightly. When checking whether the counter has rolled\n\t// back, we must use both s.counter and s.len to determine how many blocks\n\t// we have already output.\n\toutputCounter := s.counter - uint32(s.len)/blockSize\n\tif s.overflow || counter < outputCounter {\n\t\tpanic(\"chacha20: SetCounter attempted to rollback counter\")\n\t}\n\n\t// In the general case, we set the new counter value and reset s.len to 0,\n\t// causing the next call to XORKeyStream to refill the buffer. However, if\n\t// we're advancing within the existing buffer, we can save work by simply\n\t// setting s.len.\n\tif counter < s.counter {\n\t\ts.len = int(s.counter-counter) * blockSize\n\t} else {\n\t\ts.counter = counter\n\t\ts.len = 0\n\t}\n}\n\n// XORKeyStream XORs each byte in the given slice with a byte from the\n// cipher's key stream. Dst and src must overlap entirely or not at all.\n//\n// If len(dst) < len(src), XORKeyStream will panic. It is acceptable\n// to pass a dst bigger than src, and in that case, XORKeyStream will\n// only update dst[:len(src)] and will not touch the rest of dst.\n//\n// Multiple calls to XORKeyStream behave as if the concatenation of\n// the src buffers was passed in a single run. That is, Cipher\n// maintains state and does not reset at each XORKeyStream call.\nfunc (s *Cipher) XORKeyStream(dst, src []byte) {\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\tif len(dst) < len(src) {\n\t\tpanic(\"chacha20: output smaller than input\")\n\t}\n\tdst = dst[:len(src)]\n\tif alias.InexactOverlap(dst, src) {\n\t\tpanic(\"chacha20: invalid buffer overlap\")\n\t}\n\n\t// First, drain any remaining key stream from a previous XORKeyStream.\n\tif s.len != 0 {\n\t\tkeyStream := s.buf[bufSize-s.len:]\n\t\tif len(src) < len(keyStream) {\n\t\t\tkeyStream = keyStream[:len(src)]\n\t\t}\n\t\t_ = src[len(keyStream)-1] // bounds check elimination hint\n\t\tfor i, b := range keyStream {\n\t\t\tdst[i] = src[i] ^ b\n\t\t}\n\t\ts.len -= len(keyStream)\n\t\tdst, src = dst[len(keyStream):], src[len(keyStream):]\n\t}\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\t// If we'd need to let the counter overflow and keep generating output,\n\t// panic immediately. If instead we'd only reach the last block, remember\n\t// not to generate any more output after the buffer is drained.\n\tnumBlocks := (uint64(len(src)) + blockSize - 1) / blockSize\n\tif s.overflow || uint64(s.counter)+numBlocks > 1<<32 {\n\t\tpanic(\"chacha20: counter overflow\")\n\t} else if uint64(s.counter)+numBlocks == 1<<32 {\n\t\ts.overflow = true\n\t}\n\n\t// xorKeyStreamBlocks implementations expect input lengths that are a\n\t// multiple of bufSize. Platform-specific ones process multiple blocks at a\n\t// time, so have bufSizes that are a multiple of blockSize.\n\n\tfull := len(src) - len(src)%bufSize\n\tif full > 0 {\n\t\ts.xorKeyStreamBlocks(dst[:full], src[:full])\n\t}\n\tdst, src = dst[full:], src[full:]\n\n\t// If using a multi-block xorKeyStreamBlocks would overflow, use the generic\n\t// one that does one block at a time.\n\tconst blocksPerBuf = bufSize / blockSize\n\tif uint64(s.counter)+blocksPerBuf > 1<<32 {\n\t\ts.buf = [bufSize]byte{}\n\t\tnumBlocks := (len(src) + blockSize - 1) / blockSize\n\t\tbuf := s.buf[bufSize-numBlocks*blockSize:]\n\t\tcopy(buf, src)\n\t\ts.xorKeyStreamBlocksGeneric(buf, buf)\n\t\ts.len = len(buf) - copy(dst, buf)\n\t\treturn\n\t}\n\n\t// If we have a partial (multi-)block, pad it for xorKeyStreamBlocks, and\n\t// keep the leftover keystream for the next XORKeyStream invocation.\n\tif len(src) > 0 {\n\t\ts.buf = [bufSize]byte{}\n\t\tcopy(s.buf[:], src)\n\t\ts.xorKeyStreamBlocks(s.buf[:], s.buf[:])\n\t\ts.len = bufSize - copy(dst, s.buf[:])\n\t}\n}\n\nfunc (s *Cipher) xorKeyStreamBlocksGeneric(dst, src []byte) {\n\tif len(dst) != len(src) || len(dst)%blockSize != 0 {\n\t\tpanic(\"chacha20: internal error: wrong dst and/or src length\")\n\t}\n\n\t// To generate each block of key stream, the initial cipher state\n\t// (represented below) is passed through 20 rounds of shuffling,\n\t// alternatively applying quarterRounds by columns (like 1, 5, 9, 13)\n\t// or by diagonals (like 1, 6, 11, 12).\n\t//\n\t//      0:cccccccc   1:cccccccc   2:cccccccc   3:cccccccc\n\t//      4:kkkkkkkk   5:kkkkkkkk   6:kkkkkkkk   7:kkkkkkkk\n\t//      8:kkkkkkkk   9:kkkkkkkk  10:kkkkkkkk  11:kkkkkkkk\n\t//     12:bbbbbbbb  13:nnnnnnnn  14:nnnnnnnn  15:nnnnnnnn\n\t//\n\t//            c=constant k=key b=blockcount n=nonce\n\tvar (\n\t\tc0, c1, c2, c3   = j0, j1, j2, j3\n\t\tc4, c5, c6, c7   = s.key[0], s.key[1], s.key[2], s.key[3]\n\t\tc8, c9, c10, c11 = s.key[4], s.key[5], s.key[6], s.key[7]\n\t\t_, c13, c14, c15 = s.counter, s.nonce[0], s.nonce[1], s.nonce[2]\n\t)\n\n\t// Three quarters of the first round don't depend on the counter, so we can\n\t// calculate them here, and reuse them for multiple blocks in the loop, and\n\t// for future XORKeyStream invocations.\n\tif !s.precompDone {\n\t\ts.p1, s.p5, s.p9, s.p13 = quarterRound(c1, c5, c9, c13)\n\t\ts.p2, s.p6, s.p10, s.p14 = quarterRound(c2, c6, c10, c14)\n\t\ts.p3, s.p7, s.p11, s.p15 = quarterRound(c3, c7, c11, c15)\n\t\ts.precompDone = true\n\t}\n\n\t// A condition of len(src) > 0 would be sufficient, but this also\n\t// acts as a bounds check elimination hint.\n\tfor len(src) >= 64 && len(dst) >= 64 {\n\t\t// The remainder of the first column round.\n\t\tfcr0, fcr4, fcr8, fcr12 := quarterRound(c0, c4, c8, s.counter)\n\n\t\t// The second diagonal round.\n\t\tx0, x5, x10, x15 := quarterRound(fcr0, s.p5, s.p10, s.p15)\n\t\tx1, x6, x11, x12 := quarterRound(s.p1, s.p6, s.p11, fcr12)\n\t\tx2, x7, x8, x13 := quarterRound(s.p2, s.p7, fcr8, s.p13)\n\t\tx3, x4, x9, x14 := quarterRound(s.p3, fcr4, s.p9, s.p14)\n\n\t\t// The remaining 18 rounds.\n\t\tfor i := 0; i < 9; i++ {\n\t\t\t// Column round.\n\t\t\tx0, x4, x8, x12 = quarterRound(x0, x4, x8, x12)\n\t\t\tx1, x5, x9, x13 = quarterRound(x1, x5, x9, x13)\n\t\t\tx2, x6, x10, x14 = quarterRound(x2, x6, x10, x14)\n\t\t\tx3, x7, x11, x15 = quarterRound(x3, x7, x11, x15)\n\n\t\t\t// Diagonal round.\n\t\t\tx0, x5, x10, x15 = quarterRound(x0, x5, x10, x15)\n\t\t\tx1, x6, x11, x12 = quarterRound(x1, x6, x11, x12)\n\t\t\tx2, x7, x8, x13 = quarterRound(x2, x7, x8, x13)\n\t\t\tx3, x4, x9, x14 = quarterRound(x3, x4, x9, x14)\n\t\t}\n\n\t\t// Add back the initial state to generate the key stream, then\n\t\t// XOR the key stream with the source and write out the result.\n\t\taddXor(dst[0:4], src[0:4], x0, c0)\n\t\taddXor(dst[4:8], src[4:8], x1, c1)\n\t\taddXor(dst[8:12], src[8:12], x2, c2)\n\t\taddXor(dst[12:16], src[12:16], x3, c3)\n\t\taddXor(dst[16:20], src[16:20], x4, c4)\n\t\taddXor(dst[20:24], src[20:24], x5, c5)\n\t\taddXor(dst[24:28], src[24:28], x6, c6)\n\t\taddXor(dst[28:32], src[28:32], x7, c7)\n\t\taddXor(dst[32:36], src[32:36], x8, c8)\n\t\taddXor(dst[36:40], src[36:40], x9, c9)\n\t\taddXor(dst[40:44], src[40:44], x10, c10)\n\t\taddXor(dst[44:48], src[44:48], x11, c11)\n\t\taddXor(dst[48:52], src[48:52], x12, s.counter)\n\t\taddXor(dst[52:56], src[52:56], x13, c13)\n\t\taddXor(dst[56:60], src[56:60], x14, c14)\n\t\taddXor(dst[60:64], src[60:64], x15, c15)\n\n\t\ts.counter += 1\n\n\t\tsrc, dst = src[blockSize:], dst[blockSize:]\n\t}\n}\n\n// HChaCha20 uses the ChaCha20 core to generate a derived key from a 32 bytes\n// key and a 16 bytes nonce. It returns an error if key or nonce have any other\n// length. It is used as part of the XChaCha20 construction.\nfunc HChaCha20(key, nonce []byte) ([]byte, error) {\n\t// This function is split into a wrapper so that the slice allocation will\n\t// be inlined, and depending on how the caller uses the return value, won't\n\t// escape to the heap.\n\tout := make([]byte, 32)\n\treturn hChaCha20(out, key, nonce)\n}\n\nfunc hChaCha20(out, key, nonce []byte) ([]byte, error) {\n\tif len(key) != KeySize {\n\t\treturn nil, errors.New(\"chacha20: wrong HChaCha20 key size\")\n\t}\n\tif len(nonce) != 16 {\n\t\treturn nil, errors.New(\"chacha20: wrong HChaCha20 nonce size\")\n\t}\n\n\tx0, x1, x2, x3 := j0, j1, j2, j3\n\tx4 := binary.LittleEndian.Uint32(key[0:4])\n\tx5 := binary.LittleEndian.Uint32(key[4:8])\n\tx6 := binary.LittleEndian.Uint32(key[8:12])\n\tx7 := binary.LittleEndian.Uint32(key[12:16])\n\tx8 := binary.LittleEndian.Uint32(key[16:20])\n\tx9 := binary.LittleEndian.Uint32(key[20:24])\n\tx10 := binary.LittleEndian.Uint32(key[24:28])\n\tx11 := binary.LittleEndian.Uint32(key[28:32])\n\tx12 := binary.LittleEndian.Uint32(nonce[0:4])\n\tx13 := binary.LittleEndian.Uint32(nonce[4:8])\n\tx14 := binary.LittleEndian.Uint32(nonce[8:12])\n\tx15 := binary.LittleEndian.Uint32(nonce[12:16])\n\n\tfor i := 0; i < 10; i++ {\n\t\t// Diagonal round.\n\t\tx0, x4, x8, x12 = quarterRound(x0, x4, x8, x12)\n\t\tx1, x5, x9, x13 = quarterRound(x1, x5, x9, x13)\n\t\tx2, x6, x10, x14 = quarterRound(x2, x6, x10, x14)\n\t\tx3, x7, x11, x15 = quarterRound(x3, x7, x11, x15)\n\n\t\t// Column round.\n\t\tx0, x5, x10, x15 = quarterRound(x0, x5, x10, x15)\n\t\tx1, x6, x11, x12 = quarterRound(x1, x6, x11, x12)\n\t\tx2, x7, x8, x13 = quarterRound(x2, x7, x8, x13)\n\t\tx3, x4, x9, x14 = quarterRound(x3, x4, x9, x14)\n\t}\n\n\t_ = out[31] // bounds check elimination hint\n\tbinary.LittleEndian.PutUint32(out[0:4], x0)\n\tbinary.LittleEndian.PutUint32(out[4:8], x1)\n\tbinary.LittleEndian.PutUint32(out[8:12], x2)\n\tbinary.LittleEndian.PutUint32(out[12:16], x3)\n\tbinary.LittleEndian.PutUint32(out[16:20], x12)\n\tbinary.LittleEndian.PutUint32(out[20:24], x13)\n\tbinary.LittleEndian.PutUint32(out[24:28], x14)\n\tbinary.LittleEndian.PutUint32(out[28:32], x15)\n\treturn out, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_noasm.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 && !s390x && !ppc64 && !ppc64le) || !gc || purego\n\npackage chacha20\n\nconst bufSize = blockSize\n\nfunc (s *Cipher) xorKeyStreamBlocks(dst, src []byte) {\n\ts.xorKeyStreamBlocksGeneric(dst, src)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.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 gc && !purego && (ppc64 || ppc64le)\n\npackage chacha20\n\nconst bufSize = 256\n\n//go:noescape\nfunc chaCha20_ctr32_vsx(out, inp *byte, len int, key *[8]uint32, counter *uint32)\n\nfunc (c *Cipher) xorKeyStreamBlocks(dst, src []byte) {\n\tchaCha20_ctr32_vsx(&dst[0], &src[0], len(src), &c.key, &c.counter)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.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// Based on CRYPTOGAMS code with the following comment:\n// # ====================================================================\n// # Written by Andy Polyakov <appro@openssl.org> for the OpenSSL\n// # project. The module is, however, dual licensed under OpenSSL and\n// # CRYPTOGAMS licenses depending on where you obtain it. For further\n// # details see http://www.openssl.org/~appro/cryptogams/.\n// # ====================================================================\n\n// Code for the perl script that generates the ppc64 assembler\n// can be found in the cryptogams repository at the link below. It is based on\n// the original from openssl.\n\n// https://github.com/dot-asm/cryptogams/commit/a60f5b50ed908e91\n\n// The differences in this and the original implementation are\n// due to the calling conventions and initialization of constants.\n\n//go:build gc && !purego && (ppc64 || ppc64le)\n\n#include \"textflag.h\"\n\n#define OUT  R3\n#define INP  R4\n#define LEN  R5\n#define KEY  R6\n#define CNT  R7\n#define TMP  R15\n\n#define CONSTBASE  R16\n#define BLOCKS R17\n\n// for VPERMXOR\n#define MASK  R18\n\nDATA consts<>+0x00(SB)/4, $0x61707865\nDATA consts<>+0x04(SB)/4, $0x3320646e\nDATA consts<>+0x08(SB)/4, $0x79622d32\nDATA consts<>+0x0c(SB)/4, $0x6b206574\nDATA consts<>+0x10(SB)/4, $0x00000001\nDATA consts<>+0x14(SB)/4, $0x00000000\nDATA consts<>+0x18(SB)/4, $0x00000000\nDATA consts<>+0x1c(SB)/4, $0x00000000\nDATA consts<>+0x20(SB)/4, $0x00000004\nDATA consts<>+0x24(SB)/4, $0x00000000\nDATA consts<>+0x28(SB)/4, $0x00000000\nDATA consts<>+0x2c(SB)/4, $0x00000000\nDATA consts<>+0x30(SB)/4, $0x0e0f0c0d\nDATA consts<>+0x34(SB)/4, $0x0a0b0809\nDATA consts<>+0x38(SB)/4, $0x06070405\nDATA consts<>+0x3c(SB)/4, $0x02030001\nDATA consts<>+0x40(SB)/4, $0x0d0e0f0c\nDATA consts<>+0x44(SB)/4, $0x090a0b08\nDATA consts<>+0x48(SB)/4, $0x05060704\nDATA consts<>+0x4c(SB)/4, $0x01020300\nDATA consts<>+0x50(SB)/4, $0x61707865\nDATA consts<>+0x54(SB)/4, $0x61707865\nDATA consts<>+0x58(SB)/4, $0x61707865\nDATA consts<>+0x5c(SB)/4, $0x61707865\nDATA consts<>+0x60(SB)/4, $0x3320646e\nDATA consts<>+0x64(SB)/4, $0x3320646e\nDATA consts<>+0x68(SB)/4, $0x3320646e\nDATA consts<>+0x6c(SB)/4, $0x3320646e\nDATA consts<>+0x70(SB)/4, $0x79622d32\nDATA consts<>+0x74(SB)/4, $0x79622d32\nDATA consts<>+0x78(SB)/4, $0x79622d32\nDATA consts<>+0x7c(SB)/4, $0x79622d32\nDATA consts<>+0x80(SB)/4, $0x6b206574\nDATA consts<>+0x84(SB)/4, $0x6b206574\nDATA consts<>+0x88(SB)/4, $0x6b206574\nDATA consts<>+0x8c(SB)/4, $0x6b206574\nDATA consts<>+0x90(SB)/4, $0x00000000\nDATA consts<>+0x94(SB)/4, $0x00000001\nDATA consts<>+0x98(SB)/4, $0x00000002\nDATA consts<>+0x9c(SB)/4, $0x00000003\nDATA consts<>+0xa0(SB)/4, $0x11223300\nDATA consts<>+0xa4(SB)/4, $0x55667744\nDATA consts<>+0xa8(SB)/4, $0x99aabb88\nDATA consts<>+0xac(SB)/4, $0xddeeffcc\nDATA consts<>+0xb0(SB)/4, $0x22330011\nDATA consts<>+0xb4(SB)/4, $0x66774455\nDATA consts<>+0xb8(SB)/4, $0xaabb8899\nDATA consts<>+0xbc(SB)/4, $0xeeffccdd\nGLOBL consts<>(SB), RODATA, $0xc0\n\n#ifdef GOARCH_ppc64\n#define BE_XXBRW_INIT() \\\n\t\tLVSL (R0)(R0), V24 \\\n\t\tVSPLTISB $3, V25   \\\n\t\tVXOR V24, V25, V24 \\\n\n#define BE_XXBRW(vr) VPERM vr, vr, V24, vr\n#else\n#define BE_XXBRW_INIT()\n#define BE_XXBRW(vr)\n#endif\n\n//func chaCha20_ctr32_vsx(out, inp *byte, len int, key *[8]uint32, counter *uint32)\nTEXT ·chaCha20_ctr32_vsx(SB),NOSPLIT,$64-40\n\tMOVD out+0(FP), OUT\n\tMOVD inp+8(FP), INP\n\tMOVD len+16(FP), LEN\n\tMOVD key+24(FP), KEY\n\tMOVD counter+32(FP), CNT\n\n\t// Addressing for constants\n\tMOVD $consts<>+0x00(SB), CONSTBASE\n\tMOVD $16, R8\n\tMOVD $32, R9\n\tMOVD $48, R10\n\tMOVD $64, R11\n\tSRD $6, LEN, BLOCKS\n\t// for VPERMXOR\n\tMOVD $consts<>+0xa0(SB), MASK\n\tMOVD $16, R20\n\t// V16\n\tLXVW4X (CONSTBASE)(R0), VS48\n\tADD $80,CONSTBASE\n\n\t// Load key into V17,V18\n\tLXVW4X (KEY)(R0), VS49\n\tLXVW4X (KEY)(R8), VS50\n\n\t// Load CNT, NONCE into V19\n\tLXVW4X (CNT)(R0), VS51\n\n\t// Clear V27\n\tVXOR V27, V27, V27\n\n\tBE_XXBRW_INIT()\n\n\t// V28\n\tLXVW4X (CONSTBASE)(R11), VS60\n\n\t// Load mask constants for VPERMXOR\n\tLXVW4X (MASK)(R0), V20\n\tLXVW4X (MASK)(R20), V21\n\n\t// splat slot from V19 -> V26\n\tVSPLTW $0, V19, V26\n\n\tVSLDOI $4, V19, V27, V19\n\tVSLDOI $12, V27, V19, V19\n\n\tVADDUWM V26, V28, V26\n\n\tMOVD $10, R14\n\tMOVD R14, CTR\n\tPCALIGN $16\nloop_outer_vsx:\n\t// V0, V1, V2, V3\n\tLXVW4X (R0)(CONSTBASE), VS32\n\tLXVW4X (R8)(CONSTBASE), VS33\n\tLXVW4X (R9)(CONSTBASE), VS34\n\tLXVW4X (R10)(CONSTBASE), VS35\n\n\t// splat values from V17, V18 into V4-V11\n\tVSPLTW $0, V17, V4\n\tVSPLTW $1, V17, V5\n\tVSPLTW $2, V17, V6\n\tVSPLTW $3, V17, V7\n\tVSPLTW $0, V18, V8\n\tVSPLTW $1, V18, V9\n\tVSPLTW $2, V18, V10\n\tVSPLTW $3, V18, V11\n\n\t// VOR\n\tVOR V26, V26, V12\n\n\t// splat values from V19 -> V13, V14, V15\n\tVSPLTW $1, V19, V13\n\tVSPLTW $2, V19, V14\n\tVSPLTW $3, V19, V15\n\n\t// splat   const values\n\tVSPLTISW $-16, V27\n\tVSPLTISW $12, V28\n\tVSPLTISW $8, V29\n\tVSPLTISW $7, V30\n\tPCALIGN $16\nloop_vsx:\n\tVADDUWM V0, V4, V0\n\tVADDUWM V1, V5, V1\n\tVADDUWM V2, V6, V2\n\tVADDUWM V3, V7, V3\n\n\tVPERMXOR V12, V0, V21, V12\n\tVPERMXOR V13, V1, V21, V13\n\tVPERMXOR V14, V2, V21, V14\n\tVPERMXOR V15, V3, V21, V15\n\n\tVADDUWM V8, V12, V8\n\tVADDUWM V9, V13, V9\n\tVADDUWM V10, V14, V10\n\tVADDUWM V11, V15, V11\n\n\tVXOR V4, V8, V4\n\tVXOR V5, V9, V5\n\tVXOR V6, V10, V6\n\tVXOR V7, V11, V7\n\n\tVRLW V4, V28, V4\n\tVRLW V5, V28, V5\n\tVRLW V6, V28, V6\n\tVRLW V7, V28, V7\n\n\tVADDUWM V0, V4, V0\n\tVADDUWM V1, V5, V1\n\tVADDUWM V2, V6, V2\n\tVADDUWM V3, V7, V3\n\n\tVPERMXOR V12, V0, V20, V12\n\tVPERMXOR V13, V1, V20, V13\n\tVPERMXOR V14, V2, V20, V14\n\tVPERMXOR V15, V3, V20, V15\n\n\tVADDUWM V8, V12, V8\n\tVADDUWM V9, V13, V9\n\tVADDUWM V10, V14, V10\n\tVADDUWM V11, V15, V11\n\n\tVXOR V4, V8, V4\n\tVXOR V5, V9, V5\n\tVXOR V6, V10, V6\n\tVXOR V7, V11, V7\n\n\tVRLW V4, V30, V4\n\tVRLW V5, V30, V5\n\tVRLW V6, V30, V6\n\tVRLW V7, V30, V7\n\n\tVADDUWM V0, V5, V0\n\tVADDUWM V1, V6, V1\n\tVADDUWM V2, V7, V2\n\tVADDUWM V3, V4, V3\n\n\tVPERMXOR V15, V0, V21, V15\n\tVPERMXOR V12, V1, V21, V12\n\tVPERMXOR V13, V2, V21, V13\n\tVPERMXOR V14, V3, V21, V14\n\n\tVADDUWM V10, V15, V10\n\tVADDUWM V11, V12, V11\n\tVADDUWM V8, V13, V8\n\tVADDUWM V9, V14, V9\n\n\tVXOR V5, V10, V5\n\tVXOR V6, V11, V6\n\tVXOR V7, V8, V7\n\tVXOR V4, V9, V4\n\n\tVRLW V5, V28, V5\n\tVRLW V6, V28, V6\n\tVRLW V7, V28, V7\n\tVRLW V4, V28, V4\n\n\tVADDUWM V0, V5, V0\n\tVADDUWM V1, V6, V1\n\tVADDUWM V2, V7, V2\n\tVADDUWM V3, V4, V3\n\n\tVPERMXOR V15, V0, V20, V15\n\tVPERMXOR V12, V1, V20, V12\n\tVPERMXOR V13, V2, V20, V13\n\tVPERMXOR V14, V3, V20, V14\n\n\tVADDUWM V10, V15, V10\n\tVADDUWM V11, V12, V11\n\tVADDUWM V8, V13, V8\n\tVADDUWM V9, V14, V9\n\n\tVXOR V5, V10, V5\n\tVXOR V6, V11, V6\n\tVXOR V7, V8, V7\n\tVXOR V4, V9, V4\n\n\tVRLW V5, V30, V5\n\tVRLW V6, V30, V6\n\tVRLW V7, V30, V7\n\tVRLW V4, V30, V4\n\tBDNZ   loop_vsx\n\n\tVADDUWM V12, V26, V12\n\n\tVMRGEW V0, V1, V27\n\tVMRGEW V2, V3, V28\n\n\tVMRGOW V0, V1, V0\n\tVMRGOW V2, V3, V2\n\n\tVMRGEW V4, V5, V29\n\tVMRGEW V6, V7, V30\n\n\tXXPERMDI VS32, VS34, $0, VS33\n\tXXPERMDI VS32, VS34, $3, VS35\n\tXXPERMDI VS59, VS60, $0, VS32\n\tXXPERMDI VS59, VS60, $3, VS34\n\n\tVMRGOW V4, V5, V4\n\tVMRGOW V6, V7, V6\n\n\tVMRGEW V8, V9, V27\n\tVMRGEW V10, V11, V28\n\n\tXXPERMDI VS36, VS38, $0, VS37\n\tXXPERMDI VS36, VS38, $3, VS39\n\tXXPERMDI VS61, VS62, $0, VS36\n\tXXPERMDI VS61, VS62, $3, VS38\n\n\tVMRGOW V8, V9, V8\n\tVMRGOW V10, V11, V10\n\n\tVMRGEW V12, V13, V29\n\tVMRGEW V14, V15, V30\n\n\tXXPERMDI VS40, VS42, $0, VS41\n\tXXPERMDI VS40, VS42, $3, VS43\n\tXXPERMDI VS59, VS60, $0, VS40\n\tXXPERMDI VS59, VS60, $3, VS42\n\n\tVMRGOW V12, V13, V12\n\tVMRGOW V14, V15, V14\n\n\tVSPLTISW $4, V27\n\tVADDUWM V26, V27, V26\n\n\tXXPERMDI VS44, VS46, $0, VS45\n\tXXPERMDI VS44, VS46, $3, VS47\n\tXXPERMDI VS61, VS62, $0, VS44\n\tXXPERMDI VS61, VS62, $3, VS46\n\n\tVADDUWM V0, V16, V0\n\tVADDUWM V4, V17, V4\n\tVADDUWM V8, V18, V8\n\tVADDUWM V12, V19, V12\n\n\tBE_XXBRW(V0)\n\tBE_XXBRW(V4)\n\tBE_XXBRW(V8)\n\tBE_XXBRW(V12)\n\n\tCMPU LEN, $64\n\tBLT tail_vsx\n\n\t// Bottom of loop\n\tLXVW4X (INP)(R0), VS59\n\tLXVW4X (INP)(R8), VS60\n\tLXVW4X (INP)(R9), VS61\n\tLXVW4X (INP)(R10), VS62\n\n\tVXOR V27, V0, V27\n\tVXOR V28, V4, V28\n\tVXOR V29, V8, V29\n\tVXOR V30, V12, V30\n\n\tSTXVW4X VS59, (OUT)(R0)\n\tSTXVW4X VS60, (OUT)(R8)\n\tADD     $64, INP\n\tSTXVW4X VS61, (OUT)(R9)\n\tADD     $-64, LEN\n\tSTXVW4X VS62, (OUT)(R10)\n\tADD     $64, OUT\n\tBEQ     done_vsx\n\n\tVADDUWM V1, V16, V0\n\tVADDUWM V5, V17, V4\n\tVADDUWM V9, V18, V8\n\tVADDUWM V13, V19, V12\n\n\tBE_XXBRW(V0)\n\tBE_XXBRW(V4)\n\tBE_XXBRW(V8)\n\tBE_XXBRW(V12)\n\n\tCMPU  LEN, $64\n\tBLT   tail_vsx\n\n\tLXVW4X (INP)(R0), VS59\n\tLXVW4X (INP)(R8), VS60\n\tLXVW4X (INP)(R9), VS61\n\tLXVW4X (INP)(R10), VS62\n\n\tVXOR V27, V0, V27\n\tVXOR V28, V4, V28\n\tVXOR V29, V8, V29\n\tVXOR V30, V12, V30\n\n\tSTXVW4X VS59, (OUT)(R0)\n\tSTXVW4X VS60, (OUT)(R8)\n\tADD     $64, INP\n\tSTXVW4X VS61, (OUT)(R9)\n\tADD     $-64, LEN\n\tSTXVW4X VS62, (OUT)(V10)\n\tADD     $64, OUT\n\tBEQ     done_vsx\n\n\tVADDUWM V2, V16, V0\n\tVADDUWM V6, V17, V4\n\tVADDUWM V10, V18, V8\n\tVADDUWM V14, V19, V12\n\n\tBE_XXBRW(V0)\n\tBE_XXBRW(V4)\n\tBE_XXBRW(V8)\n\tBE_XXBRW(V12)\n\n\tCMPU LEN, $64\n\tBLT  tail_vsx\n\n\tLXVW4X (INP)(R0), VS59\n\tLXVW4X (INP)(R8), VS60\n\tLXVW4X (INP)(R9), VS61\n\tLXVW4X (INP)(R10), VS62\n\n\tVXOR V27, V0, V27\n\tVXOR V28, V4, V28\n\tVXOR V29, V8, V29\n\tVXOR V30, V12, V30\n\n\tSTXVW4X VS59, (OUT)(R0)\n\tSTXVW4X VS60, (OUT)(R8)\n\tADD     $64, INP\n\tSTXVW4X VS61, (OUT)(R9)\n\tADD     $-64, LEN\n\tSTXVW4X VS62, (OUT)(R10)\n\tADD     $64, OUT\n\tBEQ     done_vsx\n\n\tVADDUWM V3, V16, V0\n\tVADDUWM V7, V17, V4\n\tVADDUWM V11, V18, V8\n\tVADDUWM V15, V19, V12\n\n\tBE_XXBRW(V0)\n\tBE_XXBRW(V4)\n\tBE_XXBRW(V8)\n\tBE_XXBRW(V12)\n\n\tCMPU  LEN, $64\n\tBLT   tail_vsx\n\n\tLXVW4X (INP)(R0), VS59\n\tLXVW4X (INP)(R8), VS60\n\tLXVW4X (INP)(R9), VS61\n\tLXVW4X (INP)(R10), VS62\n\n\tVXOR V27, V0, V27\n\tVXOR V28, V4, V28\n\tVXOR V29, V8, V29\n\tVXOR V30, V12, V30\n\n\tSTXVW4X VS59, (OUT)(R0)\n\tSTXVW4X VS60, (OUT)(R8)\n\tADD     $64, INP\n\tSTXVW4X VS61, (OUT)(R9)\n\tADD     $-64, LEN\n\tSTXVW4X VS62, (OUT)(R10)\n\tADD     $64, OUT\n\n\tMOVD $10, R14\n\tMOVD R14, CTR\n\tBNE  loop_outer_vsx\n\ndone_vsx:\n\t// Increment counter by number of 64 byte blocks\n\tMOVWZ (CNT), R14\n\tADD  BLOCKS, R14\n\tMOVWZ R14, (CNT)\n\tRET\n\ntail_vsx:\n\tADD  $32, R1, R11\n\tMOVD LEN, CTR\n\n\t// Save values on stack to copy from\n\tSTXVW4X VS32, (R11)(R0)\n\tSTXVW4X VS36, (R11)(R8)\n\tSTXVW4X VS40, (R11)(R9)\n\tSTXVW4X VS44, (R11)(R10)\n\tADD $-1, R11, R12\n\tADD $-1, INP\n\tADD $-1, OUT\n\tPCALIGN $16\nlooptail_vsx:\n\t// Copying the result to OUT\n\t// in bytes.\n\tMOVBZU 1(R12), KEY\n\tMOVBZU 1(INP), TMP\n\tXOR    KEY, TMP, KEY\n\tMOVBU  KEY, 1(OUT)\n\tBDNZ   looptail_vsx\n\n\t// Clear the stack values\n\tSTXVW4X VS48, (R11)(R0)\n\tSTXVW4X VS48, (R11)(R8)\n\tSTXVW4X VS48, (R11)(R9)\n\tSTXVW4X VS48, (R11)(R10)\n\tBR      done_vsx\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_s390x.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 gc && !purego\n\npackage chacha20\n\nimport \"golang.org/x/sys/cpu\"\n\nvar haveAsm = cpu.S390X.HasVX\n\nconst bufSize = 256\n\n// xorKeyStreamVX is an assembly implementation of XORKeyStream. It must only\n// be called when the vector facility is available. Implementation in asm_s390x.s.\n//\n//go:noescape\nfunc xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)\n\nfunc (c *Cipher) xorKeyStreamBlocks(dst, src []byte) {\n\tif cpu.S390X.HasVX {\n\t\txorKeyStreamVX(dst, src, &c.key, &c.nonce, &c.counter)\n\t} else {\n\t\tc.xorKeyStreamBlocksGeneric(dst, src)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/chacha_s390x.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 && !purego\n\n#include \"go_asm.h\"\n#include \"textflag.h\"\n\n// This is an implementation of the ChaCha20 encryption algorithm as\n// specified in RFC 7539. It uses vector instructions to compute\n// 4 keystream blocks in parallel (256 bytes) which are then XORed\n// with the bytes in the input slice.\n\nGLOBL ·constants<>(SB), RODATA|NOPTR, $32\n// BSWAP: swap bytes in each 4-byte element\nDATA ·constants<>+0x00(SB)/4, $0x03020100\nDATA ·constants<>+0x04(SB)/4, $0x07060504\nDATA ·constants<>+0x08(SB)/4, $0x0b0a0908\nDATA ·constants<>+0x0c(SB)/4, $0x0f0e0d0c\n// J0: [j0, j1, j2, j3]\nDATA ·constants<>+0x10(SB)/4, $0x61707865\nDATA ·constants<>+0x14(SB)/4, $0x3320646e\nDATA ·constants<>+0x18(SB)/4, $0x79622d32\nDATA ·constants<>+0x1c(SB)/4, $0x6b206574\n\n#define BSWAP V5\n#define J0    V6\n#define KEY0  V7\n#define KEY1  V8\n#define NONCE V9\n#define CTR   V10\n#define M0    V11\n#define M1    V12\n#define M2    V13\n#define M3    V14\n#define INC   V15\n#define X0    V16\n#define X1    V17\n#define X2    V18\n#define X3    V19\n#define X4    V20\n#define X5    V21\n#define X6    V22\n#define X7    V23\n#define X8    V24\n#define X9    V25\n#define X10   V26\n#define X11   V27\n#define X12   V28\n#define X13   V29\n#define X14   V30\n#define X15   V31\n\n#define NUM_ROUNDS 20\n\n#define ROUND4(a0, a1, a2, a3, b0, b1, b2, b3, c0, c1, c2, c3, d0, d1, d2, d3) \\\n\tVAF    a1, a0, a0  \\\n\tVAF    b1, b0, b0  \\\n\tVAF    c1, c0, c0  \\\n\tVAF    d1, d0, d0  \\\n\tVX     a0, a2, a2  \\\n\tVX     b0, b2, b2  \\\n\tVX     c0, c2, c2  \\\n\tVX     d0, d2, d2  \\\n\tVERLLF $16, a2, a2 \\\n\tVERLLF $16, b2, b2 \\\n\tVERLLF $16, c2, c2 \\\n\tVERLLF $16, d2, d2 \\\n\tVAF    a2, a3, a3  \\\n\tVAF    b2, b3, b3  \\\n\tVAF    c2, c3, c3  \\\n\tVAF    d2, d3, d3  \\\n\tVX     a3, a1, a1  \\\n\tVX     b3, b1, b1  \\\n\tVX     c3, c1, c1  \\\n\tVX     d3, d1, d1  \\\n\tVERLLF $12, a1, a1 \\\n\tVERLLF $12, b1, b1 \\\n\tVERLLF $12, c1, c1 \\\n\tVERLLF $12, d1, d1 \\\n\tVAF    a1, a0, a0  \\\n\tVAF    b1, b0, b0  \\\n\tVAF    c1, c0, c0  \\\n\tVAF    d1, d0, d0  \\\n\tVX     a0, a2, a2  \\\n\tVX     b0, b2, b2  \\\n\tVX     c0, c2, c2  \\\n\tVX     d0, d2, d2  \\\n\tVERLLF $8, a2, a2  \\\n\tVERLLF $8, b2, b2  \\\n\tVERLLF $8, c2, c2  \\\n\tVERLLF $8, d2, d2  \\\n\tVAF    a2, a3, a3  \\\n\tVAF    b2, b3, b3  \\\n\tVAF    c2, c3, c3  \\\n\tVAF    d2, d3, d3  \\\n\tVX     a3, a1, a1  \\\n\tVX     b3, b1, b1  \\\n\tVX     c3, c1, c1  \\\n\tVX     d3, d1, d1  \\\n\tVERLLF $7, a1, a1  \\\n\tVERLLF $7, b1, b1  \\\n\tVERLLF $7, c1, c1  \\\n\tVERLLF $7, d1, d1\n\n#define PERMUTE(mask, v0, v1, v2, v3) \\\n\tVPERM v0, v0, mask, v0 \\\n\tVPERM v1, v1, mask, v1 \\\n\tVPERM v2, v2, mask, v2 \\\n\tVPERM v3, v3, mask, v3\n\n#define ADDV(x, v0, v1, v2, v3) \\\n\tVAF x, v0, v0 \\\n\tVAF x, v1, v1 \\\n\tVAF x, v2, v2 \\\n\tVAF x, v3, v3\n\n#define XORV(off, dst, src, v0, v1, v2, v3) \\\n\tVLM  off(src), M0, M3          \\\n\tPERMUTE(BSWAP, v0, v1, v2, v3) \\\n\tVX   v0, M0, M0                \\\n\tVX   v1, M1, M1                \\\n\tVX   v2, M2, M2                \\\n\tVX   v3, M3, M3                \\\n\tVSTM M0, M3, off(dst)\n\n#define SHUFFLE(a, b, c, d, t, u, v, w) \\\n\tVMRHF a, c, t \\ // t = {a[0], c[0], a[1], c[1]}\n\tVMRHF b, d, u \\ // u = {b[0], d[0], b[1], d[1]}\n\tVMRLF a, c, v \\ // v = {a[2], c[2], a[3], c[3]}\n\tVMRLF b, d, w \\ // w = {b[2], d[2], b[3], d[3]}\n\tVMRHF t, u, a \\ // a = {a[0], b[0], c[0], d[0]}\n\tVMRLF t, u, b \\ // b = {a[1], b[1], c[1], d[1]}\n\tVMRHF v, w, c \\ // c = {a[2], b[2], c[2], d[2]}\n\tVMRLF v, w, d // d = {a[3], b[3], c[3], d[3]}\n\n// func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)\nTEXT ·xorKeyStreamVX(SB), NOSPLIT, $0\n\tMOVD $·constants<>(SB), R1\n\tMOVD dst+0(FP), R2         // R2=&dst[0]\n\tLMG  src+24(FP), R3, R4    // R3=&src[0] R4=len(src)\n\tMOVD key+48(FP), R5        // R5=key\n\tMOVD nonce+56(FP), R6      // R6=nonce\n\tMOVD counter+64(FP), R7    // R7=counter\n\n\t// load BSWAP and J0\n\tVLM (R1), BSWAP, J0\n\n\t// setup\n\tMOVD  $95, R0\n\tVLM   (R5), KEY0, KEY1\n\tVLL   R0, (R6), NONCE\n\tVZERO M0\n\tVLEIB $7, $32, M0\n\tVSRLB M0, NONCE, NONCE\n\n\t// initialize counter values\n\tVLREPF (R7), CTR\n\tVZERO  INC\n\tVLEIF  $1, $1, INC\n\tVLEIF  $2, $2, INC\n\tVLEIF  $3, $3, INC\n\tVAF    INC, CTR, CTR\n\tVREPIF $4, INC\n\nchacha:\n\tVREPF $0, J0, X0\n\tVREPF $1, J0, X1\n\tVREPF $2, J0, X2\n\tVREPF $3, J0, X3\n\tVREPF $0, KEY0, X4\n\tVREPF $1, KEY0, X5\n\tVREPF $2, KEY0, X6\n\tVREPF $3, KEY0, X7\n\tVREPF $0, KEY1, X8\n\tVREPF $1, KEY1, X9\n\tVREPF $2, KEY1, X10\n\tVREPF $3, KEY1, X11\n\tVLR   CTR, X12\n\tVREPF $1, NONCE, X13\n\tVREPF $2, NONCE, X14\n\tVREPF $3, NONCE, X15\n\n\tMOVD $(NUM_ROUNDS/2), R1\n\nloop:\n\tROUND4(X0, X4, X12,  X8, X1, X5, X13,  X9, X2, X6, X14, X10, X3, X7, X15, X11)\n\tROUND4(X0, X5, X15, X10, X1, X6, X12, X11, X2, X7, X13, X8,  X3, X4, X14, X9)\n\n\tADD $-1, R1\n\tBNE loop\n\n\t// decrement length\n\tADD $-256, R4\n\n\t// rearrange vectors\n\tSHUFFLE(X0, X1, X2, X3, M0, M1, M2, M3)\n\tADDV(J0, X0, X1, X2, X3)\n\tSHUFFLE(X4, X5, X6, X7, M0, M1, M2, M3)\n\tADDV(KEY0, X4, X5, X6, X7)\n\tSHUFFLE(X8, X9, X10, X11, M0, M1, M2, M3)\n\tADDV(KEY1, X8, X9, X10, X11)\n\tVAF CTR, X12, X12\n\tSHUFFLE(X12, X13, X14, X15, M0, M1, M2, M3)\n\tADDV(NONCE, X12, X13, X14, X15)\n\n\t// increment counters\n\tVAF INC, CTR, CTR\n\n\t// xor keystream with plaintext\n\tXORV(0*64, R2, R3, X0, X4,  X8, X12)\n\tXORV(1*64, R2, R3, X1, X5,  X9, X13)\n\tXORV(2*64, R2, R3, X2, X6, X10, X14)\n\tXORV(3*64, R2, R3, X3, X7, X11, X15)\n\n\t// increment pointers\n\tMOVD $256(R2), R2\n\tMOVD $256(R3), R3\n\n\tCMPBNE  R4, $0, chacha\n\n\tVSTEF $0, CTR, (R7)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/chacha20/xor.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 src the LICENSE file.\n\npackage chacha20\n\nimport \"runtime\"\n\n// Platforms that have fast unaligned 32-bit little endian accesses.\nconst unaligned = runtime.GOARCH == \"386\" ||\n\truntime.GOARCH == \"amd64\" ||\n\truntime.GOARCH == \"arm64\" ||\n\truntime.GOARCH == \"ppc64le\" ||\n\truntime.GOARCH == \"s390x\"\n\n// addXor reads a little endian uint32 from src, XORs it with (a + b) and\n// places the result in little endian byte order in dst.\nfunc addXor(dst, src []byte, a, b uint32) {\n\t_, _ = src[3], dst[3] // bounds check elimination hint\n\tif unaligned {\n\t\t// The compiler should optimize this code into\n\t\t// 32-bit unaligned little endian loads and stores.\n\t\t// TODO: delete once the compiler does a reliably\n\t\t// good job with the generic code below.\n\t\t// See issue #25111 for more details.\n\t\tv := uint32(src[0])\n\t\tv |= uint32(src[1]) << 8\n\t\tv |= uint32(src[2]) << 16\n\t\tv |= uint32(src[3]) << 24\n\t\tv ^= a + b\n\t\tdst[0] = byte(v)\n\t\tdst[1] = byte(v >> 8)\n\t\tdst[2] = byte(v >> 16)\n\t\tdst[3] = byte(v >> 24)\n\t} else {\n\t\ta += b\n\t\tdst[0] = src[0] ^ byte(a)\n\t\tdst[1] = src[1] ^ byte(a>>8)\n\t\tdst[2] = src[2] ^ byte(a>>16)\n\t\tdst[3] = src[3] ^ byte(a>>24)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/curve25519/curve25519.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 curve25519 provides an implementation of the X25519 function, which\n// performs scalar multiplication on the elliptic curve known as Curve25519\n// according to [RFC 7748].\n//\n// The curve25519 package is a wrapper for the X25519 implementation in the\n// crypto/ecdh package. It is [frozen] and is not accepting new features.\n//\n// [RFC 7748]: https://datatracker.ietf.org/doc/html/rfc7748\n// [frozen]: https://go.dev/wiki/Frozen\npackage curve25519\n\nimport \"crypto/ecdh\"\n\n// ScalarMult sets dst to the product scalar * point.\n//\n// Deprecated: when provided a low-order point, ScalarMult will set dst to all\n// zeroes, irrespective of the scalar. Instead, use the X25519 function, which\n// will return an error.\nfunc ScalarMult(dst, scalar, point *[32]byte) {\n\tif _, err := x25519(dst, scalar[:], point[:]); err != nil {\n\t\t// The only error condition for x25519 when the inputs are 32 bytes long\n\t\t// is if the output would have been the all-zero value.\n\t\tfor i := range dst {\n\t\t\tdst[i] = 0\n\t\t}\n\t}\n}\n\n// ScalarBaseMult sets dst to the product scalar * base where base is the\n// standard generator.\n//\n// It is recommended to use the X25519 function with Basepoint instead, as\n// copying into fixed size arrays can lead to unexpected bugs.\nfunc ScalarBaseMult(dst, scalar *[32]byte) {\n\tcurve := ecdh.X25519()\n\tpriv, err := curve.NewPrivateKey(scalar[:])\n\tif err != nil {\n\t\tpanic(\"curve25519: \" + err.Error())\n\t}\n\tcopy(dst[:], priv.PublicKey().Bytes())\n}\n\nconst (\n\t// ScalarSize is the size of the scalar input to X25519.\n\tScalarSize = 32\n\t// PointSize is the size of the point input to X25519.\n\tPointSize = 32\n)\n\n// Basepoint is the canonical Curve25519 generator.\nvar Basepoint []byte\n\nvar basePoint = [32]byte{9}\n\nfunc init() { Basepoint = basePoint[:] }\n\n// X25519 returns the result of the scalar multiplication (scalar * point),\n// according to RFC 7748, Section 5. scalar, point and the return value are\n// slices of 32 bytes.\n//\n// scalar can be generated at random, for example with crypto/rand. point should\n// be either Basepoint or the output of another X25519 call.\n//\n// If point is Basepoint (but not if it's a different slice with the same\n// contents) a precomputed implementation might be used for performance.\nfunc X25519(scalar, point []byte) ([]byte, error) {\n\t// Outline the body of function, to let the allocation be inlined in the\n\t// caller, and possibly avoid escaping to the heap.\n\tvar dst [32]byte\n\treturn x25519(&dst, scalar, point)\n}\n\nfunc x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) {\n\tcurve := ecdh.X25519()\n\tpub, err := curve.NewPublicKey(point)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpriv, err := curve.NewPrivateKey(scalar)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tout, err := priv.ECDH(pub)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcopy(dst[:], out)\n\treturn dst[:], nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/alias/alias.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 !purego\n\n// Package alias implements memory aliasing tests.\npackage alias\n\nimport \"unsafe\"\n\n// AnyOverlap reports whether x and y share memory at any (not necessarily\n// corresponding) index. The memory beyond the slice length is ignored.\nfunc AnyOverlap(x, y []byte) bool {\n\treturn len(x) > 0 && len(y) > 0 &&\n\t\tuintptr(unsafe.Pointer(&x[0])) <= uintptr(unsafe.Pointer(&y[len(y)-1])) &&\n\t\tuintptr(unsafe.Pointer(&y[0])) <= uintptr(unsafe.Pointer(&x[len(x)-1]))\n}\n\n// InexactOverlap reports whether x and y share memory at any non-corresponding\n// index. The memory beyond the slice length is ignored. Note that x and y can\n// have different lengths and still not have any inexact overlap.\n//\n// InexactOverlap can be used to implement the requirements of the crypto/cipher\n// AEAD, Block, BlockMode and Stream interfaces.\nfunc InexactOverlap(x, y []byte) bool {\n\tif len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {\n\t\treturn false\n\t}\n\treturn AnyOverlap(x, y)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/alias/alias_purego.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 purego\n\n// Package alias implements memory aliasing tests.\npackage alias\n\n// This is the Google App Engine standard variant based on reflect\n// because the unsafe package and cgo are disallowed.\n\nimport \"reflect\"\n\n// AnyOverlap reports whether x and y share memory at any (not necessarily\n// corresponding) index. The memory beyond the slice length is ignored.\nfunc AnyOverlap(x, y []byte) bool {\n\treturn len(x) > 0 && len(y) > 0 &&\n\t\treflect.ValueOf(&x[0]).Pointer() <= reflect.ValueOf(&y[len(y)-1]).Pointer() &&\n\t\treflect.ValueOf(&y[0]).Pointer() <= reflect.ValueOf(&x[len(x)-1]).Pointer()\n}\n\n// InexactOverlap reports whether x and y share memory at any non-corresponding\n// index. The memory beyond the slice length is ignored. Note that x and y can\n// have different lengths and still not have any inexact overlap.\n//\n// InexactOverlap can be used to implement the requirements of the crypto/cipher\n// AEAD, Block, BlockMode and Stream interfaces.\nfunc InexactOverlap(x, y []byte) bool {\n\tif len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {\n\t\treturn false\n\t}\n\treturn AnyOverlap(x, y)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.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 (!amd64 && !loong64 && !ppc64le && !ppc64 && !s390x) || !gc || purego\n\npackage poly1305\n\ntype mac struct{ macGeneric }\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/poly1305.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// Package poly1305 implements Poly1305 one-time message authentication code as\n// specified in https://cr.yp.to/mac/poly1305-20050329.pdf.\n//\n// Poly1305 is a fast, one-time authentication function. It is infeasible for an\n// attacker to generate an authenticator for a message without the key. However, a\n// key must only be used for a single message. Authenticating two different\n// messages with the same key allows an attacker to forge authenticators for other\n// messages with the same key.\n//\n// Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was\n// used with a fixed key in order to generate one-time keys from an nonce.\n// However, in this package AES isn't used and the one-time key is specified\n// directly.\npackage poly1305\n\nimport \"crypto/subtle\"\n\n// TagSize is the size, in bytes, of a poly1305 authenticator.\nconst TagSize = 16\n\n// Sum generates an authenticator for msg using a one-time key and puts the\n// 16-byte result into out. Authenticating two different messages with the same\n// key allows an attacker to forge messages at will.\nfunc Sum(out *[16]byte, m []byte, key *[32]byte) {\n\th := New(key)\n\th.Write(m)\n\th.Sum(out[:0])\n}\n\n// Verify returns true if mac is a valid authenticator for m with the given key.\nfunc Verify(mac *[16]byte, m []byte, key *[32]byte) bool {\n\tvar tmp [16]byte\n\tSum(&tmp, m, key)\n\treturn subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1\n}\n\n// New returns a new MAC computing an authentication\n// tag of all data written to it with the given key.\n// This allows writing the message progressively instead\n// of passing it as a single slice. Common users should use\n// the Sum function instead.\n//\n// The key must be unique for each message, as authenticating\n// two different messages with the same key allows an attacker\n// to forge messages at will.\nfunc New(key *[32]byte) *MAC {\n\tm := &MAC{}\n\tinitialize(key, &m.macState)\n\treturn m\n}\n\n// MAC is an io.Writer computing an authentication tag\n// of the data written to it.\n//\n// MAC cannot be used like common hash.Hash implementations,\n// because using a poly1305 key twice breaks its security.\n// Therefore writing data to a running MAC after calling\n// Sum or Verify causes it to panic.\ntype MAC struct {\n\tmac // platform-dependent implementation\n\n\tfinalized bool\n}\n\n// Size returns the number of bytes Sum will return.\nfunc (h *MAC) Size() int { return TagSize }\n\n// Write adds more data to the running message authentication code.\n// It never returns an error.\n//\n// It must not be called after the first call of Sum or Verify.\nfunc (h *MAC) Write(p []byte) (n int, err error) {\n\tif h.finalized {\n\t\tpanic(\"poly1305: write to MAC after Sum or Verify\")\n\t}\n\treturn h.mac.Write(p)\n}\n\n// Sum computes the authenticator of all data written to the\n// message authentication code.\nfunc (h *MAC) Sum(b []byte) []byte {\n\tvar mac [TagSize]byte\n\th.mac.Sum(&mac)\n\th.finalized = true\n\treturn append(b, mac[:]...)\n}\n\n// Verify returns whether the authenticator of all data written to\n// the message authentication code matches the expected value.\nfunc (h *MAC) Verify(expected []byte) bool {\n\tvar mac [TagSize]byte\n\th.mac.Sum(&mac)\n\th.finalized = true\n\treturn subtle.ConstantTimeCompare(expected, mac[:]) == 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s",
    "content": "// Code generated by command: go run sum_amd64_asm.go -out ../sum_amd64.s -pkg poly1305. DO NOT EDIT.\n\n//go:build gc && !purego\n\n// func update(state *macState, msg []byte)\nTEXT ·update(SB), $0-32\n\tMOVQ state+0(FP), DI\n\tMOVQ msg_base+8(FP), SI\n\tMOVQ msg_len+16(FP), R15\n\tMOVQ (DI), R8\n\tMOVQ 8(DI), R9\n\tMOVQ 16(DI), R10\n\tMOVQ 24(DI), R11\n\tMOVQ 32(DI), R12\n\tCMPQ R15, $0x10\n\tJB   bytes_between_0_and_15\n\nloop:\n\tADDQ (SI), R8\n\tADCQ 8(SI), R9\n\tADCQ $0x01, R10\n\tLEAQ 16(SI), SI\n\nmultiply:\n\tMOVQ  R11, AX\n\tMULQ  R8\n\tMOVQ  AX, BX\n\tMOVQ  DX, CX\n\tMOVQ  R11, AX\n\tMULQ  R9\n\tADDQ  AX, CX\n\tADCQ  $0x00, DX\n\tMOVQ  R11, R13\n\tIMULQ R10, R13\n\tADDQ  DX, R13\n\tMOVQ  R12, AX\n\tMULQ  R8\n\tADDQ  AX, CX\n\tADCQ  $0x00, DX\n\tMOVQ  DX, R8\n\tMOVQ  R12, R14\n\tIMULQ R10, R14\n\tMOVQ  R12, AX\n\tMULQ  R9\n\tADDQ  AX, R13\n\tADCQ  DX, R14\n\tADDQ  R8, R13\n\tADCQ  $0x00, R14\n\tMOVQ  BX, R8\n\tMOVQ  CX, R9\n\tMOVQ  R13, R10\n\tANDQ  $0x03, R10\n\tMOVQ  R13, BX\n\tANDQ  $-4, BX\n\tADDQ  BX, R8\n\tADCQ  R14, R9\n\tADCQ  $0x00, R10\n\tSHRQ  $0x02, R14, R13\n\tSHRQ  $0x02, R14\n\tADDQ  R13, R8\n\tADCQ  R14, R9\n\tADCQ  $0x00, R10\n\tSUBQ  $0x10, R15\n\tCMPQ  R15, $0x10\n\tJAE   loop\n\nbytes_between_0_and_15:\n\tTESTQ R15, R15\n\tJZ    done\n\tMOVQ  $0x00000001, BX\n\tXORQ  CX, CX\n\tXORQ  R13, R13\n\tADDQ  R15, SI\n\nflush_buffer:\n\tSHLQ $0x08, BX, CX\n\tSHLQ $0x08, BX\n\tMOVB -1(SI), R13\n\tXORQ R13, BX\n\tDECQ SI\n\tDECQ R15\n\tJNZ  flush_buffer\n\tADDQ BX, R8\n\tADCQ CX, R9\n\tADCQ $0x00, R10\n\tMOVQ $0x00000010, R15\n\tJMP  multiply\n\ndone:\n\tMOVQ R8, (DI)\n\tMOVQ R9, 8(DI)\n\tMOVQ R10, 16(DI)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_asm.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 gc && !purego && (amd64 || loong64 || ppc64 || ppc64le)\n\npackage poly1305\n\n//go:noescape\nfunc update(state *macState, msg []byte)\n\n// mac is a wrapper for macGeneric that redirects calls that would have gone to\n// updateGeneric to update.\n//\n// Its Write and Sum methods are otherwise identical to the macGeneric ones, but\n// using function pointers would carry a major performance cost.\ntype mac struct{ macGeneric }\n\nfunc (h *mac) Write(p []byte) (int, error) {\n\tnn := len(p)\n\tif h.offset > 0 {\n\t\tn := copy(h.buffer[h.offset:], p)\n\t\tif h.offset+n < TagSize {\n\t\t\th.offset += n\n\t\t\treturn nn, nil\n\t\t}\n\t\tp = p[n:]\n\t\th.offset = 0\n\t\tupdate(&h.macState, h.buffer[:])\n\t}\n\tif n := len(p) - (len(p) % TagSize); n > 0 {\n\t\tupdate(&h.macState, p[:n])\n\t\tp = p[n:]\n\t}\n\tif len(p) > 0 {\n\t\th.offset += copy(h.buffer[h.offset:], p)\n\t}\n\treturn nn, nil\n}\n\nfunc (h *mac) Sum(out *[16]byte) {\n\tstate := h.macState\n\tif h.offset > 0 {\n\t\tupdate(&state, h.buffer[:h.offset])\n\t}\n\tfinalize(out, &state.h, &state.s)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_generic.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// This file provides the generic implementation of Sum and MAC. Other files\n// might provide optimized assembly implementations of some of this code.\n\npackage poly1305\n\nimport (\n\t\"encoding/binary\"\n\t\"math/bits\"\n)\n\n// Poly1305 [RFC 7539] is a relatively simple algorithm: the authentication tag\n// for a 64 bytes message is approximately\n//\n//     s + m[0:16] * r⁴ + m[16:32] * r³ + m[32:48] * r² + m[48:64] * r  mod  2¹³⁰ - 5\n//\n// for some secret r and s. It can be computed sequentially like\n//\n//     for len(msg) > 0:\n//         h += read(msg, 16)\n//         h *= r\n//         h %= 2¹³⁰ - 5\n//     return h + s\n//\n// All the complexity is about doing performant constant-time math on numbers\n// larger than any available numeric type.\n\nfunc sumGeneric(out *[TagSize]byte, msg []byte, key *[32]byte) {\n\th := newMACGeneric(key)\n\th.Write(msg)\n\th.Sum(out)\n}\n\nfunc newMACGeneric(key *[32]byte) macGeneric {\n\tm := macGeneric{}\n\tinitialize(key, &m.macState)\n\treturn m\n}\n\n// macState holds numbers in saturated 64-bit little-endian limbs. That is,\n// the value of [x0, x1, x2] is x[0] + x[1] * 2⁶⁴ + x[2] * 2¹²⁸.\ntype macState struct {\n\t// h is the main accumulator. It is to be interpreted modulo 2¹³⁰ - 5, but\n\t// can grow larger during and after rounds. It must, however, remain below\n\t// 2 * (2¹³⁰ - 5).\n\th [3]uint64\n\t// r and s are the private key components.\n\tr [2]uint64\n\ts [2]uint64\n}\n\ntype macGeneric struct {\n\tmacState\n\n\tbuffer [TagSize]byte\n\toffset int\n}\n\n// Write splits the incoming message into TagSize chunks, and passes them to\n// update. It buffers incomplete chunks.\nfunc (h *macGeneric) Write(p []byte) (int, error) {\n\tnn := len(p)\n\tif h.offset > 0 {\n\t\tn := copy(h.buffer[h.offset:], p)\n\t\tif h.offset+n < TagSize {\n\t\t\th.offset += n\n\t\t\treturn nn, nil\n\t\t}\n\t\tp = p[n:]\n\t\th.offset = 0\n\t\tupdateGeneric(&h.macState, h.buffer[:])\n\t}\n\tif n := len(p) - (len(p) % TagSize); n > 0 {\n\t\tupdateGeneric(&h.macState, p[:n])\n\t\tp = p[n:]\n\t}\n\tif len(p) > 0 {\n\t\th.offset += copy(h.buffer[h.offset:], p)\n\t}\n\treturn nn, nil\n}\n\n// Sum flushes the last incomplete chunk from the buffer, if any, and generates\n// the MAC output. It does not modify its state, in order to allow for multiple\n// calls to Sum, even if no Write is allowed after Sum.\nfunc (h *macGeneric) Sum(out *[TagSize]byte) {\n\tstate := h.macState\n\tif h.offset > 0 {\n\t\tupdateGeneric(&state, h.buffer[:h.offset])\n\t}\n\tfinalize(out, &state.h, &state.s)\n}\n\n// [rMask0, rMask1] is the specified Poly1305 clamping mask in little-endian. It\n// clears some bits of the secret coefficient to make it possible to implement\n// multiplication more efficiently.\nconst (\n\trMask0 = 0x0FFFFFFC0FFFFFFF\n\trMask1 = 0x0FFFFFFC0FFFFFFC\n)\n\n// initialize loads the 256-bit key into the two 128-bit secret values r and s.\nfunc initialize(key *[32]byte, m *macState) {\n\tm.r[0] = binary.LittleEndian.Uint64(key[0:8]) & rMask0\n\tm.r[1] = binary.LittleEndian.Uint64(key[8:16]) & rMask1\n\tm.s[0] = binary.LittleEndian.Uint64(key[16:24])\n\tm.s[1] = binary.LittleEndian.Uint64(key[24:32])\n}\n\n// uint128 holds a 128-bit number as two 64-bit limbs, for use with the\n// bits.Mul64 and bits.Add64 intrinsics.\ntype uint128 struct {\n\tlo, hi uint64\n}\n\nfunc mul64(a, b uint64) uint128 {\n\thi, lo := bits.Mul64(a, b)\n\treturn uint128{lo, hi}\n}\n\nfunc add128(a, b uint128) uint128 {\n\tlo, c := bits.Add64(a.lo, b.lo, 0)\n\thi, c := bits.Add64(a.hi, b.hi, c)\n\tif c != 0 {\n\t\tpanic(\"poly1305: unexpected overflow\")\n\t}\n\treturn uint128{lo, hi}\n}\n\nfunc shiftRightBy2(a uint128) uint128 {\n\ta.lo = a.lo>>2 | (a.hi&3)<<62\n\ta.hi = a.hi >> 2\n\treturn a\n}\n\n// updateGeneric absorbs msg into the state.h accumulator. For each chunk m of\n// 128 bits of message, it computes\n//\n//\th₊ = (h + m) * r  mod  2¹³⁰ - 5\n//\n// If the msg length is not a multiple of TagSize, it assumes the last\n// incomplete chunk is the final one.\nfunc updateGeneric(state *macState, msg []byte) {\n\th0, h1, h2 := state.h[0], state.h[1], state.h[2]\n\tr0, r1 := state.r[0], state.r[1]\n\n\tfor len(msg) > 0 {\n\t\tvar c uint64\n\n\t\t// For the first step, h + m, we use a chain of bits.Add64 intrinsics.\n\t\t// The resulting value of h might exceed 2¹³⁰ - 5, but will be partially\n\t\t// reduced at the end of the multiplication below.\n\t\t//\n\t\t// The spec requires us to set a bit just above the message size, not to\n\t\t// hide leading zeroes. For full chunks, that's 1 << 128, so we can just\n\t\t// add 1 to the most significant (2¹²⁸) limb, h2.\n\t\tif len(msg) >= TagSize {\n\t\t\th0, c = bits.Add64(h0, binary.LittleEndian.Uint64(msg[0:8]), 0)\n\t\t\th1, c = bits.Add64(h1, binary.LittleEndian.Uint64(msg[8:16]), c)\n\t\t\th2 += c + 1\n\n\t\t\tmsg = msg[TagSize:]\n\t\t} else {\n\t\t\tvar buf [TagSize]byte\n\t\t\tcopy(buf[:], msg)\n\t\t\tbuf[len(msg)] = 1\n\n\t\t\th0, c = bits.Add64(h0, binary.LittleEndian.Uint64(buf[0:8]), 0)\n\t\t\th1, c = bits.Add64(h1, binary.LittleEndian.Uint64(buf[8:16]), c)\n\t\t\th2 += c\n\n\t\t\tmsg = nil\n\t\t}\n\n\t\t// Multiplication of big number limbs is similar to elementary school\n\t\t// columnar multiplication. Instead of digits, there are 64-bit limbs.\n\t\t//\n\t\t// We are multiplying a 3 limbs number, h, by a 2 limbs number, r.\n\t\t//\n\t\t//                        h2    h1    h0  x\n\t\t//                              r1    r0  =\n\t\t//                       ----------------\n\t\t//                      h2r0  h1r0  h0r0     <-- individual 128-bit products\n\t\t//            +   h2r1  h1r1  h0r1\n\t\t//               ------------------------\n\t\t//                 m3    m2    m1    m0      <-- result in 128-bit overlapping limbs\n\t\t//               ------------------------\n\t\t//         m3.hi m2.hi m1.hi m0.hi           <-- carry propagation\n\t\t//     +         m3.lo m2.lo m1.lo m0.lo\n\t\t//        -------------------------------\n\t\t//           t4    t3    t2    t1    t0      <-- final result in 64-bit limbs\n\t\t//\n\t\t// The main difference from pen-and-paper multiplication is that we do\n\t\t// carry propagation in a separate step, as if we wrote two digit sums\n\t\t// at first (the 128-bit limbs), and then carried the tens all at once.\n\n\t\th0r0 := mul64(h0, r0)\n\t\th1r0 := mul64(h1, r0)\n\t\th2r0 := mul64(h2, r0)\n\t\th0r1 := mul64(h0, r1)\n\t\th1r1 := mul64(h1, r1)\n\t\th2r1 := mul64(h2, r1)\n\n\t\t// Since h2 is known to be at most 7 (5 + 1 + 1), and r0 and r1 have their\n\t\t// top 4 bits cleared by rMask{0,1}, we know that their product is not going\n\t\t// to overflow 64 bits, so we can ignore the high part of the products.\n\t\t//\n\t\t// This also means that the product doesn't have a fifth limb (t4).\n\t\tif h2r0.hi != 0 {\n\t\t\tpanic(\"poly1305: unexpected overflow\")\n\t\t}\n\t\tif h2r1.hi != 0 {\n\t\t\tpanic(\"poly1305: unexpected overflow\")\n\t\t}\n\n\t\tm0 := h0r0\n\t\tm1 := add128(h1r0, h0r1) // These two additions don't overflow thanks again\n\t\tm2 := add128(h2r0, h1r1) // to the 4 masked bits at the top of r0 and r1.\n\t\tm3 := h2r1\n\n\t\tt0 := m0.lo\n\t\tt1, c := bits.Add64(m1.lo, m0.hi, 0)\n\t\tt2, c := bits.Add64(m2.lo, m1.hi, c)\n\t\tt3, _ := bits.Add64(m3.lo, m2.hi, c)\n\n\t\t// Now we have the result as 4 64-bit limbs, and we need to reduce it\n\t\t// modulo 2¹³⁰ - 5. The special shape of this Crandall prime lets us do\n\t\t// a cheap partial reduction according to the reduction identity\n\t\t//\n\t\t//     c * 2¹³⁰ + n  =  c * 5 + n  mod  2¹³⁰ - 5\n\t\t//\n\t\t// because 2¹³⁰ = 5 mod 2¹³⁰ - 5. Partial reduction since the result is\n\t\t// likely to be larger than 2¹³⁰ - 5, but still small enough to fit the\n\t\t// assumptions we make about h in the rest of the code.\n\t\t//\n\t\t// See also https://speakerdeck.com/gtank/engineering-prime-numbers?slide=23\n\n\t\t// We split the final result at the 2¹³⁰ mark into h and cc, the carry.\n\t\t// Note that the carry bits are effectively shifted left by 2, in other\n\t\t// words, cc = c * 4 for the c in the reduction identity.\n\t\th0, h1, h2 = t0, t1, t2&maskLow2Bits\n\t\tcc := uint128{t2 & maskNotLow2Bits, t3}\n\n\t\t// To add c * 5 to h, we first add cc = c * 4, and then add (cc >> 2) = c.\n\n\t\th0, c = bits.Add64(h0, cc.lo, 0)\n\t\th1, c = bits.Add64(h1, cc.hi, c)\n\t\th2 += c\n\n\t\tcc = shiftRightBy2(cc)\n\n\t\th0, c = bits.Add64(h0, cc.lo, 0)\n\t\th1, c = bits.Add64(h1, cc.hi, c)\n\t\th2 += c\n\n\t\t// h2 is at most 3 + 1 + 1 = 5, making the whole of h at most\n\t\t//\n\t\t//     5 * 2¹²⁸ + (2¹²⁸ - 1) = 6 * 2¹²⁸ - 1\n\t}\n\n\tstate.h[0], state.h[1], state.h[2] = h0, h1, h2\n}\n\nconst (\n\tmaskLow2Bits    uint64 = 0x0000000000000003\n\tmaskNotLow2Bits uint64 = ^maskLow2Bits\n)\n\n// select64 returns x if v == 1 and y if v == 0, in constant time.\nfunc select64(v, x, y uint64) uint64 { return ^(v-1)&x | (v-1)&y }\n\n// [p0, p1, p2] is 2¹³⁰ - 5 in little endian order.\nconst (\n\tp0 = 0xFFFFFFFFFFFFFFFB\n\tp1 = 0xFFFFFFFFFFFFFFFF\n\tp2 = 0x0000000000000003\n)\n\n// finalize completes the modular reduction of h and computes\n//\n//\tout = h + s  mod  2¹²⁸\nfunc finalize(out *[TagSize]byte, h *[3]uint64, s *[2]uint64) {\n\th0, h1, h2 := h[0], h[1], h[2]\n\n\t// After the partial reduction in updateGeneric, h might be more than\n\t// 2¹³⁰ - 5, but will be less than 2 * (2¹³⁰ - 5). To complete the reduction\n\t// in constant time, we compute t = h - (2¹³⁰ - 5), and select h as the\n\t// result if the subtraction underflows, and t otherwise.\n\n\thMinusP0, b := bits.Sub64(h0, p0, 0)\n\thMinusP1, b := bits.Sub64(h1, p1, b)\n\t_, b = bits.Sub64(h2, p2, b)\n\n\t// h = h if h < p else h - p\n\th0 = select64(b, h0, hMinusP0)\n\th1 = select64(b, h1, hMinusP1)\n\n\t// Finally, we compute the last Poly1305 step\n\t//\n\t//     tag = h + s  mod  2¹²⁸\n\t//\n\t// by just doing a wide addition with the 128 low bits of h and discarding\n\t// the overflow.\n\th0, c := bits.Add64(h0, s[0], 0)\n\th1, _ = bits.Add64(h1, s[1], c)\n\n\tbinary.LittleEndian.PutUint64(out[0:8], h0)\n\tbinary.LittleEndian.PutUint64(out[8:16], h1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_loong64.s",
    "content": "// Copyright 2025 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 && !purego\n\n// func update(state *macState, msg []byte)\nTEXT ·update(SB), $0-32\n\tMOVV\tstate+0(FP), R4\n\tMOVV\tmsg_base+8(FP), R5\n\tMOVV\tmsg_len+16(FP), R6\n\n\tMOVV\t$0x10, R7\n\n\tMOVV\t(R4), R8\t// h0\n\tMOVV\t8(R4), R9\t// h1\n\tMOVV\t16(R4), R10\t// h2\n\tMOVV\t24(R4), R11\t// r0\n\tMOVV\t32(R4), R12\t// r1\n\n\tBLT\tR6, R7, bytes_between_0_and_15\n\nloop:\n\tMOVV\t(R5), R14\t// msg[0:8]\n\tMOVV\t8(R5), R16\t// msg[8:16]\n\tADDV\tR14, R8, R8\t// h0 (x1 + y1 = z1', if z1' < x1 then z1' overflow)\n\tADDV\tR16, R9, R27\n\tSGTU\tR14, R8, R24\t// h0.carry\n\tSGTU\tR9, R27, R28\n\tADDV\tR27, R24, R9\t// h1\n\tSGTU\tR27, R9, R24\n\tOR\tR24, R28, R24\t// h1.carry\n\tADDV\t$0x01, R24, R24\n\tADDV\tR10, R24, R10\t// h2\n\n\tADDV\t$16, R5, R5\t// msg = msg[16:]\n\nmultiply:\n\tMULV\tR8, R11, R14\t// h0r0.lo\n\tMULHVU\tR8, R11, R15\t// h0r0.hi\n\tMULV\tR9, R11, R13\t// h1r0.lo\n\tMULHVU\tR9, R11, R16\t// h1r0.hi\n\tADDV\tR13, R15, R15\n\tSGTU\tR13, R15, R24\n\tADDV\tR24, R16, R16\n\tMULV\tR10, R11, R25\n\tADDV\tR16, R25, R25\n\tMULV\tR8, R12, R13\t// h0r1.lo\n\tMULHVU\tR8, R12, R16\t// h0r1.hi\n\tADDV\tR13, R15, R15\n\tSGTU\tR13, R15, R24\n\tADDV\tR24, R16, R16\n\tMOVV\tR16, R8\n\tMULV\tR10, R12, R26\t// h2r1\n\tMULV\tR9, R12, R13\t// h1r1.lo\n\tMULHVU\tR9, R12, R16\t// h1r1.hi\n\tADDV\tR13, R25, R25\n\tADDV\tR16, R26, R27\n\tSGTU\tR13, R25, R24\n\tADDV\tR27, R24, R26\n\tADDV\tR8, R25, R25\n\tSGTU\tR8, R25, R24\n\tADDV\tR24, R26, R26\n\tAND\t$3, R25, R10\n\tAND\t$-4, R25, R17\n\tADDV\tR17, R14, R8\n\tADDV\tR26, R15, R27\n\tSGTU\tR17, R8, R24\n\tSGTU\tR26, R27, R28\n\tADDV\tR27, R24, R9\n\tSGTU\tR27, R9, R24\n\tOR\tR24, R28, R24\n\tADDV\tR24, R10, R10\n\tSLLV\t$62, R26, R27\n\tSRLV\t$2, R25, R28\n\tSRLV\t$2, R26, R26\n\tOR\tR27, R28, R25\n\tADDV\tR25, R8, R8\n\tADDV\tR26, R9, R27\n\tSGTU\tR25, R8, R24\n\tSGTU\tR26, R27, R28\n\tADDV\tR27, R24, R9\n\tSGTU\tR27, R9, R24\n\tOR\tR24, R28, R24\n\tADDV\tR24, R10, R10\n\n\tSUBV\t$16, R6, R6\n\tBGE\tR6, R7, loop\n\nbytes_between_0_and_15:\n\tBEQ\tR6, R0, done\n\tMOVV\t$1, R14\n\tXOR\tR15, R15\n\tADDV\tR6, R5, R5\n\nflush_buffer:\n\tMOVBU\t-1(R5), R25\n\tSRLV\t$56, R14, R24\n\tSLLV\t$8, R15, R28\n\tSLLV\t$8, R14, R14\n\tOR\tR24, R28, R15\n\tXOR\tR25, R14, R14\n\tSUBV\t$1, R6, R6\n\tSUBV\t$1, R5, R5\n\tBNE\tR6, R0, flush_buffer\n\n\tADDV\tR14, R8, R8\n\tSGTU\tR14, R8, R24\n\tADDV\tR15, R9, R27\n\tSGTU\tR15, R27, R28\n\tADDV\tR27, R24, R9\n\tSGTU\tR27, R9, R24\n\tOR\tR24, R28, R24\n\tADDV\tR10, R24, R10\n\n\tMOVV\t$16, R6\n\tJMP\tmultiply\n\ndone:\n\tMOVV\tR8, (R4)\n\tMOVV\tR9, 8(R4)\n\tMOVV\tR10, 16(R4)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.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 && !purego && (ppc64 || ppc64le)\n\n#include \"textflag.h\"\n\n// This was ported from the amd64 implementation.\n\n#ifdef GOARCH_ppc64le\n#define LE_MOVD MOVD\n#define LE_MOVWZ MOVWZ\n#define LE_MOVHZ MOVHZ\n#else\n#define LE_MOVD MOVDBR\n#define LE_MOVWZ MOVWBR\n#define LE_MOVHZ MOVHBR\n#endif\n\n#define POLY1305_ADD(msg, h0, h1, h2, t0, t1, t2) \\\n\tLE_MOVD (msg)( R0), t0; \\\n\tLE_MOVD (msg)(R24), t1; \\\n\tMOVD $1, t2;     \\\n\tADDC t0, h0, h0; \\\n\tADDE t1, h1, h1; \\\n\tADDE t2, h2;     \\\n\tADD  $16, msg\n\n#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3, t4, t5) \\\n\tMULLD  r0, h0, t0;  \\\n\tMULHDU r0, h0, t1;  \\\n\tMULLD  r0, h1, t4;  \\\n\tMULHDU r0, h1, t5;  \\\n\tADDC   t4, t1, t1;  \\\n\tMULLD  r0, h2, t2;  \\\n\tMULHDU r1, h0, t4;  \\\n\tMULLD  r1, h0, h0;  \\\n\tADDE   t5, t2, t2;  \\\n\tADDC   h0, t1, t1;  \\\n\tMULLD  h2, r1, t3;  \\\n\tADDZE  t4, h0;      \\\n\tMULHDU r1, h1, t5;  \\\n\tMULLD  r1, h1, t4;  \\\n\tADDC   t4, t2, t2;  \\\n\tADDE   t5, t3, t3;  \\\n\tADDC   h0, t2, t2;  \\\n\tMOVD   $-4, t4;     \\\n\tADDZE  t3;          \\\n\tRLDICL $0, t2, $62, h2; \\\n\tAND    t2, t4, h0;  \\\n\tADDC   t0, h0, h0;  \\\n\tADDE   t3, t1, h1;  \\\n\tSLD    $62, t3, t4; \\\n\tSRD    $2, t2;      \\\n\tADDZE  h2;          \\\n\tOR     t4, t2, t2;  \\\n\tSRD    $2, t3;      \\\n\tADDC   t2, h0, h0;  \\\n\tADDE   t3, h1, h1;  \\\n\tADDZE  h2\n\n// func update(state *[7]uint64, msg []byte)\nTEXT ·update(SB), $0-32\n\tMOVD state+0(FP), R3\n\tMOVD msg_base+8(FP), R4\n\tMOVD msg_len+16(FP), R5\n\n\tMOVD 0(R3), R8   // h0\n\tMOVD 8(R3), R9   // h1\n\tMOVD 16(R3), R10 // h2\n\tMOVD 24(R3), R11 // r0\n\tMOVD 32(R3), R12 // r1\n\n\tMOVD $8, R24\n\n\tCMP R5, $16\n\tBLT bytes_between_0_and_15\n\nloop:\n\tPOLY1305_ADD(R4, R8, R9, R10, R20, R21, R22)\n\n\tPCALIGN $16\nmultiply:\n\tPOLY1305_MUL(R8, R9, R10, R11, R12, R16, R17, R18, R14, R20, R21)\n\tADD $-16, R5\n\tCMP R5, $16\n\tBGE loop\n\nbytes_between_0_and_15:\n\tCMP  R5, $0\n\tBEQ  done\n\tMOVD $0, R16 // h0\n\tMOVD $0, R17 // h1\n\nflush_buffer:\n\tCMP R5, $8\n\tBLE just1\n\n\tMOVD $8, R21\n\tSUB  R21, R5, R21\n\n\t// Greater than 8 -- load the rightmost remaining bytes in msg\n\t// and put into R17 (h1)\n\tLE_MOVD (R4)(R21), R17\n\tMOVD $16, R22\n\n\t// Find the offset to those bytes\n\tSUB R5, R22, R22\n\tSLD $3, R22\n\n\t// Shift to get only the bytes in msg\n\tSRD R22, R17, R17\n\n\t// Put 1 at high end\n\tMOVD $1, R23\n\tSLD  $3, R21\n\tSLD  R21, R23, R23\n\tOR   R23, R17, R17\n\n\t// Remainder is 8\n\tMOVD $8, R5\n\njust1:\n\tCMP R5, $8\n\tBLT less8\n\n\t// Exactly 8\n\tLE_MOVD (R4), R16\n\n\tCMP R17, $0\n\n\t// Check if we've already set R17; if not\n\t// set 1 to indicate end of msg.\n\tBNE  carry\n\tMOVD $1, R17\n\tBR   carry\n\nless8:\n\tMOVD  $0, R16   // h0\n\tMOVD  $0, R22   // shift count\n\tCMP   R5, $4\n\tBLT   less4\n\tLE_MOVWZ (R4), R16\n\tADD   $4, R4\n\tADD   $-4, R5\n\tMOVD  $32, R22\n\nless4:\n\tCMP   R5, $2\n\tBLT   less2\n\tLE_MOVHZ (R4), R21\n\tSLD   R22, R21, R21\n\tOR    R16, R21, R16\n\tADD   $16, R22\n\tADD   $-2, R5\n\tADD   $2, R4\n\nless2:\n\tCMP   R5, $0\n\tBEQ   insert1\n\tMOVBZ (R4), R21\n\tSLD   R22, R21, R21\n\tOR    R16, R21, R16\n\tADD   $8, R22\n\ninsert1:\n\t// Insert 1 at end of msg\n\tMOVD $1, R21\n\tSLD  R22, R21, R21\n\tOR   R16, R21, R16\n\ncarry:\n\t// Add new values to h0, h1, h2\n\tADDC  R16, R8\n\tADDE  R17, R9\n\tADDZE R10, R10\n\tMOVD  $16, R5\n\tADD   R5, R4\n\tBR    multiply\n\ndone:\n\t// Save h0, h1, h2 in state\n\tMOVD R8, 0(R3)\n\tMOVD R9, 8(R3)\n\tMOVD R10, 16(R3)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.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 gc && !purego\n\npackage poly1305\n\nimport (\n\t\"golang.org/x/sys/cpu\"\n)\n\n// updateVX is an assembly implementation of Poly1305 that uses vector\n// instructions. It must only be called if the vector facility (vx) is\n// available.\n//\n//go:noescape\nfunc updateVX(state *macState, msg []byte)\n\n// mac is a replacement for macGeneric that uses a larger buffer and redirects\n// calls that would have gone to updateGeneric to updateVX if the vector\n// facility is installed.\n//\n// A larger buffer is required for good performance because the vector\n// implementation has a higher fixed cost per call than the generic\n// implementation.\ntype mac struct {\n\tmacState\n\n\tbuffer [16 * TagSize]byte // size must be a multiple of block size (16)\n\toffset int\n}\n\nfunc (h *mac) Write(p []byte) (int, error) {\n\tnn := len(p)\n\tif h.offset > 0 {\n\t\tn := copy(h.buffer[h.offset:], p)\n\t\tif h.offset+n < len(h.buffer) {\n\t\t\th.offset += n\n\t\t\treturn nn, nil\n\t\t}\n\t\tp = p[n:]\n\t\th.offset = 0\n\t\tif cpu.S390X.HasVX {\n\t\t\tupdateVX(&h.macState, h.buffer[:])\n\t\t} else {\n\t\t\tupdateGeneric(&h.macState, h.buffer[:])\n\t\t}\n\t}\n\n\ttail := len(p) % len(h.buffer) // number of bytes to copy into buffer\n\tbody := len(p) - tail          // number of bytes to process now\n\tif body > 0 {\n\t\tif cpu.S390X.HasVX {\n\t\t\tupdateVX(&h.macState, p[:body])\n\t\t} else {\n\t\t\tupdateGeneric(&h.macState, p[:body])\n\t\t}\n\t}\n\th.offset = copy(h.buffer[:], p[body:]) // copy tail bytes - can be 0\n\treturn nn, nil\n}\n\nfunc (h *mac) Sum(out *[TagSize]byte) {\n\tstate := h.macState\n\tremainder := h.buffer[:h.offset]\n\n\t// Use the generic implementation if we have 2 or fewer blocks left\n\t// to sum. The vector implementation has a higher startup time.\n\tif cpu.S390X.HasVX && len(remainder) > 2*TagSize {\n\t\tupdateVX(&state, remainder)\n\t} else if len(remainder) > 0 {\n\t\tupdateGeneric(&state, remainder)\n\t}\n\tfinalize(out, &state.h, &state.s)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.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 && !purego\n\n#include \"textflag.h\"\n\n// This implementation of Poly1305 uses the vector facility (vx)\n// to process up to 2 blocks (32 bytes) per iteration using an\n// algorithm based on the one described in:\n//\n// NEON crypto, Daniel J. Bernstein & Peter Schwabe\n// https://cryptojedi.org/papers/neoncrypto-20120320.pdf\n//\n// This algorithm uses 5 26-bit limbs to represent a 130-bit\n// value. These limbs are, for the most part, zero extended and\n// placed into 64-bit vector register elements. Each vector\n// register is 128-bits wide and so holds 2 of these elements.\n// Using 26-bit limbs allows us plenty of headroom to accommodate\n// accumulations before and after multiplication without\n// overflowing either 32-bits (before multiplication) or 64-bits\n// (after multiplication).\n//\n// In order to parallelise the operations required to calculate\n// the sum we use two separate accumulators and then sum those\n// in an extra final step. For compatibility with the generic\n// implementation we perform this summation at the end of every\n// updateVX call.\n//\n// To use two accumulators we must multiply the message blocks\n// by r² rather than r. Only the final message block should be\n// multiplied by r.\n//\n// Example:\n//\n// We want to calculate the sum (h) for a 64 byte message (m):\n//\n//   h = m[0:16]r⁴ + m[16:32]r³ + m[32:48]r² + m[48:64]r\n//\n// To do this we split the calculation into the even indices\n// and odd indices of the message. These form our SIMD 'lanes':\n//\n//   h = m[ 0:16]r⁴ + m[32:48]r² +   <- lane 0\n//       m[16:32]r³ + m[48:64]r      <- lane 1\n//\n// To calculate this iteratively we refactor so that both lanes\n// are written in terms of r² and r:\n//\n//   h = (m[ 0:16]r² + m[32:48])r² + <- lane 0\n//       (m[16:32]r² + m[48:64])r    <- lane 1\n//                ^             ^\n//                |             coefficients for second iteration\n//                coefficients for first iteration\n//\n// So in this case we would have two iterations. In the first\n// both lanes are multiplied by r². In the second only the\n// first lane is multiplied by r² and the second lane is\n// instead multiplied by r. This gives use the odd and even\n// powers of r that we need from the original equation.\n//\n// Notation:\n//\n//   h - accumulator\n//   r - key\n//   m - message\n//\n//   [a, b]       - SIMD register holding two 64-bit values\n//   [a, b, c, d] - SIMD register holding four 32-bit values\n//   xᵢ[n]        - limb n of variable x with bit width i\n//\n// Limbs are expressed in little endian order, so for 26-bit\n// limbs x₂₆[4] will be the most significant limb and x₂₆[0]\n// will be the least significant limb.\n\n// masking constants\n#define MOD24 V0 // [0x0000000000ffffff, 0x0000000000ffffff] - mask low 24-bits\n#define MOD26 V1 // [0x0000000003ffffff, 0x0000000003ffffff] - mask low 26-bits\n\n// expansion constants (see EXPAND macro)\n#define EX0 V2\n#define EX1 V3\n#define EX2 V4\n\n// key (r², r or 1 depending on context)\n#define R_0 V5\n#define R_1 V6\n#define R_2 V7\n#define R_3 V8\n#define R_4 V9\n\n// precalculated coefficients (5r², 5r or 0 depending on context)\n#define R5_1 V10\n#define R5_2 V11\n#define R5_3 V12\n#define R5_4 V13\n\n// message block (m)\n#define M_0 V14\n#define M_1 V15\n#define M_2 V16\n#define M_3 V17\n#define M_4 V18\n\n// accumulator (h)\n#define H_0 V19\n#define H_1 V20\n#define H_2 V21\n#define H_3 V22\n#define H_4 V23\n\n// temporary registers (for short-lived values)\n#define T_0 V24\n#define T_1 V25\n#define T_2 V26\n#define T_3 V27\n#define T_4 V28\n\nGLOBL ·constants<>(SB), RODATA, $0x30\n// EX0\nDATA ·constants<>+0x00(SB)/8, $0x0006050403020100\nDATA ·constants<>+0x08(SB)/8, $0x1016151413121110\n// EX1\nDATA ·constants<>+0x10(SB)/8, $0x060c0b0a09080706\nDATA ·constants<>+0x18(SB)/8, $0x161c1b1a19181716\n// EX2\nDATA ·constants<>+0x20(SB)/8, $0x0d0d0d0d0d0f0e0d\nDATA ·constants<>+0x28(SB)/8, $0x1d1d1d1d1d1f1e1d\n\n// MULTIPLY multiplies each lane of f and g, partially reduced\n// modulo 2¹³⁰ - 5. The result, h, consists of partial products\n// in each lane that need to be reduced further to produce the\n// final result.\n//\n//   h₁₃₀ = (f₁₃₀g₁₃₀) % 2¹³⁰ + (5f₁₃₀g₁₃₀) / 2¹³⁰\n//\n// Note that the multiplication by 5 of the high bits is\n// achieved by precalculating the multiplication of four of the\n// g coefficients by 5. These are g51-g54.\n#define MULTIPLY(f0, f1, f2, f3, f4, g0, g1, g2, g3, g4, g51, g52, g53, g54, h0, h1, h2, h3, h4) \\\n\tVMLOF  f0, g0, h0        \\\n\tVMLOF  f0, g3, h3        \\\n\tVMLOF  f0, g1, h1        \\\n\tVMLOF  f0, g4, h4        \\\n\tVMLOF  f0, g2, h2        \\\n\tVMLOF  f1, g54, T_0      \\\n\tVMLOF  f1, g2, T_3       \\\n\tVMLOF  f1, g0, T_1       \\\n\tVMLOF  f1, g3, T_4       \\\n\tVMLOF  f1, g1, T_2       \\\n\tVMALOF f2, g53, h0, h0   \\\n\tVMALOF f2, g1, h3, h3    \\\n\tVMALOF f2, g54, h1, h1   \\\n\tVMALOF f2, g2, h4, h4    \\\n\tVMALOF f2, g0, h2, h2    \\\n\tVMALOF f3, g52, T_0, T_0 \\\n\tVMALOF f3, g0, T_3, T_3  \\\n\tVMALOF f3, g53, T_1, T_1 \\\n\tVMALOF f3, g1, T_4, T_4  \\\n\tVMALOF f3, g54, T_2, T_2 \\\n\tVMALOF f4, g51, h0, h0   \\\n\tVMALOF f4, g54, h3, h3   \\\n\tVMALOF f4, g52, h1, h1   \\\n\tVMALOF f4, g0, h4, h4    \\\n\tVMALOF f4, g53, h2, h2   \\\n\tVAG    T_0, h0, h0       \\\n\tVAG    T_3, h3, h3       \\\n\tVAG    T_1, h1, h1       \\\n\tVAG    T_4, h4, h4       \\\n\tVAG    T_2, h2, h2\n\n// REDUCE performs the following carry operations in four\n// stages, as specified in Bernstein & Schwabe:\n//\n//   1: h₂₆[0]->h₂₆[1] h₂₆[3]->h₂₆[4]\n//   2: h₂₆[1]->h₂₆[2] h₂₆[4]->h₂₆[0]\n//   3: h₂₆[0]->h₂₆[1] h₂₆[2]->h₂₆[3]\n//   4: h₂₆[3]->h₂₆[4]\n//\n// The result is that all of the limbs are limited to 26-bits\n// except for h₂₆[1] and h₂₆[4] which are limited to 27-bits.\n//\n// Note that although each limb is aligned at 26-bit intervals\n// they may contain values that exceed 2²⁶ - 1, hence the need\n// to carry the excess bits in each limb.\n#define REDUCE(h0, h1, h2, h3, h4) \\\n\tVESRLG $26, h0, T_0  \\\n\tVESRLG $26, h3, T_1  \\\n\tVN     MOD26, h0, h0 \\\n\tVN     MOD26, h3, h3 \\\n\tVAG    T_0, h1, h1   \\\n\tVAG    T_1, h4, h4   \\\n\tVESRLG $26, h1, T_2  \\\n\tVESRLG $26, h4, T_3  \\\n\tVN     MOD26, h1, h1 \\\n\tVN     MOD26, h4, h4 \\\n\tVESLG  $2, T_3, T_4  \\\n\tVAG    T_3, T_4, T_4 \\\n\tVAG    T_2, h2, h2   \\\n\tVAG    T_4, h0, h0   \\\n\tVESRLG $26, h2, T_0  \\\n\tVESRLG $26, h0, T_1  \\\n\tVN     MOD26, h2, h2 \\\n\tVN     MOD26, h0, h0 \\\n\tVAG    T_0, h3, h3   \\\n\tVAG    T_1, h1, h1   \\\n\tVESRLG $26, h3, T_2  \\\n\tVN     MOD26, h3, h3 \\\n\tVAG    T_2, h4, h4\n\n// EXPAND splits the 128-bit little-endian values in0 and in1\n// into 26-bit big-endian limbs and places the results into\n// the first and second lane of d₂₆[0:4] respectively.\n//\n// The EX0, EX1 and EX2 constants are arrays of byte indices\n// for permutation. The permutation both reverses the bytes\n// in the input and ensures the bytes are copied into the\n// destination limb ready to be shifted into their final\n// position.\n#define EXPAND(in0, in1, d0, d1, d2, d3, d4) \\\n\tVPERM  in0, in1, EX0, d0 \\\n\tVPERM  in0, in1, EX1, d2 \\\n\tVPERM  in0, in1, EX2, d4 \\\n\tVESRLG $26, d0, d1       \\\n\tVESRLG $30, d2, d3       \\\n\tVESRLG $4, d2, d2        \\\n\tVN     MOD26, d0, d0     \\ // [in0₂₆[0], in1₂₆[0]]\n\tVN     MOD26, d3, d3     \\ // [in0₂₆[3], in1₂₆[3]]\n\tVN     MOD26, d1, d1     \\ // [in0₂₆[1], in1₂₆[1]]\n\tVN     MOD24, d4, d4     \\ // [in0₂₆[4], in1₂₆[4]]\n\tVN     MOD26, d2, d2     // [in0₂₆[2], in1₂₆[2]]\n\n// func updateVX(state *macState, msg []byte)\nTEXT ·updateVX(SB), NOSPLIT, $0\n\tMOVD state+0(FP), R1\n\tLMG  msg+8(FP), R2, R3 // R2=msg_base, R3=msg_len\n\n\t// load EX0, EX1 and EX2\n\tMOVD $·constants<>(SB), R5\n\tVLM  (R5), EX0, EX2\n\n\t// generate masks\n\tVGMG $(64-24), $63, MOD24 // [0x00ffffff, 0x00ffffff]\n\tVGMG $(64-26), $63, MOD26 // [0x03ffffff, 0x03ffffff]\n\n\t// load h (accumulator) and r (key) from state\n\tVZERO T_1               // [0, 0]\n\tVL    0(R1), T_0        // [h₆₄[0], h₆₄[1]]\n\tVLEG  $0, 16(R1), T_1   // [h₆₄[2], 0]\n\tVL    24(R1), T_2       // [r₆₄[0], r₆₄[1]]\n\tVPDI  $0, T_0, T_2, T_3 // [h₆₄[0], r₆₄[0]]\n\tVPDI  $5, T_0, T_2, T_4 // [h₆₄[1], r₆₄[1]]\n\n\t// unpack h and r into 26-bit limbs\n\t// note: h₆₄[2] may have the low 3 bits set, so h₂₆[4] is a 27-bit value\n\tVN     MOD26, T_3, H_0            // [h₂₆[0], r₂₆[0]]\n\tVZERO  H_1                        // [0, 0]\n\tVZERO  H_3                        // [0, 0]\n\tVGMG   $(64-12-14), $(63-12), T_0 // [0x03fff000, 0x03fff000] - 26-bit mask with low 12 bits masked out\n\tVESLG  $24, T_1, T_1              // [h₆₄[2]<<24, 0]\n\tVERIMG $-26&63, T_3, MOD26, H_1   // [h₂₆[1], r₂₆[1]]\n\tVESRLG $+52&63, T_3, H_2          // [h₂₆[2], r₂₆[2]] - low 12 bits only\n\tVERIMG $-14&63, T_4, MOD26, H_3   // [h₂₆[1], r₂₆[1]]\n\tVESRLG $40, T_4, H_4              // [h₂₆[4], r₂₆[4]] - low 24 bits only\n\tVERIMG $+12&63, T_4, T_0, H_2     // [h₂₆[2], r₂₆[2]] - complete\n\tVO     T_1, H_4, H_4              // [h₂₆[4], r₂₆[4]] - complete\n\n\t// replicate r across all 4 vector elements\n\tVREPF $3, H_0, R_0 // [r₂₆[0], r₂₆[0], r₂₆[0], r₂₆[0]]\n\tVREPF $3, H_1, R_1 // [r₂₆[1], r₂₆[1], r₂₆[1], r₂₆[1]]\n\tVREPF $3, H_2, R_2 // [r₂₆[2], r₂₆[2], r₂₆[2], r₂₆[2]]\n\tVREPF $3, H_3, R_3 // [r₂₆[3], r₂₆[3], r₂₆[3], r₂₆[3]]\n\tVREPF $3, H_4, R_4 // [r₂₆[4], r₂₆[4], r₂₆[4], r₂₆[4]]\n\n\t// zero out lane 1 of h\n\tVLEIG $1, $0, H_0 // [h₂₆[0], 0]\n\tVLEIG $1, $0, H_1 // [h₂₆[1], 0]\n\tVLEIG $1, $0, H_2 // [h₂₆[2], 0]\n\tVLEIG $1, $0, H_3 // [h₂₆[3], 0]\n\tVLEIG $1, $0, H_4 // [h₂₆[4], 0]\n\n\t// calculate 5r (ignore least significant limb)\n\tVREPIF $5, T_0\n\tVMLF   T_0, R_1, R5_1 // [5r₂₆[1], 5r₂₆[1], 5r₂₆[1], 5r₂₆[1]]\n\tVMLF   T_0, R_2, R5_2 // [5r₂₆[2], 5r₂₆[2], 5r₂₆[2], 5r₂₆[2]]\n\tVMLF   T_0, R_3, R5_3 // [5r₂₆[3], 5r₂₆[3], 5r₂₆[3], 5r₂₆[3]]\n\tVMLF   T_0, R_4, R5_4 // [5r₂₆[4], 5r₂₆[4], 5r₂₆[4], 5r₂₆[4]]\n\n\t// skip r² calculation if we are only calculating one block\n\tCMPBLE R3, $16, skip\n\n\t// calculate r²\n\tMULTIPLY(R_0, R_1, R_2, R_3, R_4, R_0, R_1, R_2, R_3, R_4, R5_1, R5_2, R5_3, R5_4, M_0, M_1, M_2, M_3, M_4)\n\tREDUCE(M_0, M_1, M_2, M_3, M_4)\n\tVGBM   $0x0f0f, T_0\n\tVERIMG $0, M_0, T_0, R_0 // [r₂₆[0], r²₂₆[0], r₂₆[0], r²₂₆[0]]\n\tVERIMG $0, M_1, T_0, R_1 // [r₂₆[1], r²₂₆[1], r₂₆[1], r²₂₆[1]]\n\tVERIMG $0, M_2, T_0, R_2 // [r₂₆[2], r²₂₆[2], r₂₆[2], r²₂₆[2]]\n\tVERIMG $0, M_3, T_0, R_3 // [r₂₆[3], r²₂₆[3], r₂₆[3], r²₂₆[3]]\n\tVERIMG $0, M_4, T_0, R_4 // [r₂₆[4], r²₂₆[4], r₂₆[4], r²₂₆[4]]\n\n\t// calculate 5r² (ignore least significant limb)\n\tVREPIF $5, T_0\n\tVMLF   T_0, R_1, R5_1 // [5r₂₆[1], 5r²₂₆[1], 5r₂₆[1], 5r²₂₆[1]]\n\tVMLF   T_0, R_2, R5_2 // [5r₂₆[2], 5r²₂₆[2], 5r₂₆[2], 5r²₂₆[2]]\n\tVMLF   T_0, R_3, R5_3 // [5r₂₆[3], 5r²₂₆[3], 5r₂₆[3], 5r²₂₆[3]]\n\tVMLF   T_0, R_4, R5_4 // [5r₂₆[4], 5r²₂₆[4], 5r₂₆[4], 5r²₂₆[4]]\n\nloop:\n\tCMPBLE R3, $32, b2 // 2 or fewer blocks remaining, need to change key coefficients\n\n\t// load next 2 blocks from message\n\tVLM (R2), T_0, T_1\n\n\t// update message slice\n\tSUB  $32, R3\n\tMOVD $32(R2), R2\n\n\t// unpack message blocks into 26-bit big-endian limbs\n\tEXPAND(T_0, T_1, M_0, M_1, M_2, M_3, M_4)\n\n\t// add 2¹²⁸ to each message block value\n\tVLEIB $4, $1, M_4\n\tVLEIB $12, $1, M_4\n\nmultiply:\n\t// accumulate the incoming message\n\tVAG H_0, M_0, M_0\n\tVAG H_3, M_3, M_3\n\tVAG H_1, M_1, M_1\n\tVAG H_4, M_4, M_4\n\tVAG H_2, M_2, M_2\n\n\t// multiply the accumulator by the key coefficient\n\tMULTIPLY(M_0, M_1, M_2, M_3, M_4, R_0, R_1, R_2, R_3, R_4, R5_1, R5_2, R5_3, R5_4, H_0, H_1, H_2, H_3, H_4)\n\n\t// carry and partially reduce the partial products\n\tREDUCE(H_0, H_1, H_2, H_3, H_4)\n\n\tCMPBNE R3, $0, loop\n\nfinish:\n\t// sum lane 0 and lane 1 and put the result in lane 1\n\tVZERO  T_0\n\tVSUMQG H_0, T_0, H_0\n\tVSUMQG H_3, T_0, H_3\n\tVSUMQG H_1, T_0, H_1\n\tVSUMQG H_4, T_0, H_4\n\tVSUMQG H_2, T_0, H_2\n\n\t// reduce again after summation\n\t// TODO(mundaym): there might be a more efficient way to do this\n\t// now that we only have 1 active lane. For example, we could\n\t// simultaneously pack the values as we reduce them.\n\tREDUCE(H_0, H_1, H_2, H_3, H_4)\n\n\t// carry h[1] through to h[4] so that only h[4] can exceed 2²⁶ - 1\n\t// TODO(mundaym): in testing this final carry was unnecessary.\n\t// Needs a proof before it can be removed though.\n\tVESRLG $26, H_1, T_1\n\tVN     MOD26, H_1, H_1\n\tVAQ    T_1, H_2, H_2\n\tVESRLG $26, H_2, T_2\n\tVN     MOD26, H_2, H_2\n\tVAQ    T_2, H_3, H_3\n\tVESRLG $26, H_3, T_3\n\tVN     MOD26, H_3, H_3\n\tVAQ    T_3, H_4, H_4\n\n\t// h is now < 2(2¹³⁰ - 5)\n\t// Pack each lane in h₂₆[0:4] into h₁₂₈[0:1].\n\tVESLG $26, H_1, H_1\n\tVESLG $26, H_3, H_3\n\tVO    H_0, H_1, H_0\n\tVO    H_2, H_3, H_2\n\tVESLG $4, H_2, H_2\n\tVLEIB $7, $48, H_1\n\tVSLB  H_1, H_2, H_2\n\tVO    H_0, H_2, H_0\n\tVLEIB $7, $104, H_1\n\tVSLB  H_1, H_4, H_3\n\tVO    H_3, H_0, H_0\n\tVLEIB $7, $24, H_1\n\tVSRLB H_1, H_4, H_1\n\n\t// update state\n\tVSTEG $1, H_0, 0(R1)\n\tVSTEG $0, H_0, 8(R1)\n\tVSTEG $1, H_1, 16(R1)\n\tRET\n\nb2:  // 2 or fewer blocks remaining\n\tCMPBLE R3, $16, b1\n\n\t// Load the 2 remaining blocks (17-32 bytes remaining).\n\tMOVD $-17(R3), R0    // index of final byte to load modulo 16\n\tVL   (R2), T_0       // load full 16 byte block\n\tVLL  R0, 16(R2), T_1 // load final (possibly partial) block and pad with zeros to 16 bytes\n\n\t// The Poly1305 algorithm requires that a 1 bit be appended to\n\t// each message block. If the final block is less than 16 bytes\n\t// long then it is easiest to insert the 1 before the message\n\t// block is split into 26-bit limbs. If, on the other hand, the\n\t// final message block is 16 bytes long then we append the 1 bit\n\t// after expansion as normal.\n\tMOVBZ  $1, R0\n\tMOVD   $-16(R3), R3   // index of byte in last block to insert 1 at (could be 16)\n\tCMPBEQ R3, $16, 2(PC) // skip the insertion if the final block is 16 bytes long\n\tVLVGB  R3, R0, T_1    // insert 1 into the byte at index R3\n\n\t// Split both blocks into 26-bit limbs in the appropriate lanes.\n\tEXPAND(T_0, T_1, M_0, M_1, M_2, M_3, M_4)\n\n\t// Append a 1 byte to the end of the second to last block.\n\tVLEIB $4, $1, M_4\n\n\t// Append a 1 byte to the end of the last block only if it is a\n\t// full 16 byte block.\n\tCMPBNE R3, $16, 2(PC)\n\tVLEIB  $12, $1, M_4\n\n\t// Finally, set up the coefficients for the final multiplication.\n\t// We have previously saved r and 5r in the 32-bit even indexes\n\t// of the R_[0-4] and R5_[1-4] coefficient registers.\n\t//\n\t// We want lane 0 to be multiplied by r² so that can be kept the\n\t// same. We want lane 1 to be multiplied by r so we need to move\n\t// the saved r value into the 32-bit odd index in lane 1 by\n\t// rotating the 64-bit lane by 32.\n\tVGBM   $0x00ff, T_0         // [0, 0xffffffffffffffff] - mask lane 1 only\n\tVERIMG $32, R_0, T_0, R_0   // [_,  r²₂₆[0], _,  r₂₆[0]]\n\tVERIMG $32, R_1, T_0, R_1   // [_,  r²₂₆[1], _,  r₂₆[1]]\n\tVERIMG $32, R_2, T_0, R_2   // [_,  r²₂₆[2], _,  r₂₆[2]]\n\tVERIMG $32, R_3, T_0, R_3   // [_,  r²₂₆[3], _,  r₂₆[3]]\n\tVERIMG $32, R_4, T_0, R_4   // [_,  r²₂₆[4], _,  r₂₆[4]]\n\tVERIMG $32, R5_1, T_0, R5_1 // [_, 5r²₂₆[1], _, 5r₂₆[1]]\n\tVERIMG $32, R5_2, T_0, R5_2 // [_, 5r²₂₆[2], _, 5r₂₆[2]]\n\tVERIMG $32, R5_3, T_0, R5_3 // [_, 5r²₂₆[3], _, 5r₂₆[3]]\n\tVERIMG $32, R5_4, T_0, R5_4 // [_, 5r²₂₆[4], _, 5r₂₆[4]]\n\n\tMOVD $0, R3\n\tBR   multiply\n\nskip:\n\tCMPBEQ R3, $0, finish\n\nb1:  // 1 block remaining\n\n\t// Load the final block (1-16 bytes). This will be placed into\n\t// lane 0.\n\tMOVD $-1(R3), R0\n\tVLL  R0, (R2), T_0 // pad to 16 bytes with zeros\n\n\t// The Poly1305 algorithm requires that a 1 bit be appended to\n\t// each message block. If the final block is less than 16 bytes\n\t// long then it is easiest to insert the 1 before the message\n\t// block is split into 26-bit limbs. If, on the other hand, the\n\t// final message block is 16 bytes long then we append the 1 bit\n\t// after expansion as normal.\n\tMOVBZ  $1, R0\n\tCMPBEQ R3, $16, 2(PC)\n\tVLVGB  R3, R0, T_0\n\n\t// Set the message block in lane 1 to the value 0 so that it\n\t// can be accumulated without affecting the final result.\n\tVZERO T_1\n\n\t// Split the final message block into 26-bit limbs in lane 0.\n\t// Lane 1 will be contain 0.\n\tEXPAND(T_0, T_1, M_0, M_1, M_2, M_3, M_4)\n\n\t// Append a 1 byte to the end of the last block only if it is a\n\t// full 16 byte block.\n\tCMPBNE R3, $16, 2(PC)\n\tVLEIB  $4, $1, M_4\n\n\t// We have previously saved r and 5r in the 32-bit even indexes\n\t// of the R_[0-4] and R5_[1-4] coefficient registers.\n\t//\n\t// We want lane 0 to be multiplied by r so we need to move the\n\t// saved r value into the 32-bit odd index in lane 0. We want\n\t// lane 1 to be set to the value 1. This makes multiplication\n\t// a no-op. We do this by setting lane 1 in every register to 0\n\t// and then just setting the 32-bit index 3 in R_0 to 1.\n\tVZERO T_0\n\tMOVD  $0, R0\n\tMOVD  $0x10111213, R12\n\tVLVGP R12, R0, T_1         // [_, 0x10111213, _, 0x00000000]\n\tVPERM T_0, R_0, T_1, R_0   // [_,  r₂₆[0], _, 0]\n\tVPERM T_0, R_1, T_1, R_1   // [_,  r₂₆[1], _, 0]\n\tVPERM T_0, R_2, T_1, R_2   // [_,  r₂₆[2], _, 0]\n\tVPERM T_0, R_3, T_1, R_3   // [_,  r₂₆[3], _, 0]\n\tVPERM T_0, R_4, T_1, R_4   // [_,  r₂₆[4], _, 0]\n\tVPERM T_0, R5_1, T_1, R5_1 // [_, 5r₂₆[1], _, 0]\n\tVPERM T_0, R5_2, T_1, R5_2 // [_, 5r₂₆[2], _, 0]\n\tVPERM T_0, R5_3, T_1, R5_3 // [_, 5r₂₆[3], _, 0]\n\tVPERM T_0, R5_4, T_1, R5_4 // [_, 5r₂₆[4], _, 0]\n\n\t// Set the value of lane 1 to be 1.\n\tVLEIF $3, $1, R_0 // [_,  r₂₆[0], _, 1]\n\n\tMOVD $0, R3\n\tBR   multiply\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/agent/client.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// Package agent implements the ssh-agent protocol, and provides both\n// a client and a server. The client can talk to a standard ssh-agent\n// that uses UNIX sockets, and one could implement an alternative\n// ssh-agent process using the sample server.\n//\n// References:\n//\n//\t[PROTOCOL.agent]: https://tools.ietf.org/html/draft-miller-ssh-agent-00\npackage agent\n\nimport (\n\t\"bytes\"\n\t\"crypto/dsa\"\n\t\"crypto/ecdsa\"\n\t\"crypto/ed25519\"\n\t\"crypto/elliptic\"\n\t\"crypto/rsa\"\n\t\"encoding/base64\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"sync\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// SignatureFlags represent additional flags that can be passed to the signature\n// requests an defined in [PROTOCOL.agent] section 4.5.1.\ntype SignatureFlags uint32\n\n// SignatureFlag values as defined in [PROTOCOL.agent] section 5.3.\nconst (\n\tSignatureFlagReserved SignatureFlags = 1 << iota\n\tSignatureFlagRsaSha256\n\tSignatureFlagRsaSha512\n)\n\n// Agent represents the capabilities of an ssh-agent.\ntype Agent interface {\n\t// List returns the identities known to the agent.\n\tList() ([]*Key, error)\n\n\t// Sign has the agent sign the data using a protocol 2 key as defined\n\t// in [PROTOCOL.agent] section 2.6.2.\n\tSign(key ssh.PublicKey, data []byte) (*ssh.Signature, error)\n\n\t// Add adds a private key to the agent.\n\tAdd(key AddedKey) error\n\n\t// Remove removes all identities with the given public key.\n\tRemove(key ssh.PublicKey) error\n\n\t// RemoveAll removes all identities.\n\tRemoveAll() error\n\n\t// Lock locks the agent. Sign and Remove will fail, and List will empty an empty list.\n\tLock(passphrase []byte) error\n\n\t// Unlock undoes the effect of Lock\n\tUnlock(passphrase []byte) error\n\n\t// Signers returns signers for all the known keys.\n\tSigners() ([]ssh.Signer, error)\n}\n\ntype ExtendedAgent interface {\n\tAgent\n\n\t// SignWithFlags signs like Sign, but allows for additional flags to be sent/received\n\tSignWithFlags(key ssh.PublicKey, data []byte, flags SignatureFlags) (*ssh.Signature, error)\n\n\t// Extension processes a custom extension request. Standard-compliant agents are not\n\t// required to support any extensions, but this method allows agents to implement\n\t// vendor-specific methods or add experimental features. See [PROTOCOL.agent] section 4.7.\n\t// If agent extensions are unsupported entirely this method MUST return an\n\t// ErrExtensionUnsupported error. Similarly, if just the specific extensionType in\n\t// the request is unsupported by the agent then ErrExtensionUnsupported MUST be\n\t// returned.\n\t//\n\t// In the case of success, since [PROTOCOL.agent] section 4.7 specifies that the contents\n\t// of the response are unspecified (including the type of the message), the complete\n\t// response will be returned as a []byte slice, including the \"type\" byte of the message.\n\tExtension(extensionType string, contents []byte) ([]byte, error)\n}\n\n// ConstraintExtension describes an optional constraint defined by users.\ntype ConstraintExtension struct {\n\t// ExtensionName consist of a UTF-8 string suffixed by the\n\t// implementation domain following the naming scheme defined\n\t// in Section 4.2 of RFC 4251, e.g.  \"foo@example.com\".\n\tExtensionName string\n\t// ExtensionDetails contains the actual content of the extended\n\t// constraint.\n\tExtensionDetails []byte\n}\n\n// AddedKey describes an SSH key to be added to an Agent.\ntype AddedKey struct {\n\t// PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey,\n\t// ed25519.PrivateKey or *ecdsa.PrivateKey, which will be inserted into the\n\t// agent.\n\tPrivateKey interface{}\n\t// Certificate, if not nil, is communicated to the agent and will be\n\t// stored with the key.\n\tCertificate *ssh.Certificate\n\t// Comment is an optional, free-form string.\n\tComment string\n\t// LifetimeSecs, if not zero, is the number of seconds that the\n\t// agent will store the key for.\n\tLifetimeSecs uint32\n\t// ConfirmBeforeUse, if true, requests that the agent confirm with the\n\t// user before each use of this key.\n\tConfirmBeforeUse bool\n\t// ConstraintExtensions are the experimental or private-use constraints\n\t// defined by users.\n\tConstraintExtensions []ConstraintExtension\n}\n\n// See [PROTOCOL.agent], section 3.\nconst (\n\tagentRequestV1Identities   = 1\n\tagentRemoveAllV1Identities = 9\n\n\t// 3.2 Requests from client to agent for protocol 2 key operations\n\tagentAddIdentity         = 17\n\tagentRemoveIdentity      = 18\n\tagentRemoveAllIdentities = 19\n\tagentAddIDConstrained    = 25\n\n\t// 3.3 Key-type independent requests from client to agent\n\tagentAddSmartcardKey            = 20\n\tagentRemoveSmartcardKey         = 21\n\tagentLock                       = 22\n\tagentUnlock                     = 23\n\tagentAddSmartcardKeyConstrained = 26\n\n\t// 3.7 Key constraint identifiers\n\tagentConstrainLifetime = 1\n\tagentConstrainConfirm  = 2\n\t// Constraint extension identifier up to version 2 of the protocol. A\n\t// backward incompatible change will be required if we want to add support\n\t// for SSH_AGENT_CONSTRAIN_MAXSIGN which uses the same ID.\n\tagentConstrainExtensionV00 = 3\n\t// Constraint extension identifier in version 3 and later of the protocol.\n\tagentConstrainExtension = 255\n)\n\n// maxAgentResponseBytes is the maximum agent reply size that is accepted. This\n// is a sanity check, not a limit in the spec.\nconst maxAgentResponseBytes = 16 << 20\n\n// Agent messages:\n// These structures mirror the wire format of the corresponding ssh agent\n// messages found in [PROTOCOL.agent].\n\n// 3.4 Generic replies from agent to client\nconst agentFailure = 5\n\ntype failureAgentMsg struct{}\n\nconst agentSuccess = 6\n\ntype successAgentMsg struct{}\n\n// See [PROTOCOL.agent], section 2.5.2.\nconst agentRequestIdentities = 11\n\ntype requestIdentitiesAgentMsg struct{}\n\n// See [PROTOCOL.agent], section 2.5.2.\nconst agentIdentitiesAnswer = 12\n\ntype identitiesAnswerAgentMsg struct {\n\tNumKeys uint32 `sshtype:\"12\"`\n\tKeys    []byte `ssh:\"rest\"`\n}\n\n// See [PROTOCOL.agent], section 2.6.2.\nconst agentSignRequest = 13\n\ntype signRequestAgentMsg struct {\n\tKeyBlob []byte `sshtype:\"13\"`\n\tData    []byte\n\tFlags   uint32\n}\n\n// See [PROTOCOL.agent], section 2.6.2.\n\n// 3.6 Replies from agent to client for protocol 2 key operations\nconst agentSignResponse = 14\n\ntype signResponseAgentMsg struct {\n\tSigBlob []byte `sshtype:\"14\"`\n}\n\ntype publicKey struct {\n\tFormat string\n\tRest   []byte `ssh:\"rest\"`\n}\n\n// 3.7 Key constraint identifiers\ntype constrainLifetimeAgentMsg struct {\n\tLifetimeSecs uint32 `sshtype:\"1\"`\n}\n\ntype constrainExtensionAgentMsg struct {\n\tExtensionName    string `sshtype:\"255|3\"`\n\tExtensionDetails []byte\n\n\t// Rest is a field used for parsing, not part of message\n\tRest []byte `ssh:\"rest\"`\n}\n\n// See [PROTOCOL.agent], section 4.7\nconst agentExtension = 27\nconst agentExtensionFailure = 28\n\n// ErrExtensionUnsupported indicates that an extension defined in\n// [PROTOCOL.agent] section 4.7 is unsupported by the agent. Specifically this\n// error indicates that the agent returned a standard SSH_AGENT_FAILURE message\n// as the result of a SSH_AGENTC_EXTENSION request. Note that the protocol\n// specification (and therefore this error) does not distinguish between a\n// specific extension being unsupported and extensions being unsupported entirely.\nvar ErrExtensionUnsupported = errors.New(\"agent: extension unsupported\")\n\ntype extensionAgentMsg struct {\n\tExtensionType string `sshtype:\"27\"`\n\t// NOTE: this matches OpenSSH's PROTOCOL.agent, not the IETF draft [PROTOCOL.agent],\n\t// so that it matches what OpenSSH actually implements in the wild.\n\tContents []byte `ssh:\"rest\"`\n}\n\n// Key represents a protocol 2 public key as defined in\n// [PROTOCOL.agent], section 2.5.2.\ntype Key struct {\n\tFormat  string\n\tBlob    []byte\n\tComment string\n}\n\nfunc clientErr(err error) error {\n\treturn fmt.Errorf(\"agent: client error: %v\", err)\n}\n\n// String returns the storage form of an agent key with the format, base64\n// encoded serialized key, and the comment if it is not empty.\nfunc (k *Key) String() string {\n\ts := string(k.Format) + \" \" + base64.StdEncoding.EncodeToString(k.Blob)\n\n\tif k.Comment != \"\" {\n\t\ts += \" \" + k.Comment\n\t}\n\n\treturn s\n}\n\n// Type returns the public key type.\nfunc (k *Key) Type() string {\n\treturn k.Format\n}\n\n// Marshal returns key blob to satisfy the ssh.PublicKey interface.\nfunc (k *Key) Marshal() []byte {\n\treturn k.Blob\n}\n\n// Verify satisfies the ssh.PublicKey interface.\nfunc (k *Key) Verify(data []byte, sig *ssh.Signature) error {\n\tpubKey, err := ssh.ParsePublicKey(k.Blob)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"agent: bad public key: %v\", err)\n\t}\n\treturn pubKey.Verify(data, sig)\n}\n\ntype wireKey struct {\n\tFormat string\n\tRest   []byte `ssh:\"rest\"`\n}\n\nfunc parseKey(in []byte) (out *Key, rest []byte, err error) {\n\tvar record struct {\n\t\tBlob    []byte\n\t\tComment string\n\t\tRest    []byte `ssh:\"rest\"`\n\t}\n\n\tif err := ssh.Unmarshal(in, &record); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tvar wk wireKey\n\tif err := ssh.Unmarshal(record.Blob, &wk); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\treturn &Key{\n\t\tFormat:  wk.Format,\n\t\tBlob:    record.Blob,\n\t\tComment: record.Comment,\n\t}, record.Rest, nil\n}\n\n// client is a client for an ssh-agent process.\ntype client struct {\n\t// conn is typically a *net.UnixConn\n\tconn io.ReadWriter\n\t// mu is used to prevent concurrent access to the agent\n\tmu sync.Mutex\n}\n\n// NewClient returns an Agent that talks to an ssh-agent process over\n// the given connection.\nfunc NewClient(rw io.ReadWriter) ExtendedAgent {\n\treturn &client{conn: rw}\n}\n\n// call sends an RPC to the agent. On success, the reply is\n// unmarshaled into reply and replyType is set to the first byte of\n// the reply, which contains the type of the message.\nfunc (c *client) call(req []byte) (reply interface{}, err error) {\n\tbuf, err := c.callRaw(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treply, err = unmarshal(buf)\n\tif err != nil {\n\t\treturn nil, clientErr(err)\n\t}\n\treturn reply, nil\n}\n\n// callRaw sends an RPC to the agent. On success, the raw\n// bytes of the response are returned; no unmarshalling is\n// performed on the response.\nfunc (c *client) callRaw(req []byte) (reply []byte, err error) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tmsg := make([]byte, 4+len(req))\n\tbinary.BigEndian.PutUint32(msg, uint32(len(req)))\n\tcopy(msg[4:], req)\n\tif _, err = c.conn.Write(msg); err != nil {\n\t\treturn nil, clientErr(err)\n\t}\n\n\tvar respSizeBuf [4]byte\n\tif _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil {\n\t\treturn nil, clientErr(err)\n\t}\n\trespSize := binary.BigEndian.Uint32(respSizeBuf[:])\n\tif respSize > maxAgentResponseBytes {\n\t\treturn nil, clientErr(errors.New(\"response too large\"))\n\t}\n\n\tbuf := make([]byte, respSize)\n\tif _, err = io.ReadFull(c.conn, buf); err != nil {\n\t\treturn nil, clientErr(err)\n\t}\n\treturn buf, nil\n}\n\nfunc (c *client) simpleCall(req []byte) error {\n\tresp, err := c.call(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif _, ok := resp.(*successAgentMsg); ok {\n\t\treturn nil\n\t}\n\treturn errors.New(\"agent: failure\")\n}\n\nfunc (c *client) RemoveAll() error {\n\treturn c.simpleCall([]byte{agentRemoveAllIdentities})\n}\n\nfunc (c *client) Remove(key ssh.PublicKey) error {\n\treq := ssh.Marshal(&agentRemoveIdentityMsg{\n\t\tKeyBlob: key.Marshal(),\n\t})\n\treturn c.simpleCall(req)\n}\n\nfunc (c *client) Lock(passphrase []byte) error {\n\treq := ssh.Marshal(&agentLockMsg{\n\t\tPassphrase: passphrase,\n\t})\n\treturn c.simpleCall(req)\n}\n\nfunc (c *client) Unlock(passphrase []byte) error {\n\treq := ssh.Marshal(&agentUnlockMsg{\n\t\tPassphrase: passphrase,\n\t})\n\treturn c.simpleCall(req)\n}\n\n// List returns the identities known to the agent.\nfunc (c *client) List() ([]*Key, error) {\n\t// see [PROTOCOL.agent] section 2.5.2.\n\treq := []byte{agentRequestIdentities}\n\n\tmsg, err := c.call(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tswitch msg := msg.(type) {\n\tcase *identitiesAnswerAgentMsg:\n\t\tif msg.NumKeys > maxAgentResponseBytes/8 {\n\t\t\treturn nil, errors.New(\"agent: too many keys in agent reply\")\n\t\t}\n\t\tkeys := make([]*Key, msg.NumKeys)\n\t\tdata := msg.Keys\n\t\tfor i := uint32(0); i < msg.NumKeys; i++ {\n\t\t\tvar key *Key\n\t\t\tvar err error\n\t\t\tif key, data, err = parseKey(data); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tkeys[i] = key\n\t\t}\n\t\treturn keys, nil\n\tcase *failureAgentMsg:\n\t\treturn nil, errors.New(\"agent: failed to list keys\")\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"agent: failed to list keys, unexpected message type %T\", msg)\n\t}\n}\n\n// Sign has the agent sign the data using a protocol 2 key as defined\n// in [PROTOCOL.agent] section 2.6.2.\nfunc (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) {\n\treturn c.SignWithFlags(key, data, 0)\n}\n\nfunc (c *client) SignWithFlags(key ssh.PublicKey, data []byte, flags SignatureFlags) (*ssh.Signature, error) {\n\treq := ssh.Marshal(signRequestAgentMsg{\n\t\tKeyBlob: key.Marshal(),\n\t\tData:    data,\n\t\tFlags:   uint32(flags),\n\t})\n\n\tmsg, err := c.call(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tswitch msg := msg.(type) {\n\tcase *signResponseAgentMsg:\n\t\tvar sig ssh.Signature\n\t\tif err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn &sig, nil\n\tcase *failureAgentMsg:\n\t\treturn nil, errors.New(\"agent: failed to sign challenge\")\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"agent: failed to sign challenge, unexpected message type %T\", msg)\n\t}\n}\n\n// unmarshal parses an agent message in packet, returning the parsed\n// form and the message type of packet.\nfunc unmarshal(packet []byte) (interface{}, error) {\n\tif len(packet) < 1 {\n\t\treturn nil, errors.New(\"agent: empty packet\")\n\t}\n\tvar msg interface{}\n\tswitch packet[0] {\n\tcase agentFailure:\n\t\treturn new(failureAgentMsg), nil\n\tcase agentSuccess:\n\t\treturn new(successAgentMsg), nil\n\tcase agentIdentitiesAnswer:\n\t\tmsg = new(identitiesAnswerAgentMsg)\n\tcase agentSignResponse:\n\t\tmsg = new(signResponseAgentMsg)\n\tcase agentV1IdentitiesAnswer:\n\t\tmsg = new(agentV1IdentityMsg)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"agent: unknown type tag %d\", packet[0])\n\t}\n\tif err := ssh.Unmarshal(packet, msg); err != nil {\n\t\treturn nil, err\n\t}\n\treturn msg, nil\n}\n\ntype rsaKeyMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tN           *big.Int\n\tE           *big.Int\n\tD           *big.Int\n\tIqmp        *big.Int // IQMP = Inverse Q Mod P\n\tP           *big.Int\n\tQ           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype dsaKeyMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tP           *big.Int\n\tQ           *big.Int\n\tG           *big.Int\n\tY           *big.Int\n\tX           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype ecdsaKeyMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tCurve       string\n\tKeyBytes    []byte\n\tD           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype ed25519KeyMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tPub         []byte\n\tPriv        []byte\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\n// Insert adds a private key to the agent.\nfunc (c *client) insertKey(s interface{}, comment string, constraints []byte) error {\n\tvar req []byte\n\tswitch k := s.(type) {\n\tcase *rsa.PrivateKey:\n\t\tif len(k.Primes) != 2 {\n\t\t\treturn fmt.Errorf(\"agent: unsupported RSA key with %d primes\", len(k.Primes))\n\t\t}\n\t\tk.Precompute()\n\t\treq = ssh.Marshal(rsaKeyMsg{\n\t\t\tType:        ssh.KeyAlgoRSA,\n\t\t\tN:           k.N,\n\t\t\tE:           big.NewInt(int64(k.E)),\n\t\t\tD:           k.D,\n\t\t\tIqmp:        k.Precomputed.Qinv,\n\t\t\tP:           k.Primes[0],\n\t\t\tQ:           k.Primes[1],\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase *dsa.PrivateKey:\n\t\treq = ssh.Marshal(dsaKeyMsg{\n\t\t\tType:        ssh.InsecureKeyAlgoDSA,\n\t\t\tP:           k.P,\n\t\t\tQ:           k.Q,\n\t\t\tG:           k.G,\n\t\t\tY:           k.Y,\n\t\t\tX:           k.X,\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase *ecdsa.PrivateKey:\n\t\tnistID := fmt.Sprintf(\"nistp%d\", k.Params().BitSize)\n\t\treq = ssh.Marshal(ecdsaKeyMsg{\n\t\t\tType:        \"ecdsa-sha2-\" + nistID,\n\t\t\tCurve:       nistID,\n\t\t\tKeyBytes:    elliptic.Marshal(k.Curve, k.X, k.Y),\n\t\t\tD:           k.D,\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase ed25519.PrivateKey:\n\t\treq = ssh.Marshal(ed25519KeyMsg{\n\t\t\tType:        ssh.KeyAlgoED25519,\n\t\t\tPub:         []byte(k)[32:],\n\t\t\tPriv:        []byte(k),\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\t// This function originally supported only *ed25519.PrivateKey, however the\n\t// general idiom is to pass ed25519.PrivateKey by value, not by pointer.\n\t// We still support the pointer variant for backwards compatibility.\n\tcase *ed25519.PrivateKey:\n\t\treq = ssh.Marshal(ed25519KeyMsg{\n\t\t\tType:        ssh.KeyAlgoED25519,\n\t\t\tPub:         []byte(*k)[32:],\n\t\t\tPriv:        []byte(*k),\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tdefault:\n\t\treturn fmt.Errorf(\"agent: unsupported key type %T\", s)\n\t}\n\n\t// if constraints are present then the message type needs to be changed.\n\tif len(constraints) != 0 {\n\t\treq[0] = agentAddIDConstrained\n\t}\n\n\tresp, err := c.call(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif _, ok := resp.(*successAgentMsg); ok {\n\t\treturn nil\n\t}\n\treturn errors.New(\"agent: failure\")\n}\n\ntype rsaCertMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tCertBytes   []byte\n\tD           *big.Int\n\tIqmp        *big.Int // IQMP = Inverse Q Mod P\n\tP           *big.Int\n\tQ           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype dsaCertMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tCertBytes   []byte\n\tX           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype ecdsaCertMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tCertBytes   []byte\n\tD           *big.Int\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\ntype ed25519CertMsg struct {\n\tType        string `sshtype:\"17|25\"`\n\tCertBytes   []byte\n\tPub         []byte\n\tPriv        []byte\n\tComments    string\n\tConstraints []byte `ssh:\"rest\"`\n}\n\n// Add adds a private key to the agent. If a certificate is given,\n// that certificate is added instead as public key.\nfunc (c *client) Add(key AddedKey) error {\n\tvar constraints []byte\n\n\tif secs := key.LifetimeSecs; secs != 0 {\n\t\tconstraints = append(constraints, ssh.Marshal(constrainLifetimeAgentMsg{secs})...)\n\t}\n\n\tif key.ConfirmBeforeUse {\n\t\tconstraints = append(constraints, agentConstrainConfirm)\n\t}\n\n\tcert := key.Certificate\n\tif cert == nil {\n\t\treturn c.insertKey(key.PrivateKey, key.Comment, constraints)\n\t}\n\treturn c.insertCert(key.PrivateKey, cert, key.Comment, constraints)\n}\n\nfunc (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error {\n\tvar req []byte\n\tswitch k := s.(type) {\n\tcase *rsa.PrivateKey:\n\t\tif len(k.Primes) != 2 {\n\t\t\treturn fmt.Errorf(\"agent: unsupported RSA key with %d primes\", len(k.Primes))\n\t\t}\n\t\tk.Precompute()\n\t\treq = ssh.Marshal(rsaCertMsg{\n\t\t\tType:        cert.Type(),\n\t\t\tCertBytes:   cert.Marshal(),\n\t\t\tD:           k.D,\n\t\t\tIqmp:        k.Precomputed.Qinv,\n\t\t\tP:           k.Primes[0],\n\t\t\tQ:           k.Primes[1],\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase *dsa.PrivateKey:\n\t\treq = ssh.Marshal(dsaCertMsg{\n\t\t\tType:        cert.Type(),\n\t\t\tCertBytes:   cert.Marshal(),\n\t\t\tX:           k.X,\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase *ecdsa.PrivateKey:\n\t\treq = ssh.Marshal(ecdsaCertMsg{\n\t\t\tType:        cert.Type(),\n\t\t\tCertBytes:   cert.Marshal(),\n\t\t\tD:           k.D,\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tcase ed25519.PrivateKey:\n\t\treq = ssh.Marshal(ed25519CertMsg{\n\t\t\tType:        cert.Type(),\n\t\t\tCertBytes:   cert.Marshal(),\n\t\t\tPub:         []byte(k)[32:],\n\t\t\tPriv:        []byte(k),\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\t// This function originally supported only *ed25519.PrivateKey, however the\n\t// general idiom is to pass ed25519.PrivateKey by value, not by pointer.\n\t// We still support the pointer variant for backwards compatibility.\n\tcase *ed25519.PrivateKey:\n\t\treq = ssh.Marshal(ed25519CertMsg{\n\t\t\tType:        cert.Type(),\n\t\t\tCertBytes:   cert.Marshal(),\n\t\t\tPub:         []byte(*k)[32:],\n\t\t\tPriv:        []byte(*k),\n\t\t\tComments:    comment,\n\t\t\tConstraints: constraints,\n\t\t})\n\tdefault:\n\t\treturn fmt.Errorf(\"agent: unsupported key type %T\", s)\n\t}\n\n\t// if constraints are present then the message type needs to be changed.\n\tif len(constraints) != 0 {\n\t\treq[0] = agentAddIDConstrained\n\t}\n\n\tsigner, err := ssh.NewSignerFromKey(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !bytes.Equal(cert.Key.Marshal(), signer.PublicKey().Marshal()) {\n\t\treturn errors.New(\"agent: signer and cert have different public key\")\n\t}\n\n\tresp, err := c.call(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif _, ok := resp.(*successAgentMsg); ok {\n\t\treturn nil\n\t}\n\treturn errors.New(\"agent: failure\")\n}\n\n// Signers provides a callback for client authentication.\nfunc (c *client) Signers() ([]ssh.Signer, error) {\n\tkeys, err := c.List()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar result []ssh.Signer\n\tfor _, k := range keys {\n\t\tresult = append(result, &agentKeyringSigner{c, k})\n\t}\n\treturn result, nil\n}\n\ntype agentKeyringSigner struct {\n\tagent *client\n\tpub   ssh.PublicKey\n}\n\nfunc (s *agentKeyringSigner) PublicKey() ssh.PublicKey {\n\treturn s.pub\n}\n\nfunc (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) {\n\t// The agent has its own entropy source, so the rand argument is ignored.\n\treturn s.agent.Sign(s.pub, data)\n}\n\nfunc (s *agentKeyringSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*ssh.Signature, error) {\n\tif algorithm == \"\" || algorithm == underlyingAlgo(s.pub.Type()) {\n\t\treturn s.Sign(rand, data)\n\t}\n\n\tvar flags SignatureFlags\n\tswitch algorithm {\n\tcase ssh.KeyAlgoRSASHA256:\n\t\tflags = SignatureFlagRsaSha256\n\tcase ssh.KeyAlgoRSASHA512:\n\t\tflags = SignatureFlagRsaSha512\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"agent: unsupported algorithm %q\", algorithm)\n\t}\n\n\treturn s.agent.SignWithFlags(s.pub, data, flags)\n}\n\nvar _ ssh.AlgorithmSigner = &agentKeyringSigner{}\n\n// certKeyAlgoNames is a mapping from known certificate algorithm names to the\n// corresponding public key signature algorithm.\n//\n// This map must be kept in sync with the one in certs.go.\nvar certKeyAlgoNames = map[string]string{\n\tssh.CertAlgoRSAv01:         ssh.KeyAlgoRSA,\n\tssh.CertAlgoRSASHA256v01:   ssh.KeyAlgoRSASHA256,\n\tssh.CertAlgoRSASHA512v01:   ssh.KeyAlgoRSASHA512,\n\tssh.InsecureCertAlgoDSAv01: ssh.InsecureKeyAlgoDSA,\n\tssh.CertAlgoECDSA256v01:    ssh.KeyAlgoECDSA256,\n\tssh.CertAlgoECDSA384v01:    ssh.KeyAlgoECDSA384,\n\tssh.CertAlgoECDSA521v01:    ssh.KeyAlgoECDSA521,\n\tssh.CertAlgoSKECDSA256v01:  ssh.KeyAlgoSKECDSA256,\n\tssh.CertAlgoED25519v01:     ssh.KeyAlgoED25519,\n\tssh.CertAlgoSKED25519v01:   ssh.KeyAlgoSKED25519,\n}\n\n// underlyingAlgo returns the signature algorithm associated with algo (which is\n// an advertised or negotiated public key or host key algorithm). These are\n// usually the same, except for certificate algorithms.\nfunc underlyingAlgo(algo string) string {\n\tif a, ok := certKeyAlgoNames[algo]; ok {\n\t\treturn a\n\t}\n\treturn algo\n}\n\n// Calls an extension method. It is up to the agent implementation as to whether or not\n// any particular extension is supported and may always return an error. Because the\n// type of the response is up to the implementation, this returns the bytes of the\n// response and does not attempt any type of unmarshalling.\nfunc (c *client) Extension(extensionType string, contents []byte) ([]byte, error) {\n\treq := ssh.Marshal(extensionAgentMsg{\n\t\tExtensionType: extensionType,\n\t\tContents:      contents,\n\t})\n\tbuf, err := c.callRaw(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(buf) == 0 {\n\t\treturn nil, errors.New(\"agent: failure; empty response\")\n\t}\n\t// [PROTOCOL.agent] section 4.7 indicates that an SSH_AGENT_FAILURE message\n\t// represents an agent that does not support the extension\n\tif buf[0] == agentFailure {\n\t\treturn nil, ErrExtensionUnsupported\n\t}\n\tif buf[0] == agentExtensionFailure {\n\t\treturn nil, errors.New(\"agent: generic extension failure\")\n\t}\n\n\treturn buf, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/agent/forward.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\npackage agent\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// RequestAgentForwarding sets up agent forwarding for the session.\n// ForwardToAgent or ForwardToRemote should be called to route\n// the authentication requests.\nfunc RequestAgentForwarding(session *ssh.Session) error {\n\tok, err := session.SendRequest(\"auth-agent-req@openssh.com\", true, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !ok {\n\t\treturn errors.New(\"forwarding request denied\")\n\t}\n\treturn nil\n}\n\n// ForwardToAgent routes authentication requests to the given keyring.\nfunc ForwardToAgent(client *ssh.Client, keyring Agent) error {\n\tchannels := client.HandleChannelOpen(channelType)\n\tif channels == nil {\n\t\treturn errors.New(\"agent: already have handler for \" + channelType)\n\t}\n\n\tgo func() {\n\t\tfor ch := range channels {\n\t\t\tchannel, reqs, err := ch.Accept()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tgo ssh.DiscardRequests(reqs)\n\t\t\tgo func() {\n\t\t\t\tServeAgent(keyring, channel)\n\t\t\t\tchannel.Close()\n\t\t\t}()\n\t\t}\n\t}()\n\treturn nil\n}\n\nconst channelType = \"auth-agent@openssh.com\"\n\n// ForwardToRemote routes authentication requests to the ssh-agent\n// process serving on the given unix socket.\nfunc ForwardToRemote(client *ssh.Client, addr string) error {\n\tchannels := client.HandleChannelOpen(channelType)\n\tif channels == nil {\n\t\treturn errors.New(\"agent: already have handler for \" + channelType)\n\t}\n\tconn, err := net.Dial(\"unix\", addr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tconn.Close()\n\n\tgo func() {\n\t\tfor ch := range channels {\n\t\t\tchannel, reqs, err := ch.Accept()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tgo ssh.DiscardRequests(reqs)\n\t\t\tgo forwardUnixSocket(channel, addr)\n\t\t}\n\t}()\n\treturn nil\n}\n\nfunc forwardUnixSocket(channel ssh.Channel, addr string) {\n\tconn, err := net.Dial(\"unix\", addr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tvar wg sync.WaitGroup\n\twg.Add(2)\n\tgo func() {\n\t\tio.Copy(conn, channel)\n\t\tconn.(*net.UnixConn).CloseWrite()\n\t\twg.Done()\n\t}()\n\tgo func() {\n\t\tio.Copy(channel, conn)\n\t\tchannel.CloseWrite()\n\t\twg.Done()\n\t}()\n\n\twg.Wait()\n\tconn.Close()\n\tchannel.Close()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/agent/keyring.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\npackage agent\n\nimport (\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"crypto/subtle\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\ntype privKey struct {\n\tsigner  ssh.Signer\n\tcomment string\n\texpire  *time.Time\n}\n\ntype keyring struct {\n\tmu   sync.Mutex\n\tkeys []privKey\n\n\tlocked     bool\n\tpassphrase []byte\n}\n\nvar errLocked = errors.New(\"agent: locked\")\n\n// NewKeyring returns an Agent that holds keys in memory.  It is safe\n// for concurrent use by multiple goroutines.\nfunc NewKeyring() Agent {\n\treturn &keyring{}\n}\n\n// RemoveAll removes all identities.\nfunc (r *keyring) RemoveAll() error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn errLocked\n\t}\n\n\tr.keys = nil\n\treturn nil\n}\n\n// removeLocked does the actual key removal. The caller must already be holding the\n// keyring mutex.\nfunc (r *keyring) removeLocked(want []byte) error {\n\tfound := false\n\tfor i := 0; i < len(r.keys); {\n\t\tif bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) {\n\t\t\tfound = true\n\t\t\tr.keys[i] = r.keys[len(r.keys)-1]\n\t\t\tr.keys = r.keys[:len(r.keys)-1]\n\t\t\tcontinue\n\t\t} else {\n\t\t\ti++\n\t\t}\n\t}\n\n\tif !found {\n\t\treturn errors.New(\"agent: key not found\")\n\t}\n\treturn nil\n}\n\n// Remove removes all identities with the given public key.\nfunc (r *keyring) Remove(key ssh.PublicKey) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn errLocked\n\t}\n\n\treturn r.removeLocked(key.Marshal())\n}\n\n// Lock locks the agent. Sign and Remove will fail, and List will return an empty list.\nfunc (r *keyring) Lock(passphrase []byte) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn errLocked\n\t}\n\n\tr.locked = true\n\tr.passphrase = passphrase\n\treturn nil\n}\n\n// Unlock undoes the effect of Lock\nfunc (r *keyring) Unlock(passphrase []byte) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif !r.locked {\n\t\treturn errors.New(\"agent: not locked\")\n\t}\n\tif 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) {\n\t\treturn fmt.Errorf(\"agent: incorrect passphrase\")\n\t}\n\n\tr.locked = false\n\tr.passphrase = nil\n\treturn nil\n}\n\n// expireKeysLocked removes expired keys from the keyring. If a key was added\n// with a lifetimesecs constraint and seconds >= lifetimesecs seconds have\n// elapsed, it is removed. The caller *must* be holding the keyring mutex.\nfunc (r *keyring) expireKeysLocked() {\n\tfor _, k := range r.keys {\n\t\tif k.expire != nil && time.Now().After(*k.expire) {\n\t\t\tr.removeLocked(k.signer.PublicKey().Marshal())\n\t\t}\n\t}\n}\n\n// List returns the identities known to the agent.\nfunc (r *keyring) List() ([]*Key, error) {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\t// section 2.7: locked agents return empty.\n\t\treturn nil, nil\n\t}\n\n\tr.expireKeysLocked()\n\tvar ids []*Key\n\tfor _, k := range r.keys {\n\t\tpub := k.signer.PublicKey()\n\t\tids = append(ids, &Key{\n\t\t\tFormat:  pub.Type(),\n\t\t\tBlob:    pub.Marshal(),\n\t\t\tComment: k.comment})\n\t}\n\treturn ids, nil\n}\n\n// Insert adds a private key to the keyring. If a certificate\n// is given, that certificate is added as public key. Note that\n// any constraints given are ignored.\nfunc (r *keyring) Add(key AddedKey) error {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn errLocked\n\t}\n\tsigner, err := ssh.NewSignerFromKey(key.PrivateKey)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif cert := key.Certificate; cert != nil {\n\t\tsigner, err = ssh.NewCertSigner(cert, signer)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tp := privKey{\n\t\tsigner:  signer,\n\t\tcomment: key.Comment,\n\t}\n\n\tif key.LifetimeSecs > 0 {\n\t\tt := time.Now().Add(time.Duration(key.LifetimeSecs) * time.Second)\n\t\tp.expire = &t\n\t}\n\n\t// If we already have a Signer with the same public key, replace it with the\n\t// new one.\n\tfor idx, k := range r.keys {\n\t\tif bytes.Equal(k.signer.PublicKey().Marshal(), p.signer.PublicKey().Marshal()) {\n\t\t\tr.keys[idx] = p\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tr.keys = append(r.keys, p)\n\n\treturn nil\n}\n\n// Sign returns a signature for the data.\nfunc (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) {\n\treturn r.SignWithFlags(key, data, 0)\n}\n\nfunc (r *keyring) SignWithFlags(key ssh.PublicKey, data []byte, flags SignatureFlags) (*ssh.Signature, error) {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn nil, errLocked\n\t}\n\n\tr.expireKeysLocked()\n\twanted := key.Marshal()\n\tfor _, k := range r.keys {\n\t\tif bytes.Equal(k.signer.PublicKey().Marshal(), wanted) {\n\t\t\tif flags == 0 {\n\t\t\t\treturn k.signer.Sign(rand.Reader, data)\n\t\t\t} else {\n\t\t\t\tif algorithmSigner, ok := k.signer.(ssh.AlgorithmSigner); !ok {\n\t\t\t\t\treturn nil, fmt.Errorf(\"agent: signature does not support non-default signature algorithm: %T\", k.signer)\n\t\t\t\t} else {\n\t\t\t\t\tvar algorithm string\n\t\t\t\t\tswitch flags {\n\t\t\t\t\tcase SignatureFlagRsaSha256:\n\t\t\t\t\t\talgorithm = ssh.KeyAlgoRSASHA256\n\t\t\t\t\tcase SignatureFlagRsaSha512:\n\t\t\t\t\t\talgorithm = ssh.KeyAlgoRSASHA512\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"agent: unsupported signature flags: %d\", flags)\n\t\t\t\t\t}\n\t\t\t\t\treturn algorithmSigner.SignWithAlgorithm(rand.Reader, data, algorithm)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, errors.New(\"not found\")\n}\n\n// Signers returns signers for all the known keys.\nfunc (r *keyring) Signers() ([]ssh.Signer, error) {\n\tr.mu.Lock()\n\tdefer r.mu.Unlock()\n\tif r.locked {\n\t\treturn nil, errLocked\n\t}\n\n\tr.expireKeysLocked()\n\ts := make([]ssh.Signer, 0, len(r.keys))\n\tfor _, k := range r.keys {\n\t\ts = append(s, k.signer)\n\t}\n\treturn s, nil\n}\n\n// The keyring does not support any extensions\nfunc (r *keyring) Extension(extensionType string, contents []byte) ([]byte, error) {\n\treturn nil, ErrExtensionUnsupported\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/agent/server.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 agent\n\nimport (\n\t\"crypto/dsa\"\n\t\"crypto/ecdsa\"\n\t\"crypto/ed25519\"\n\t\"crypto/elliptic\"\n\t\"crypto/rsa\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math/big\"\n\n\t\"golang.org/x/crypto/ssh\"\n)\n\n// server wraps an Agent and uses it to implement the agent side of\n// the SSH-agent, wire protocol.\ntype server struct {\n\tagent Agent\n}\n\nfunc (s *server) processRequestBytes(reqData []byte) []byte {\n\trep, err := s.processRequest(reqData)\n\tif err != nil {\n\t\tif err != errLocked {\n\t\t\t// TODO(hanwen): provide better logging interface?\n\t\t\tlog.Printf(\"agent %d: %v\", reqData[0], err)\n\t\t}\n\t\treturn []byte{agentFailure}\n\t}\n\n\tif err == nil && rep == nil {\n\t\treturn []byte{agentSuccess}\n\t}\n\n\treturn ssh.Marshal(rep)\n}\n\nfunc marshalKey(k *Key) []byte {\n\tvar record struct {\n\t\tBlob    []byte\n\t\tComment string\n\t}\n\trecord.Blob = k.Marshal()\n\trecord.Comment = k.Comment\n\n\treturn ssh.Marshal(&record)\n}\n\n// See [PROTOCOL.agent], section 2.5.1.\nconst agentV1IdentitiesAnswer = 2\n\ntype agentV1IdentityMsg struct {\n\tNumkeys uint32 `sshtype:\"2\"`\n}\n\ntype agentRemoveIdentityMsg struct {\n\tKeyBlob []byte `sshtype:\"18\"`\n}\n\ntype agentLockMsg struct {\n\tPassphrase []byte `sshtype:\"22\"`\n}\n\ntype agentUnlockMsg struct {\n\tPassphrase []byte `sshtype:\"23\"`\n}\n\nfunc (s *server) processRequest(data []byte) (interface{}, error) {\n\tswitch data[0] {\n\tcase agentRequestV1Identities:\n\t\treturn &agentV1IdentityMsg{0}, nil\n\n\tcase agentRemoveAllV1Identities:\n\t\treturn nil, nil\n\n\tcase agentRemoveIdentity:\n\t\tvar req agentRemoveIdentityMsg\n\t\tif err := ssh.Unmarshal(data, &req); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar wk wireKey\n\t\tif err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob})\n\n\tcase agentRemoveAllIdentities:\n\t\treturn nil, s.agent.RemoveAll()\n\n\tcase agentLock:\n\t\tvar req agentLockMsg\n\t\tif err := ssh.Unmarshal(data, &req); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn nil, s.agent.Lock(req.Passphrase)\n\n\tcase agentUnlock:\n\t\tvar req agentUnlockMsg\n\t\tif err := ssh.Unmarshal(data, &req); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, s.agent.Unlock(req.Passphrase)\n\n\tcase agentSignRequest:\n\t\tvar req signRequestAgentMsg\n\t\tif err := ssh.Unmarshal(data, &req); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar wk wireKey\n\t\tif err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tk := &Key{\n\t\t\tFormat: wk.Format,\n\t\t\tBlob:   req.KeyBlob,\n\t\t}\n\n\t\tvar sig *ssh.Signature\n\t\tvar err error\n\t\tif extendedAgent, ok := s.agent.(ExtendedAgent); ok {\n\t\t\tsig, err = extendedAgent.SignWithFlags(k, req.Data, SignatureFlags(req.Flags))\n\t\t} else {\n\t\t\tsig, err = s.agent.Sign(k, req.Data)\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil\n\n\tcase agentRequestIdentities:\n\t\tkeys, err := s.agent.List()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\trep := identitiesAnswerAgentMsg{\n\t\t\tNumKeys: uint32(len(keys)),\n\t\t}\n\t\tfor _, k := range keys {\n\t\t\trep.Keys = append(rep.Keys, marshalKey(k)...)\n\t\t}\n\t\treturn rep, nil\n\n\tcase agentAddIDConstrained, agentAddIdentity:\n\t\treturn nil, s.insertIdentity(data)\n\n\tcase agentExtension:\n\t\t// Return a stub object where the whole contents of the response gets marshaled.\n\t\tvar responseStub struct {\n\t\t\tRest []byte `ssh:\"rest\"`\n\t\t}\n\n\t\tif extendedAgent, ok := s.agent.(ExtendedAgent); !ok {\n\t\t\t// If this agent doesn't implement extensions, [PROTOCOL.agent] section 4.7\n\t\t\t// requires that we return a standard SSH_AGENT_FAILURE message.\n\t\t\tresponseStub.Rest = []byte{agentFailure}\n\t\t} else {\n\t\t\tvar req extensionAgentMsg\n\t\t\tif err := ssh.Unmarshal(data, &req); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tres, err := extendedAgent.Extension(req.ExtensionType, req.Contents)\n\t\t\tif err != nil {\n\t\t\t\t// If agent extensions are unsupported, return a standard SSH_AGENT_FAILURE\n\t\t\t\t// message as required by [PROTOCOL.agent] section 4.7.\n\t\t\t\tif err == ErrExtensionUnsupported {\n\t\t\t\t\tresponseStub.Rest = []byte{agentFailure}\n\t\t\t\t} else {\n\t\t\t\t\t// As the result of any other error processing an extension request,\n\t\t\t\t\t// [PROTOCOL.agent] section 4.7 requires that we return a\n\t\t\t\t\t// SSH_AGENT_EXTENSION_FAILURE code.\n\t\t\t\t\tresponseStub.Rest = []byte{agentExtensionFailure}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif len(res) == 0 {\n\t\t\t\t\treturn nil, nil\n\t\t\t\t}\n\t\t\t\tresponseStub.Rest = res\n\t\t\t}\n\t\t}\n\n\t\treturn responseStub, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"unknown opcode %d\", data[0])\n}\n\nfunc parseConstraints(constraints []byte) (lifetimeSecs uint32, confirmBeforeUse bool, extensions []ConstraintExtension, err error) {\n\tfor len(constraints) != 0 {\n\t\tswitch constraints[0] {\n\t\tcase agentConstrainLifetime:\n\t\t\tif len(constraints) < 5 {\n\t\t\t\treturn 0, false, nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tlifetimeSecs = binary.BigEndian.Uint32(constraints[1:5])\n\t\t\tconstraints = constraints[5:]\n\t\tcase agentConstrainConfirm:\n\t\t\tconfirmBeforeUse = true\n\t\t\tconstraints = constraints[1:]\n\t\tcase agentConstrainExtension, agentConstrainExtensionV00:\n\t\t\tvar msg constrainExtensionAgentMsg\n\t\t\tif err = ssh.Unmarshal(constraints, &msg); err != nil {\n\t\t\t\treturn 0, false, nil, err\n\t\t\t}\n\t\t\textensions = append(extensions, ConstraintExtension{\n\t\t\t\tExtensionName:    msg.ExtensionName,\n\t\t\t\tExtensionDetails: msg.ExtensionDetails,\n\t\t\t})\n\t\t\tconstraints = msg.Rest\n\t\tdefault:\n\t\t\treturn 0, false, nil, fmt.Errorf(\"unknown constraint type: %d\", constraints[0])\n\t\t}\n\t}\n\treturn\n}\n\nfunc setConstraints(key *AddedKey, constraintBytes []byte) error {\n\tlifetimeSecs, confirmBeforeUse, constraintExtensions, err := parseConstraints(constraintBytes)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tkey.LifetimeSecs = lifetimeSecs\n\tkey.ConfirmBeforeUse = confirmBeforeUse\n\tkey.ConstraintExtensions = constraintExtensions\n\treturn nil\n}\n\nfunc parseRSAKey(req []byte) (*AddedKey, error) {\n\tvar k rsaKeyMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\tif k.E.BitLen() > 30 {\n\t\treturn nil, errors.New(\"agent: RSA public exponent too large\")\n\t}\n\tpriv := &rsa.PrivateKey{\n\t\tPublicKey: rsa.PublicKey{\n\t\t\tE: int(k.E.Int64()),\n\t\t\tN: k.N,\n\t\t},\n\t\tD:      k.D,\n\t\tPrimes: []*big.Int{k.P, k.Q},\n\t}\n\tpriv.Precompute()\n\n\taddedKey := &AddedKey{PrivateKey: priv, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseEd25519Key(req []byte) (*AddedKey, error) {\n\tvar k ed25519KeyMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\tpriv := ed25519.PrivateKey(k.Priv)\n\n\taddedKey := &AddedKey{PrivateKey: &priv, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseDSAKey(req []byte) (*AddedKey, error) {\n\tvar k dsaKeyMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\tpriv := &dsa.PrivateKey{\n\t\tPublicKey: dsa.PublicKey{\n\t\t\tParameters: dsa.Parameters{\n\t\t\t\tP: k.P,\n\t\t\t\tQ: k.Q,\n\t\t\t\tG: k.G,\n\t\t\t},\n\t\t\tY: k.Y,\n\t\t},\n\t\tX: k.X,\n\t}\n\n\taddedKey := &AddedKey{PrivateKey: priv, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc unmarshalECDSA(curveName string, keyBytes []byte, privScalar *big.Int) (priv *ecdsa.PrivateKey, err error) {\n\tpriv = &ecdsa.PrivateKey{\n\t\tD: privScalar,\n\t}\n\n\tswitch curveName {\n\tcase \"nistp256\":\n\t\tpriv.Curve = elliptic.P256()\n\tcase \"nistp384\":\n\t\tpriv.Curve = elliptic.P384()\n\tcase \"nistp521\":\n\t\tpriv.Curve = elliptic.P521()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"agent: unknown curve %q\", curveName)\n\t}\n\n\tpriv.X, priv.Y = elliptic.Unmarshal(priv.Curve, keyBytes)\n\tif priv.X == nil || priv.Y == nil {\n\t\treturn nil, errors.New(\"agent: point not on curve\")\n\t}\n\n\treturn priv, nil\n}\n\nfunc parseEd25519Cert(req []byte) (*AddedKey, error) {\n\tvar k ed25519CertMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\tpubKey, err := ssh.ParsePublicKey(k.CertBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpriv := ed25519.PrivateKey(k.Priv)\n\tcert, ok := pubKey.(*ssh.Certificate)\n\tif !ok {\n\t\treturn nil, errors.New(\"agent: bad ED25519 certificate\")\n\t}\n\n\taddedKey := &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseECDSAKey(req []byte) (*AddedKey, error) {\n\tvar k ecdsaKeyMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpriv, err := unmarshalECDSA(k.Curve, k.KeyBytes, k.D)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddedKey := &AddedKey{PrivateKey: priv, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseRSACert(req []byte) (*AddedKey, error) {\n\tvar k rsaCertMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpubKey, err := ssh.ParsePublicKey(k.CertBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcert, ok := pubKey.(*ssh.Certificate)\n\tif !ok {\n\t\treturn nil, errors.New(\"agent: bad RSA certificate\")\n\t}\n\n\t// An RSA publickey as marshaled by rsaPublicKey.Marshal() in keys.go\n\tvar rsaPub struct {\n\t\tName string\n\t\tE    *big.Int\n\t\tN    *big.Int\n\t}\n\tif err := ssh.Unmarshal(cert.Key.Marshal(), &rsaPub); err != nil {\n\t\treturn nil, fmt.Errorf(\"agent: Unmarshal failed to parse public key: %v\", err)\n\t}\n\n\tif rsaPub.E.BitLen() > 30 {\n\t\treturn nil, errors.New(\"agent: RSA public exponent too large\")\n\t}\n\n\tpriv := rsa.PrivateKey{\n\t\tPublicKey: rsa.PublicKey{\n\t\t\tE: int(rsaPub.E.Int64()),\n\t\t\tN: rsaPub.N,\n\t\t},\n\t\tD:      k.D,\n\t\tPrimes: []*big.Int{k.Q, k.P},\n\t}\n\tpriv.Precompute()\n\n\taddedKey := &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseDSACert(req []byte) (*AddedKey, error) {\n\tvar k dsaCertMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\tpubKey, err := ssh.ParsePublicKey(k.CertBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcert, ok := pubKey.(*ssh.Certificate)\n\tif !ok {\n\t\treturn nil, errors.New(\"agent: bad DSA certificate\")\n\t}\n\n\t// A DSA publickey as marshaled by dsaPublicKey.Marshal() in keys.go\n\tvar w struct {\n\t\tName       string\n\t\tP, Q, G, Y *big.Int\n\t}\n\tif err := ssh.Unmarshal(cert.Key.Marshal(), &w); err != nil {\n\t\treturn nil, fmt.Errorf(\"agent: Unmarshal failed to parse public key: %v\", err)\n\t}\n\n\tpriv := &dsa.PrivateKey{\n\t\tPublicKey: dsa.PublicKey{\n\t\t\tParameters: dsa.Parameters{\n\t\t\t\tP: w.P,\n\t\t\t\tQ: w.Q,\n\t\t\t\tG: w.G,\n\t\t\t},\n\t\t\tY: w.Y,\n\t\t},\n\t\tX: k.X,\n\t}\n\n\taddedKey := &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc parseECDSACert(req []byte) (*AddedKey, error) {\n\tvar k ecdsaCertMsg\n\tif err := ssh.Unmarshal(req, &k); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpubKey, err := ssh.ParsePublicKey(k.CertBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcert, ok := pubKey.(*ssh.Certificate)\n\tif !ok {\n\t\treturn nil, errors.New(\"agent: bad ECDSA certificate\")\n\t}\n\n\t// An ECDSA publickey as marshaled by ecdsaPublicKey.Marshal() in keys.go\n\tvar ecdsaPub struct {\n\t\tName string\n\t\tID   string\n\t\tKey  []byte\n\t}\n\tif err := ssh.Unmarshal(cert.Key.Marshal(), &ecdsaPub); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpriv, err := unmarshalECDSA(ecdsaPub.ID, ecdsaPub.Key, k.D)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddedKey := &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}\n\tif err := setConstraints(addedKey, k.Constraints); err != nil {\n\t\treturn nil, err\n\t}\n\treturn addedKey, nil\n}\n\nfunc (s *server) insertIdentity(req []byte) error {\n\tvar record struct {\n\t\tType string `sshtype:\"17|25\"`\n\t\tRest []byte `ssh:\"rest\"`\n\t}\n\n\tif err := ssh.Unmarshal(req, &record); err != nil {\n\t\treturn err\n\t}\n\n\tvar addedKey *AddedKey\n\tvar err error\n\n\tswitch record.Type {\n\tcase ssh.KeyAlgoRSA:\n\t\taddedKey, err = parseRSAKey(req)\n\tcase ssh.InsecureKeyAlgoDSA:\n\t\taddedKey, err = parseDSAKey(req)\n\tcase ssh.KeyAlgoECDSA256, ssh.KeyAlgoECDSA384, ssh.KeyAlgoECDSA521:\n\t\taddedKey, err = parseECDSAKey(req)\n\tcase ssh.KeyAlgoED25519:\n\t\taddedKey, err = parseEd25519Key(req)\n\tcase ssh.CertAlgoRSAv01:\n\t\taddedKey, err = parseRSACert(req)\n\tcase ssh.InsecureCertAlgoDSAv01:\n\t\taddedKey, err = parseDSACert(req)\n\tcase ssh.CertAlgoECDSA256v01, ssh.CertAlgoECDSA384v01, ssh.CertAlgoECDSA521v01:\n\t\taddedKey, err = parseECDSACert(req)\n\tcase ssh.CertAlgoED25519v01:\n\t\taddedKey, err = parseEd25519Cert(req)\n\tdefault:\n\t\treturn fmt.Errorf(\"agent: not implemented: %q\", record.Type)\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.agent.Add(*addedKey)\n}\n\n// ServeAgent serves the agent protocol on the given connection. It\n// returns when an I/O error occurs.\nfunc ServeAgent(agent Agent, c io.ReadWriter) error {\n\ts := &server{agent}\n\n\tvar length [4]byte\n\tfor {\n\t\tif _, err := io.ReadFull(c, length[:]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl := binary.BigEndian.Uint32(length[:])\n\t\tif l == 0 {\n\t\t\treturn fmt.Errorf(\"agent: request size is 0\")\n\t\t}\n\t\tif l > maxAgentResponseBytes {\n\t\t\t// We also cap requests.\n\t\t\treturn fmt.Errorf(\"agent: request too large: %d\", l)\n\t\t}\n\n\t\treq := make([]byte, l)\n\t\tif _, err := io.ReadFull(c, req); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trepData := s.processRequestBytes(req)\n\t\tif len(repData) > maxAgentResponseBytes {\n\t\t\treturn fmt.Errorf(\"agent: reply too large: %d bytes\", len(repData))\n\t\t}\n\n\t\tbinary.BigEndian.PutUint32(length[:], uint32(len(repData)))\n\t\tif _, err := c.Write(length[:]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err := c.Write(repData); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/buffer.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 ssh\n\nimport (\n\t\"io\"\n\t\"sync\"\n)\n\n// buffer provides a linked list buffer for data exchange\n// between producer and consumer. Theoretically the buffer is\n// of unlimited capacity as it does no allocation of its own.\ntype buffer struct {\n\t// protects concurrent access to head, tail and closed\n\t*sync.Cond\n\n\thead *element // the buffer that will be read first\n\ttail *element // the buffer that will be read last\n\n\tclosed bool\n}\n\n// An element represents a single link in a linked list.\ntype element struct {\n\tbuf  []byte\n\tnext *element\n}\n\n// newBuffer returns an empty buffer that is not closed.\nfunc newBuffer() *buffer {\n\te := new(element)\n\tb := &buffer{\n\t\tCond: newCond(),\n\t\thead: e,\n\t\ttail: e,\n\t}\n\treturn b\n}\n\n// write makes buf available for Read to receive.\n// buf must not be modified after the call to write.\nfunc (b *buffer) write(buf []byte) {\n\tb.Cond.L.Lock()\n\te := &element{buf: buf}\n\tb.tail.next = e\n\tb.tail = e\n\tb.Cond.Signal()\n\tb.Cond.L.Unlock()\n}\n\n// eof closes the buffer. Reads from the buffer once all\n// the data has been consumed will receive io.EOF.\nfunc (b *buffer) eof() {\n\tb.Cond.L.Lock()\n\tb.closed = true\n\tb.Cond.Signal()\n\tb.Cond.L.Unlock()\n}\n\n// Read reads data from the internal buffer in buf.  Reads will block\n// if no data is available, or until the buffer is closed.\nfunc (b *buffer) Read(buf []byte) (n int, err error) {\n\tb.Cond.L.Lock()\n\tdefer b.Cond.L.Unlock()\n\n\tfor len(buf) > 0 {\n\t\t// if there is data in b.head, copy it\n\t\tif len(b.head.buf) > 0 {\n\t\t\tr := copy(buf, b.head.buf)\n\t\t\tbuf, b.head.buf = buf[r:], b.head.buf[r:]\n\t\t\tn += r\n\t\t\tcontinue\n\t\t}\n\t\t// if there is a next buffer, make it the head\n\t\tif len(b.head.buf) == 0 && b.head != b.tail {\n\t\t\tb.head = b.head.next\n\t\t\tcontinue\n\t\t}\n\n\t\t// if at least one byte has been copied, return\n\t\tif n > 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// if nothing was read, and there is nothing outstanding\n\t\t// check to see if the buffer is closed.\n\t\tif b.closed {\n\t\t\terr = io.EOF\n\t\t\tbreak\n\t\t}\n\t\t// out of buffers, wait for producer\n\t\tb.Cond.Wait()\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/certs.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"sort\"\n\t\"time\"\n)\n\n// Certificate algorithm names from [PROTOCOL.certkeys]. These values can appear\n// in Certificate.Type, PublicKey.Type, and ClientConfig.HostKeyAlgorithms.\n// Unlike key algorithm names, these are not passed to AlgorithmSigner nor\n// returned by MultiAlgorithmSigner and don't appear in the Signature.Format\n// field.\nconst (\n\tCertAlgoRSAv01 = \"ssh-rsa-cert-v01@openssh.com\"\n\t// Deprecated: DSA is only supported at insecure key sizes, and was removed\n\t// from major implementations.\n\tCertAlgoDSAv01 = InsecureCertAlgoDSAv01\n\t// Deprecated: DSA is only supported at insecure key sizes, and was removed\n\t// from major implementations.\n\tInsecureCertAlgoDSAv01 = \"ssh-dss-cert-v01@openssh.com\"\n\tCertAlgoECDSA256v01    = \"ecdsa-sha2-nistp256-cert-v01@openssh.com\"\n\tCertAlgoECDSA384v01    = \"ecdsa-sha2-nistp384-cert-v01@openssh.com\"\n\tCertAlgoECDSA521v01    = \"ecdsa-sha2-nistp521-cert-v01@openssh.com\"\n\tCertAlgoSKECDSA256v01  = \"sk-ecdsa-sha2-nistp256-cert-v01@openssh.com\"\n\tCertAlgoED25519v01     = \"ssh-ed25519-cert-v01@openssh.com\"\n\tCertAlgoSKED25519v01   = \"sk-ssh-ed25519-cert-v01@openssh.com\"\n\n\t// CertAlgoRSASHA256v01 and CertAlgoRSASHA512v01 can't appear as a\n\t// Certificate.Type (or PublicKey.Type), but only in\n\t// ClientConfig.HostKeyAlgorithms.\n\tCertAlgoRSASHA256v01 = \"rsa-sha2-256-cert-v01@openssh.com\"\n\tCertAlgoRSASHA512v01 = \"rsa-sha2-512-cert-v01@openssh.com\"\n)\n\nconst (\n\t// Deprecated: use CertAlgoRSAv01.\n\tCertSigAlgoRSAv01 = CertAlgoRSAv01\n\t// Deprecated: use CertAlgoRSASHA256v01.\n\tCertSigAlgoRSASHA2256v01 = CertAlgoRSASHA256v01\n\t// Deprecated: use CertAlgoRSASHA512v01.\n\tCertSigAlgoRSASHA2512v01 = CertAlgoRSASHA512v01\n)\n\n// Certificate types distinguish between host and user\n// certificates. The values can be set in the CertType field of\n// Certificate.\nconst (\n\tUserCert = 1\n\tHostCert = 2\n)\n\n// Signature represents a cryptographic signature.\ntype Signature struct {\n\tFormat string\n\tBlob   []byte\n\tRest   []byte `ssh:\"rest\"`\n}\n\n// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that\n// a certificate does not expire.\nconst CertTimeInfinity = 1<<64 - 1\n\n// An Certificate represents an OpenSSH certificate as defined in\n// [PROTOCOL.certkeys]?rev=1.8. The Certificate type implements the\n// PublicKey interface, so it can be unmarshaled using\n// ParsePublicKey.\ntype Certificate struct {\n\tNonce           []byte\n\tKey             PublicKey\n\tSerial          uint64\n\tCertType        uint32\n\tKeyId           string\n\tValidPrincipals []string\n\tValidAfter      uint64\n\tValidBefore     uint64\n\tPermissions\n\tReserved     []byte\n\tSignatureKey PublicKey\n\tSignature    *Signature\n}\n\n// genericCertData holds the key-independent part of the certificate data.\n// Overall, certificates contain an nonce, public key fields and\n// key-independent fields.\ntype genericCertData struct {\n\tSerial          uint64\n\tCertType        uint32\n\tKeyId           string\n\tValidPrincipals []byte\n\tValidAfter      uint64\n\tValidBefore     uint64\n\tCriticalOptions []byte\n\tExtensions      []byte\n\tReserved        []byte\n\tSignatureKey    []byte\n\tSignature       []byte\n}\n\nfunc marshalStringList(namelist []string) []byte {\n\tvar to []byte\n\tfor _, name := range namelist {\n\t\ts := struct{ N string }{name}\n\t\tto = append(to, Marshal(&s)...)\n\t}\n\treturn to\n}\n\ntype optionsTuple struct {\n\tKey   string\n\tValue []byte\n}\n\ntype optionsTupleValue struct {\n\tValue string\n}\n\n// serialize a map of critical options or extensions\n// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation,\n// we need two length prefixes for a non-empty string value\nfunc marshalTuples(tups map[string]string) []byte {\n\tkeys := make([]string, 0, len(tups))\n\tfor key := range tups {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\n\tvar ret []byte\n\tfor _, key := range keys {\n\t\ts := optionsTuple{Key: key}\n\t\tif value := tups[key]; len(value) > 0 {\n\t\t\ts.Value = Marshal(&optionsTupleValue{value})\n\t\t}\n\t\tret = append(ret, Marshal(&s)...)\n\t}\n\treturn ret\n}\n\n// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation,\n// we need two length prefixes for a non-empty option value\nfunc parseTuples(in []byte) (map[string]string, error) {\n\ttups := map[string]string{}\n\tvar lastKey string\n\tvar haveLastKey bool\n\n\tfor len(in) > 0 {\n\t\tvar key, val, extra []byte\n\t\tvar ok bool\n\n\t\tif key, in, ok = parseString(in); !ok {\n\t\t\treturn nil, errShortRead\n\t\t}\n\t\tkeyStr := string(key)\n\t\t// according to [PROTOCOL.certkeys], the names must be in\n\t\t// lexical order.\n\t\tif haveLastKey && keyStr <= lastKey {\n\t\t\treturn nil, fmt.Errorf(\"ssh: certificate options are not in lexical order\")\n\t\t}\n\t\tlastKey, haveLastKey = keyStr, true\n\t\t// the next field is a data field, which if non-empty has a string embedded\n\t\tif val, in, ok = parseString(in); !ok {\n\t\t\treturn nil, errShortRead\n\t\t}\n\t\tif len(val) > 0 {\n\t\t\tval, extra, ok = parseString(val)\n\t\t\tif !ok {\n\t\t\t\treturn nil, errShortRead\n\t\t\t}\n\t\t\tif len(extra) > 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"ssh: unexpected trailing data after certificate option value\")\n\t\t\t}\n\t\t\ttups[keyStr] = string(val)\n\t\t} else {\n\t\t\ttups[keyStr] = \"\"\n\t\t}\n\t}\n\treturn tups, nil\n}\n\nfunc parseCert(in []byte, privAlgo string) (*Certificate, error) {\n\tnonce, rest, ok := parseString(in)\n\tif !ok {\n\t\treturn nil, errShortRead\n\t}\n\n\tkey, rest, err := parsePubKey(rest, privAlgo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar g genericCertData\n\tif err := Unmarshal(rest, &g); err != nil {\n\t\treturn nil, err\n\t}\n\n\tc := &Certificate{\n\t\tNonce:       nonce,\n\t\tKey:         key,\n\t\tSerial:      g.Serial,\n\t\tCertType:    g.CertType,\n\t\tKeyId:       g.KeyId,\n\t\tValidAfter:  g.ValidAfter,\n\t\tValidBefore: g.ValidBefore,\n\t}\n\n\tfor principals := g.ValidPrincipals; len(principals) > 0; {\n\t\tprincipal, rest, ok := parseString(principals)\n\t\tif !ok {\n\t\t\treturn nil, errShortRead\n\t\t}\n\t\tc.ValidPrincipals = append(c.ValidPrincipals, string(principal))\n\t\tprincipals = rest\n\t}\n\n\tc.CriticalOptions, err = parseTuples(g.CriticalOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.Extensions, err = parseTuples(g.Extensions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.Reserved = g.Reserved\n\tk, err := ParsePublicKey(g.SignatureKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// The Type() function is intended to return only certificate key types, but\n\t// we use certKeyAlgoNames anyway for safety, to match [Certificate.Type].\n\tif _, ok := certKeyAlgoNames[k.Type()]; ok {\n\t\treturn nil, fmt.Errorf(\"ssh: the signature key type %q is invalid for certificates\", k.Type())\n\t}\n\tc.SignatureKey = k\n\tc.Signature, rest, ok = parseSignatureBody(g.Signature)\n\tif !ok || len(rest) > 0 {\n\t\treturn nil, errors.New(\"ssh: signature parse error\")\n\t}\n\n\treturn c, nil\n}\n\ntype openSSHCertSigner struct {\n\tpub    *Certificate\n\tsigner Signer\n}\n\ntype algorithmOpenSSHCertSigner struct {\n\t*openSSHCertSigner\n\talgorithmSigner AlgorithmSigner\n}\n\n// NewCertSigner returns a Signer that signs with the given Certificate, whose\n// private key is held by signer. It returns an error if the public key in cert\n// doesn't match the key used by signer.\nfunc NewCertSigner(cert *Certificate, signer Signer) (Signer, error) {\n\tif !bytes.Equal(cert.Key.Marshal(), signer.PublicKey().Marshal()) {\n\t\treturn nil, errors.New(\"ssh: signer and cert have different public key\")\n\t}\n\n\tswitch s := signer.(type) {\n\tcase MultiAlgorithmSigner:\n\t\treturn &multiAlgorithmSigner{\n\t\t\tAlgorithmSigner: &algorithmOpenSSHCertSigner{\n\t\t\t\t&openSSHCertSigner{cert, signer}, s},\n\t\t\tsupportedAlgorithms: s.Algorithms(),\n\t\t}, nil\n\tcase AlgorithmSigner:\n\t\treturn &algorithmOpenSSHCertSigner{\n\t\t\t&openSSHCertSigner{cert, signer}, s}, nil\n\tdefault:\n\t\treturn &openSSHCertSigner{cert, signer}, nil\n\t}\n}\n\nfunc (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) {\n\treturn s.signer.Sign(rand, data)\n}\n\nfunc (s *openSSHCertSigner) PublicKey() PublicKey {\n\treturn s.pub\n}\n\nfunc (s *algorithmOpenSSHCertSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error) {\n\treturn s.algorithmSigner.SignWithAlgorithm(rand, data, algorithm)\n}\n\nconst sourceAddressCriticalOption = \"source-address\"\n\n// CertChecker does the work of verifying a certificate. Its methods\n// can be plugged into ClientConfig.HostKeyCallback and\n// ServerConfig.PublicKeyCallback. For the CertChecker to work,\n// minimally, the IsAuthority callback should be set.\ntype CertChecker struct {\n\t// SupportedCriticalOptions lists the CriticalOptions that the\n\t// server application layer understands. These are only used\n\t// for user certificates.\n\tSupportedCriticalOptions []string\n\n\t// IsUserAuthority should return true if the key is recognized as an\n\t// authority for user certificate. This must be set if this CertChecker\n\t// will be checking user certificates.\n\tIsUserAuthority func(auth PublicKey) bool\n\n\t// IsHostAuthority should report whether the key is recognized as\n\t// an authority for this host. This must be set if this CertChecker\n\t// will be checking host certificates.\n\tIsHostAuthority func(auth PublicKey, address string) bool\n\n\t// Clock is used for verifying time stamps. If nil, time.Now\n\t// is used.\n\tClock func() time.Time\n\n\t// UserKeyFallback is called when CertChecker.Authenticate encounters a\n\t// public key that is not a certificate. It must implement validation\n\t// of user keys or else, if nil, all such keys are rejected.\n\tUserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error)\n\n\t// HostKeyFallback is called when CertChecker.CheckHostKey encounters a\n\t// public key that is not a certificate. It must implement host key\n\t// validation or else, if nil, all such keys are rejected.\n\tHostKeyFallback HostKeyCallback\n\n\t// IsRevoked is called for each certificate so that revocation checking\n\t// can be implemented. It should return true if the given certificate\n\t// is revoked and false otherwise. If nil, no certificates are\n\t// considered to have been revoked.\n\tIsRevoked func(cert *Certificate) bool\n}\n\n// CheckHostKey checks a host key certificate. This method can be\n// plugged into ClientConfig.HostKeyCallback.\nfunc (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error {\n\tcert, ok := key.(*Certificate)\n\tif !ok {\n\t\tif c.HostKeyFallback != nil {\n\t\t\treturn c.HostKeyFallback(addr, remote, key)\n\t\t}\n\t\treturn errors.New(\"ssh: non-certificate host key\")\n\t}\n\tif cert.CertType != HostCert {\n\t\treturn fmt.Errorf(\"ssh: certificate presented as a host key has type %d\", cert.CertType)\n\t}\n\tif !c.IsHostAuthority(cert.SignatureKey, addr) {\n\t\treturn fmt.Errorf(\"ssh: no authorities for hostname: %v\", addr)\n\t}\n\n\thostname, _, err := net.SplitHostPort(addr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Pass hostname only as principal for host certificates (consistent with OpenSSH)\n\treturn c.CheckCert(hostname, cert)\n}\n\n// Authenticate checks a user certificate. Authenticate can be used as\n// a value for ServerConfig.PublicKeyCallback.\nfunc (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) {\n\tcert, ok := pubKey.(*Certificate)\n\tif !ok {\n\t\tif c.UserKeyFallback != nil {\n\t\t\treturn c.UserKeyFallback(conn, pubKey)\n\t\t}\n\t\treturn nil, errors.New(\"ssh: normal key pairs not accepted\")\n\t}\n\n\tif cert.CertType != UserCert {\n\t\treturn nil, fmt.Errorf(\"ssh: cert has type %d\", cert.CertType)\n\t}\n\tif !c.IsUserAuthority(cert.SignatureKey) {\n\t\treturn nil, fmt.Errorf(\"ssh: certificate signed by unrecognized authority\")\n\t}\n\n\tif err := c.CheckCert(conn.User(), cert); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &cert.Permissions, nil\n}\n\n// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and\n// the signature of the certificate.\nfunc (c *CertChecker) CheckCert(principal string, cert *Certificate) error {\n\tif c.IsRevoked != nil && c.IsRevoked(cert) {\n\t\treturn fmt.Errorf(\"ssh: certificate serial %d revoked\", cert.Serial)\n\t}\n\n\tfor opt := range cert.CriticalOptions {\n\t\t// sourceAddressCriticalOption will be enforced by\n\t\t// serverAuthenticate\n\t\tif opt == sourceAddressCriticalOption {\n\t\t\tcontinue\n\t\t}\n\n\t\tfound := false\n\t\tfor _, supp := range c.SupportedCriticalOptions {\n\t\t\tif supp == opt {\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\treturn fmt.Errorf(\"ssh: unsupported critical option %q in certificate\", opt)\n\t\t}\n\t}\n\n\tif len(cert.ValidPrincipals) > 0 {\n\t\t// By default, certs are valid for all users/hosts.\n\t\tfound := false\n\t\tfor _, p := range cert.ValidPrincipals {\n\t\t\tif p == principal {\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\treturn fmt.Errorf(\"ssh: principal %q not in the set of valid principals for given certificate: %q\", principal, cert.ValidPrincipals)\n\t\t}\n\t}\n\n\tclock := c.Clock\n\tif clock == nil {\n\t\tclock = time.Now\n\t}\n\n\tunixNow := clock().Unix()\n\tif after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) {\n\t\treturn fmt.Errorf(\"ssh: cert is not yet valid\")\n\t}\n\tif before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) {\n\t\treturn fmt.Errorf(\"ssh: cert has expired\")\n\t}\n\tif err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil {\n\t\treturn fmt.Errorf(\"ssh: certificate signature does not verify\")\n\t}\n\n\treturn nil\n}\n\n// SignCert signs the certificate with an authority, setting the Nonce,\n// SignatureKey, and Signature fields. If the authority implements the\n// MultiAlgorithmSigner interface the first algorithm in the list is used. This\n// is useful if you want to sign with a specific algorithm. As specified in\n// [SSH-CERTS], Section 2.1.1, authority can't be a [Certificate].\nfunc (c *Certificate) SignCert(rand io.Reader, authority Signer) error {\n\tc.Nonce = make([]byte, 32)\n\tif _, err := io.ReadFull(rand, c.Nonce); err != nil {\n\t\treturn err\n\t}\n\t// The Type() function is intended to return only certificate key types, but\n\t// we use certKeyAlgoNames anyway for safety, to match [Certificate.Type].\n\tif _, ok := certKeyAlgoNames[authority.PublicKey().Type()]; ok {\n\t\treturn fmt.Errorf(\"ssh: certificates cannot be used as authority (public key type %q)\",\n\t\t\tauthority.PublicKey().Type())\n\t}\n\tc.SignatureKey = authority.PublicKey()\n\n\tif v, ok := authority.(MultiAlgorithmSigner); ok {\n\t\tif len(v.Algorithms()) == 0 {\n\t\t\treturn errors.New(\"the provided authority has no signature algorithm\")\n\t\t}\n\t\t// Use the first algorithm in the list.\n\t\tsig, err := v.SignWithAlgorithm(rand, c.bytesForSigning(), v.Algorithms()[0])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tc.Signature = sig\n\t\treturn nil\n\t} else if v, ok := authority.(AlgorithmSigner); ok && v.PublicKey().Type() == KeyAlgoRSA {\n\t\t// Default to KeyAlgoRSASHA512 for ssh-rsa signers.\n\t\t// TODO: consider using KeyAlgoRSASHA256 as default.\n\t\tsig, err := v.SignWithAlgorithm(rand, c.bytesForSigning(), KeyAlgoRSASHA512)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tc.Signature = sig\n\t\treturn nil\n\t}\n\n\tsig, err := authority.Sign(rand, c.bytesForSigning())\n\tif err != nil {\n\t\treturn err\n\t}\n\tc.Signature = sig\n\treturn nil\n}\n\n// certKeyAlgoNames is a mapping from known certificate algorithm names to the\n// corresponding public key signature algorithm.\n//\n// This map must be kept in sync with the one in agent/client.go.\nvar certKeyAlgoNames = map[string]string{\n\tCertAlgoRSAv01:         KeyAlgoRSA,\n\tCertAlgoRSASHA256v01:   KeyAlgoRSASHA256,\n\tCertAlgoRSASHA512v01:   KeyAlgoRSASHA512,\n\tInsecureCertAlgoDSAv01: InsecureKeyAlgoDSA,\n\tCertAlgoECDSA256v01:    KeyAlgoECDSA256,\n\tCertAlgoECDSA384v01:    KeyAlgoECDSA384,\n\tCertAlgoECDSA521v01:    KeyAlgoECDSA521,\n\tCertAlgoSKECDSA256v01:  KeyAlgoSKECDSA256,\n\tCertAlgoED25519v01:     KeyAlgoED25519,\n\tCertAlgoSKED25519v01:   KeyAlgoSKED25519,\n}\n\n// underlyingAlgo returns the signature algorithm associated with algo (which is\n// an advertised or negotiated public key or host key algorithm). These are\n// usually the same, except for certificate algorithms.\nfunc underlyingAlgo(algo string) string {\n\tif a, ok := certKeyAlgoNames[algo]; ok {\n\t\treturn a\n\t}\n\treturn algo\n}\n\n// certificateAlgo returns the certificate algorithms that uses the provided\n// underlying signature algorithm.\nfunc certificateAlgo(algo string) (certAlgo string, ok bool) {\n\tfor certName, algoName := range certKeyAlgoNames {\n\t\tif algoName == algo {\n\t\t\treturn certName, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\nfunc (cert *Certificate) bytesForSigning() []byte {\n\tc2 := *cert\n\tc2.Signature = nil\n\tout := c2.Marshal()\n\t// Drop trailing signature length.\n\treturn out[:len(out)-4]\n}\n\n// Marshal serializes c into OpenSSH's wire format. It is part of the\n// PublicKey interface.\nfunc (c *Certificate) Marshal() []byte {\n\tgeneric := genericCertData{\n\t\tSerial:          c.Serial,\n\t\tCertType:        c.CertType,\n\t\tKeyId:           c.KeyId,\n\t\tValidPrincipals: marshalStringList(c.ValidPrincipals),\n\t\tValidAfter:      uint64(c.ValidAfter),\n\t\tValidBefore:     uint64(c.ValidBefore),\n\t\tCriticalOptions: marshalTuples(c.CriticalOptions),\n\t\tExtensions:      marshalTuples(c.Extensions),\n\t\tReserved:        c.Reserved,\n\t\tSignatureKey:    c.SignatureKey.Marshal(),\n\t}\n\tif c.Signature != nil {\n\t\tgeneric.Signature = Marshal(c.Signature)\n\t}\n\tgenericBytes := Marshal(&generic)\n\tkeyBytes := c.Key.Marshal()\n\t_, keyBytes, _ = parseString(keyBytes)\n\tprefix := Marshal(&struct {\n\t\tName  string\n\t\tNonce []byte\n\t\tKey   []byte `ssh:\"rest\"`\n\t}{c.Type(), c.Nonce, keyBytes})\n\n\tresult := make([]byte, 0, len(prefix)+len(genericBytes))\n\tresult = append(result, prefix...)\n\tresult = append(result, genericBytes...)\n\treturn result\n}\n\n// Type returns the certificate algorithm name. It is part of the PublicKey interface.\nfunc (c *Certificate) Type() string {\n\tcertName, ok := certificateAlgo(c.Key.Type())\n\tif !ok {\n\t\tpanic(\"unknown certificate type for key type \" + c.Key.Type())\n\t}\n\treturn certName\n}\n\n// Verify verifies a signature against the certificate's public\n// key. It is part of the PublicKey interface.\nfunc (c *Certificate) Verify(data []byte, sig *Signature) error {\n\treturn c.Key.Verify(data, sig)\n}\n\nfunc parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) {\n\tformat, in, ok := parseString(in)\n\tif !ok {\n\t\treturn\n\t}\n\n\tout = &Signature{\n\t\tFormat: string(format),\n\t}\n\n\tif out.Blob, in, ok = parseString(in); !ok {\n\t\treturn\n\t}\n\n\tswitch out.Format {\n\tcase KeyAlgoSKECDSA256, CertAlgoSKECDSA256v01, KeyAlgoSKED25519, CertAlgoSKED25519v01:\n\t\tout.Rest = in\n\t\treturn out, nil, ok\n\t}\n\n\treturn out, in, ok\n}\n\nfunc parseSignature(in []byte) (out *Signature, rest []byte, ok bool) {\n\tsigBytes, rest, ok := parseString(in)\n\tif !ok {\n\t\treturn\n\t}\n\n\tout, trailing, ok := parseSignatureBody(sigBytes)\n\tif !ok || len(trailing) > 0 {\n\t\treturn nil, nil, false\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/channel.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 ssh\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"sync\"\n)\n\nconst (\n\tminPacketLength = 9\n\t// channelMaxPacket contains the maximum number of bytes that will be\n\t// sent in a single packet. As per RFC 4253, section 6.1, 32k is also\n\t// the minimum.\n\tchannelMaxPacket = 1 << 15\n\t// We follow OpenSSH here.\n\tchannelWindowSize = 64 * channelMaxPacket\n)\n\n// NewChannel represents an incoming request to a channel. It must either be\n// accepted for use by calling Accept, or rejected by calling Reject.\ntype NewChannel interface {\n\t// Accept accepts the channel creation request. It returns the Channel\n\t// and a Go channel containing SSH requests. The Go channel must be\n\t// serviced otherwise the Channel will hang.\n\tAccept() (Channel, <-chan *Request, error)\n\n\t// Reject rejects the channel creation request. After calling\n\t// this, no other methods on the Channel may be called.\n\tReject(reason RejectionReason, message string) error\n\n\t// ChannelType returns the type of the channel, as supplied by the\n\t// client.\n\tChannelType() string\n\n\t// ExtraData returns the arbitrary payload for this channel, as supplied\n\t// by the client. This data is specific to the channel type.\n\tExtraData() []byte\n}\n\n// A Channel is an ordered, reliable, flow-controlled, duplex stream\n// that is multiplexed over an SSH connection.\ntype Channel interface {\n\t// Read reads up to len(data) bytes from the channel.\n\tRead(data []byte) (int, error)\n\n\t// Write writes len(data) bytes to the channel.\n\tWrite(data []byte) (int, error)\n\n\t// Close signals end of channel use. No data may be sent after this\n\t// call.\n\tClose() error\n\n\t// CloseWrite signals the end of sending in-band\n\t// data. Requests may still be sent, and the other side may\n\t// still send data\n\tCloseWrite() error\n\n\t// SendRequest sends a channel request.  If wantReply is true,\n\t// it will wait for a reply and return the result as a\n\t// boolean, otherwise the return value will be false. Channel\n\t// requests are out-of-band messages so they may be sent even\n\t// if the data stream is closed or blocked by flow control.\n\t// If the channel is closed before a reply is returned, io.EOF\n\t// is returned.\n\tSendRequest(name string, wantReply bool, payload []byte) (bool, error)\n\n\t// Stderr returns an io.ReadWriter that writes to this channel\n\t// with the extended data type set to stderr. Stderr may\n\t// safely be read and written from a different goroutine than\n\t// Read and Write respectively.\n\tStderr() io.ReadWriter\n}\n\n// Request is a request sent outside of the normal stream of\n// data. Requests can either be specific to an SSH channel, or they\n// can be global.\ntype Request struct {\n\tType      string\n\tWantReply bool\n\tPayload   []byte\n\n\tch  *channel\n\tmux *mux\n}\n\n// Reply sends a response to a request. It must be called for all requests\n// where WantReply is true and is a no-op otherwise. The payload argument is\n// ignored for replies to channel-specific requests.\nfunc (r *Request) Reply(ok bool, payload []byte) error {\n\tif !r.WantReply {\n\t\treturn nil\n\t}\n\n\tif r.ch == nil {\n\t\treturn r.mux.ackRequest(ok, payload)\n\t}\n\n\treturn r.ch.ackRequest(ok)\n}\n\n// RejectionReason is an enumeration used when rejecting channel creation\n// requests. See RFC 4254, section 5.1.\ntype RejectionReason uint32\n\nconst (\n\tProhibited RejectionReason = iota + 1\n\tConnectionFailed\n\tUnknownChannelType\n\tResourceShortage\n)\n\n// String converts the rejection reason to human readable form.\nfunc (r RejectionReason) String() string {\n\tswitch r {\n\tcase Prohibited:\n\t\treturn \"administratively prohibited\"\n\tcase ConnectionFailed:\n\t\treturn \"connect failed\"\n\tcase UnknownChannelType:\n\t\treturn \"unknown channel type\"\n\tcase ResourceShortage:\n\t\treturn \"resource shortage\"\n\t}\n\treturn fmt.Sprintf(\"unknown reason %d\", int(r))\n}\n\nfunc min(a uint32, b int) uint32 {\n\tif a < uint32(b) {\n\t\treturn a\n\t}\n\treturn uint32(b)\n}\n\ntype channelDirection uint8\n\nconst (\n\tchannelInbound channelDirection = iota\n\tchannelOutbound\n)\n\n// channel is an implementation of the Channel interface that works\n// with the mux class.\ntype channel struct {\n\t// R/O after creation\n\tchanType          string\n\textraData         []byte\n\tlocalId, remoteId uint32\n\n\t// maxIncomingPayload and maxRemotePayload are the maximum\n\t// payload sizes of normal and extended data packets for\n\t// receiving and sending, respectively. The wire packet will\n\t// be 9 or 13 bytes larger (excluding encryption overhead).\n\tmaxIncomingPayload uint32\n\tmaxRemotePayload   uint32\n\n\tmux *mux\n\n\t// decided is set to true if an accept or reject message has been sent\n\t// (for outbound channels) or received (for inbound channels).\n\tdecided bool\n\n\t// direction contains either channelOutbound, for channels created\n\t// locally, or channelInbound, for channels created by the peer.\n\tdirection channelDirection\n\n\t// Pending internal channel messages.\n\tmsg chan interface{}\n\n\t// Since requests have no ID, there can be only one request\n\t// with WantReply=true outstanding.  This lock is held by a\n\t// goroutine that has such an outgoing request pending.\n\tsentRequestMu sync.Mutex\n\n\tincomingRequests chan *Request\n\n\tsentEOF bool\n\n\t// thread-safe data\n\tremoteWin  window\n\tpending    *buffer\n\textPending *buffer\n\n\t// windowMu protects myWindow, the flow-control window, and myConsumed,\n\t// the number of bytes consumed since we last increased myWindow\n\twindowMu   sync.Mutex\n\tmyWindow   uint32\n\tmyConsumed uint32\n\n\t// writeMu serializes calls to mux.conn.writePacket() and\n\t// protects sentClose and packetPool. This mutex must be\n\t// different from windowMu, as writePacket can block if there\n\t// is a key exchange pending.\n\twriteMu   sync.Mutex\n\tsentClose bool\n\n\t// packetPool has a buffer for each extended channel ID to\n\t// save allocations during writes.\n\tpacketPool map[uint32][]byte\n}\n\n// writePacket sends a packet. If the packet is a channel close, it updates\n// sentClose. This method takes the lock c.writeMu.\nfunc (ch *channel) writePacket(packet []byte) error {\n\tch.writeMu.Lock()\n\tif ch.sentClose {\n\t\tch.writeMu.Unlock()\n\t\treturn io.EOF\n\t}\n\tch.sentClose = (packet[0] == msgChannelClose)\n\terr := ch.mux.conn.writePacket(packet)\n\tch.writeMu.Unlock()\n\treturn err\n}\n\nfunc (ch *channel) sendMessage(msg interface{}) error {\n\tif debugMux {\n\t\tlog.Printf(\"send(%d): %#v\", ch.mux.chanList.offset, msg)\n\t}\n\n\tp := Marshal(msg)\n\tbinary.BigEndian.PutUint32(p[1:], ch.remoteId)\n\treturn ch.writePacket(p)\n}\n\n// WriteExtended writes data to a specific extended stream. These streams are\n// used, for example, for stderr.\nfunc (ch *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) {\n\tif ch.sentEOF {\n\t\treturn 0, io.EOF\n\t}\n\t// 1 byte message type, 4 bytes remoteId, 4 bytes data length\n\topCode := byte(msgChannelData)\n\theaderLength := uint32(9)\n\tif extendedCode > 0 {\n\t\theaderLength += 4\n\t\topCode = msgChannelExtendedData\n\t}\n\n\tch.writeMu.Lock()\n\tpacket := ch.packetPool[extendedCode]\n\t// We don't remove the buffer from packetPool, so\n\t// WriteExtended calls from different goroutines will be\n\t// flagged as errors by the race detector.\n\tch.writeMu.Unlock()\n\n\tfor len(data) > 0 {\n\t\tspace := min(ch.maxRemotePayload, len(data))\n\t\tif space, err = ch.remoteWin.reserve(space); err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tif want := headerLength + space; uint32(cap(packet)) < want {\n\t\t\tpacket = make([]byte, want)\n\t\t} else {\n\t\t\tpacket = packet[:want]\n\t\t}\n\n\t\ttodo := data[:space]\n\n\t\tpacket[0] = opCode\n\t\tbinary.BigEndian.PutUint32(packet[1:], ch.remoteId)\n\t\tif extendedCode > 0 {\n\t\t\tbinary.BigEndian.PutUint32(packet[5:], uint32(extendedCode))\n\t\t}\n\t\tbinary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo)))\n\t\tcopy(packet[headerLength:], todo)\n\t\tif err = ch.writePacket(packet); err != nil {\n\t\t\treturn n, err\n\t\t}\n\n\t\tn += len(todo)\n\t\tdata = data[len(todo):]\n\t}\n\n\tch.writeMu.Lock()\n\tch.packetPool[extendedCode] = packet\n\tch.writeMu.Unlock()\n\n\treturn n, err\n}\n\nfunc (ch *channel) handleData(packet []byte) error {\n\theaderLen := 9\n\tisExtendedData := packet[0] == msgChannelExtendedData\n\tif isExtendedData {\n\t\theaderLen = 13\n\t}\n\tif len(packet) < headerLen {\n\t\t// malformed data packet\n\t\treturn parseError(packet[0])\n\t}\n\n\tvar extended uint32\n\tif isExtendedData {\n\t\textended = binary.BigEndian.Uint32(packet[5:])\n\t}\n\n\tlength := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen])\n\tif length == 0 {\n\t\treturn nil\n\t}\n\tif length > ch.maxIncomingPayload {\n\t\t// TODO(hanwen): should send Disconnect?\n\t\treturn errors.New(\"ssh: incoming packet exceeds maximum payload size\")\n\t}\n\n\tdata := packet[headerLen:]\n\tif length != uint32(len(data)) {\n\t\treturn errors.New(\"ssh: wrong packet length\")\n\t}\n\n\tch.windowMu.Lock()\n\tif ch.myWindow < length {\n\t\tch.windowMu.Unlock()\n\t\t// TODO(hanwen): should send Disconnect with reason?\n\t\treturn errors.New(\"ssh: remote side wrote too much\")\n\t}\n\tch.myWindow -= length\n\tch.windowMu.Unlock()\n\n\tif extended == 1 {\n\t\tch.extPending.write(data)\n\t} else if extended > 0 {\n\t\t// discard other extended data.\n\t} else {\n\t\tch.pending.write(data)\n\t}\n\treturn nil\n}\n\nfunc (c *channel) adjustWindow(adj uint32) error {\n\tc.windowMu.Lock()\n\t// Since myConsumed and myWindow are managed on our side, and can never\n\t// exceed the initial window setting, we don't worry about overflow.\n\tc.myConsumed += adj\n\tvar sendAdj uint32\n\tif (channelWindowSize-c.myWindow > 3*c.maxIncomingPayload) ||\n\t\t(c.myWindow < channelWindowSize/2) {\n\t\tsendAdj = c.myConsumed\n\t\tc.myConsumed = 0\n\t\tc.myWindow += sendAdj\n\t}\n\tc.windowMu.Unlock()\n\tif sendAdj == 0 {\n\t\treturn nil\n\t}\n\treturn c.sendMessage(windowAdjustMsg{\n\t\tAdditionalBytes: sendAdj,\n\t})\n}\n\nfunc (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) {\n\tswitch extended {\n\tcase 1:\n\t\tn, err = c.extPending.Read(data)\n\tcase 0:\n\t\tn, err = c.pending.Read(data)\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"ssh: extended code %d unimplemented\", extended)\n\t}\n\n\tif n > 0 {\n\t\terr = c.adjustWindow(uint32(n))\n\t\t// sendWindowAdjust can return io.EOF if the remote\n\t\t// peer has closed the connection, however we want to\n\t\t// defer forwarding io.EOF to the caller of Read until\n\t\t// the buffer has been drained.\n\t\tif n > 0 && err == io.EOF {\n\t\t\terr = nil\n\t\t}\n\t}\n\n\treturn n, err\n}\n\nfunc (c *channel) close() {\n\tc.pending.eof()\n\tc.extPending.eof()\n\tclose(c.msg)\n\tclose(c.incomingRequests)\n\tc.writeMu.Lock()\n\t// This is not necessary for a normal channel teardown, but if\n\t// there was another error, it is.\n\tc.sentClose = true\n\tc.writeMu.Unlock()\n\t// Unblock writers.\n\tc.remoteWin.close()\n}\n\n// responseMessageReceived is called when a success or failure message is\n// received on a channel to check that such a message is reasonable for the\n// given channel.\nfunc (ch *channel) responseMessageReceived() error {\n\tif ch.direction == channelInbound {\n\t\treturn errors.New(\"ssh: channel response message received on inbound channel\")\n\t}\n\tif ch.decided {\n\t\treturn errors.New(\"ssh: duplicate response received for channel\")\n\t}\n\tch.decided = true\n\treturn nil\n}\n\nfunc (ch *channel) handlePacket(packet []byte) error {\n\tswitch packet[0] {\n\tcase msgChannelData, msgChannelExtendedData:\n\t\treturn ch.handleData(packet)\n\tcase msgChannelClose:\n\t\tch.sendMessage(channelCloseMsg{PeersID: ch.remoteId})\n\t\tch.mux.chanList.remove(ch.localId)\n\t\tch.close()\n\t\treturn nil\n\tcase msgChannelEOF:\n\t\t// RFC 4254 is mute on how EOF affects dataExt messages but\n\t\t// it is logical to signal EOF at the same time.\n\t\tch.extPending.eof()\n\t\tch.pending.eof()\n\t\treturn nil\n\t}\n\n\tdecoded, err := decode(packet)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch msg := decoded.(type) {\n\tcase *channelOpenFailureMsg:\n\t\tif err := ch.responseMessageReceived(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tch.mux.chanList.remove(msg.PeersID)\n\t\tch.msg <- msg\n\tcase *channelOpenConfirmMsg:\n\t\tif err := ch.responseMessageReceived(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 {\n\t\t\treturn fmt.Errorf(\"ssh: invalid MaxPacketSize %d from peer\", msg.MaxPacketSize)\n\t\t}\n\t\tch.remoteId = msg.MyID\n\t\tch.maxRemotePayload = msg.MaxPacketSize\n\t\tch.remoteWin.add(msg.MyWindow)\n\t\tch.msg <- msg\n\tcase *windowAdjustMsg:\n\t\tif !ch.remoteWin.add(msg.AdditionalBytes) {\n\t\t\treturn fmt.Errorf(\"ssh: invalid window update for %d bytes\", msg.AdditionalBytes)\n\t\t}\n\tcase *channelRequestMsg:\n\t\treq := Request{\n\t\t\tType:      msg.Request,\n\t\t\tWantReply: msg.WantReply,\n\t\t\tPayload:   msg.RequestSpecificData,\n\t\t\tch:        ch,\n\t\t}\n\n\t\tch.incomingRequests <- &req\n\tdefault:\n\t\tch.msg <- msg\n\t}\n\treturn nil\n}\n\nfunc (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel {\n\tch := &channel{\n\t\tremoteWin:        window{Cond: newCond()},\n\t\tmyWindow:         channelWindowSize,\n\t\tpending:          newBuffer(),\n\t\textPending:       newBuffer(),\n\t\tdirection:        direction,\n\t\tincomingRequests: make(chan *Request, chanSize),\n\t\tmsg:              make(chan interface{}, chanSize),\n\t\tchanType:         chanType,\n\t\textraData:        extraData,\n\t\tmux:              m,\n\t\tpacketPool:       make(map[uint32][]byte),\n\t}\n\tch.localId = m.chanList.add(ch)\n\treturn ch\n}\n\nvar errUndecided = errors.New(\"ssh: must Accept or Reject channel\")\nvar errDecidedAlready = errors.New(\"ssh: can call Accept or Reject only once\")\n\ntype extChannel struct {\n\tcode uint32\n\tch   *channel\n}\n\nfunc (e *extChannel) Write(data []byte) (n int, err error) {\n\treturn e.ch.WriteExtended(data, e.code)\n}\n\nfunc (e *extChannel) Read(data []byte) (n int, err error) {\n\treturn e.ch.ReadExtended(data, e.code)\n}\n\nfunc (ch *channel) Accept() (Channel, <-chan *Request, error) {\n\tif ch.decided {\n\t\treturn nil, nil, errDecidedAlready\n\t}\n\tch.maxIncomingPayload = channelMaxPacket\n\tconfirm := channelOpenConfirmMsg{\n\t\tPeersID:       ch.remoteId,\n\t\tMyID:          ch.localId,\n\t\tMyWindow:      ch.myWindow,\n\t\tMaxPacketSize: ch.maxIncomingPayload,\n\t}\n\tch.decided = true\n\tif err := ch.sendMessage(confirm); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\treturn ch, ch.incomingRequests, nil\n}\n\nfunc (ch *channel) Reject(reason RejectionReason, message string) error {\n\tif ch.decided {\n\t\treturn errDecidedAlready\n\t}\n\treject := channelOpenFailureMsg{\n\t\tPeersID:  ch.remoteId,\n\t\tReason:   reason,\n\t\tMessage:  message,\n\t\tLanguage: \"en\",\n\t}\n\tch.decided = true\n\treturn ch.sendMessage(reject)\n}\n\nfunc (ch *channel) Read(data []byte) (int, error) {\n\tif !ch.decided {\n\t\treturn 0, errUndecided\n\t}\n\treturn ch.ReadExtended(data, 0)\n}\n\nfunc (ch *channel) Write(data []byte) (int, error) {\n\tif !ch.decided {\n\t\treturn 0, errUndecided\n\t}\n\treturn ch.WriteExtended(data, 0)\n}\n\nfunc (ch *channel) CloseWrite() error {\n\tif !ch.decided {\n\t\treturn errUndecided\n\t}\n\tch.sentEOF = true\n\treturn ch.sendMessage(channelEOFMsg{\n\t\tPeersID: ch.remoteId})\n}\n\nfunc (ch *channel) Close() error {\n\tif !ch.decided {\n\t\treturn errUndecided\n\t}\n\n\treturn ch.sendMessage(channelCloseMsg{\n\t\tPeersID: ch.remoteId})\n}\n\n// Extended returns an io.ReadWriter that sends and receives data on the given,\n// SSH extended stream. Such streams are used, for example, for stderr.\nfunc (ch *channel) Extended(code uint32) io.ReadWriter {\n\tif !ch.decided {\n\t\treturn nil\n\t}\n\treturn &extChannel{code, ch}\n}\n\nfunc (ch *channel) Stderr() io.ReadWriter {\n\treturn ch.Extended(1)\n}\n\nfunc (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) {\n\tif !ch.decided {\n\t\treturn false, errUndecided\n\t}\n\n\tif wantReply {\n\t\tch.sentRequestMu.Lock()\n\t\tdefer ch.sentRequestMu.Unlock()\n\t}\n\n\tmsg := channelRequestMsg{\n\t\tPeersID:             ch.remoteId,\n\t\tRequest:             name,\n\t\tWantReply:           wantReply,\n\t\tRequestSpecificData: payload,\n\t}\n\n\tif err := ch.sendMessage(msg); err != nil {\n\t\treturn false, err\n\t}\n\n\tif wantReply {\n\t\tm, ok := (<-ch.msg)\n\t\tif !ok {\n\t\t\treturn false, io.EOF\n\t\t}\n\t\tswitch m.(type) {\n\t\tcase *channelRequestFailureMsg:\n\t\t\treturn false, nil\n\t\tcase *channelRequestSuccessMsg:\n\t\t\treturn true, nil\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"ssh: unexpected response to channel request: %#v\", m)\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// ackRequest either sends an ack or nack to the channel request.\nfunc (ch *channel) ackRequest(ok bool) error {\n\tif !ch.decided {\n\t\treturn errUndecided\n\t}\n\n\tvar msg interface{}\n\tif !ok {\n\t\tmsg = channelRequestFailureMsg{\n\t\t\tPeersID: ch.remoteId,\n\t\t}\n\t} else {\n\t\tmsg = channelRequestSuccessMsg{\n\t\t\tPeersID: ch.remoteId,\n\t\t}\n\t}\n\treturn ch.sendMessage(msg)\n}\n\nfunc (ch *channel) ChannelType() string {\n\treturn ch.chanType\n}\n\nfunc (ch *channel) ExtraData() []byte {\n\treturn ch.extraData\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/cipher.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 ssh\n\nimport (\n\t\"crypto/aes\"\n\t\"crypto/cipher\"\n\t\"crypto/des\"\n\t\"crypto/fips140\"\n\t\"crypto/rc4\"\n\t\"crypto/subtle\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"slices\"\n\n\t\"golang.org/x/crypto/chacha20\"\n\t\"golang.org/x/crypto/internal/poly1305\"\n)\n\nconst (\n\tpacketSizeMultiple = 16 // TODO(huin) this should be determined by the cipher.\n\n\t// RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations\n\t// MUST be able to process (plus a few more kilobytes for padding and mac). The RFC\n\t// indicates implementations SHOULD be able to handle larger packet sizes, but then\n\t// waffles on about reasonable limits.\n\t//\n\t// OpenSSH caps their maxPacket at 256kB so we choose to do\n\t// the same. maxPacket is also used to ensure that uint32\n\t// length fields do not overflow, so it should remain well\n\t// below 4G.\n\tmaxPacket = 256 * 1024\n)\n\n// noneCipher implements cipher.Stream and provides no encryption. It is used\n// by the transport before the first key-exchange.\ntype noneCipher struct{}\n\nfunc (c noneCipher) XORKeyStream(dst, src []byte) {\n\tcopy(dst, src)\n}\n\nfunc newAESCTR(key, iv []byte) (cipher.Stream, error) {\n\tc, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cipher.NewCTR(c, iv), nil\n}\n\nfunc newRC4(key, iv []byte) (cipher.Stream, error) {\n\treturn rc4.NewCipher(key)\n}\n\ntype cipherMode struct {\n\tkeySize int\n\tivSize  int\n\tcreate  func(key, iv []byte, macKey []byte, algs DirectionAlgorithms) (packetCipher, error)\n}\n\nfunc streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, error)) func(key, iv []byte, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) {\n\treturn func(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) {\n\t\tstream, err := createFunc(key, iv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar streamDump []byte\n\t\tif skip > 0 {\n\t\t\tstreamDump = make([]byte, 512)\n\t\t}\n\n\t\tfor remainingToDump := skip; remainingToDump > 0; {\n\t\t\tdumpThisTime := remainingToDump\n\t\t\tif dumpThisTime > len(streamDump) {\n\t\t\t\tdumpThisTime = len(streamDump)\n\t\t\t}\n\t\t\tstream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime])\n\t\t\tremainingToDump -= dumpThisTime\n\t\t}\n\n\t\tmac := macModes[algs.MAC].new(macKey)\n\t\treturn &streamPacketCipher{\n\t\t\tmac:       mac,\n\t\t\tetm:       macModes[algs.MAC].etm,\n\t\t\tmacResult: make([]byte, mac.Size()),\n\t\t\tcipher:    stream,\n\t\t}, nil\n\t}\n}\n\n// cipherModes documents properties of supported ciphers. Ciphers not included\n// are not supported and will not be negotiated, even if explicitly configured.\n// When FIPS mode is enabled, only FIPS-approved algorithms are included.\nvar cipherModes = map[string]*cipherMode{}\n\nfunc init() {\n\tcipherModes[CipherAES128CTR] = &cipherMode{16, aes.BlockSize, streamCipherMode(0, newAESCTR)}\n\tcipherModes[CipherAES192CTR] = &cipherMode{24, aes.BlockSize, streamCipherMode(0, newAESCTR)}\n\tcipherModes[CipherAES256CTR] = &cipherMode{32, aes.BlockSize, streamCipherMode(0, newAESCTR)}\n\t//  Use of GCM with arbitrary IVs is not allowed in FIPS 140-only mode,\n\t// we'll wire it up to NewGCMForSSH in Go 1.26.\n\t//\n\t// For now it means we'll work with fips140=on but not fips140=only.\n\tcipherModes[CipherAES128GCM] = &cipherMode{16, 12, newGCMCipher}\n\tcipherModes[CipherAES256GCM] = &cipherMode{32, 12, newGCMCipher}\n\n\tif fips140.Enabled() {\n\t\tdefaultCiphers = slices.DeleteFunc(defaultCiphers, func(algo string) bool {\n\t\t\t_, ok := cipherModes[algo]\n\t\t\treturn !ok\n\t\t})\n\t\treturn\n\t}\n\n\tcipherModes[CipherChaCha20Poly1305] = &cipherMode{64, 0, newChaCha20Cipher}\n\t// Insecure ciphers not included in the default configuration.\n\tcipherModes[InsecureCipherRC4128] = &cipherMode{16, 0, streamCipherMode(1536, newRC4)}\n\tcipherModes[InsecureCipherRC4256] = &cipherMode{32, 0, streamCipherMode(1536, newRC4)}\n\tcipherModes[InsecureCipherRC4] = &cipherMode{16, 0, streamCipherMode(0, newRC4)}\n\t// CBC mode is insecure and so is not included in the default config.\n\t// (See https://www.ieee-security.org/TC/SP2013/papers/4977a526.pdf). If absolutely\n\t// needed, it's possible to specify a custom Config to enable it.\n\t// You should expect that an active attacker can recover plaintext if\n\t// you do.\n\tcipherModes[InsecureCipherAES128CBC] = &cipherMode{16, aes.BlockSize, newAESCBCCipher}\n\tcipherModes[InsecureCipherTripleDESCBC] = &cipherMode{24, des.BlockSize, newTripleDESCBCCipher}\n}\n\n// prefixLen is the length of the packet prefix that contains the packet length\n// and number of padding bytes.\nconst prefixLen = 5\n\n// streamPacketCipher is a packetCipher using a stream cipher.\ntype streamPacketCipher struct {\n\tmac    hash.Hash\n\tcipher cipher.Stream\n\tetm    bool\n\n\t// The following members are to avoid per-packet allocations.\n\tprefix      [prefixLen]byte\n\tseqNumBytes [4]byte\n\tpadding     [2 * packetSizeMultiple]byte\n\tpacketData  []byte\n\tmacResult   []byte\n}\n\n// readCipherPacket reads and decrypt a single packet from the reader argument.\nfunc (s *streamPacketCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) {\n\tif _, err := io.ReadFull(r, s.prefix[:]); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar encryptedPaddingLength [1]byte\n\tif s.mac != nil && s.etm {\n\t\tcopy(encryptedPaddingLength[:], s.prefix[4:5])\n\t\ts.cipher.XORKeyStream(s.prefix[4:5], s.prefix[4:5])\n\t} else {\n\t\ts.cipher.XORKeyStream(s.prefix[:], s.prefix[:])\n\t}\n\n\tlength := binary.BigEndian.Uint32(s.prefix[0:4])\n\tpaddingLength := uint32(s.prefix[4])\n\n\tvar macSize uint32\n\tif s.mac != nil {\n\t\ts.mac.Reset()\n\t\tbinary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum)\n\t\ts.mac.Write(s.seqNumBytes[:])\n\t\tif s.etm {\n\t\t\ts.mac.Write(s.prefix[:4])\n\t\t\ts.mac.Write(encryptedPaddingLength[:])\n\t\t} else {\n\t\t\ts.mac.Write(s.prefix[:])\n\t\t}\n\t\tmacSize = uint32(s.mac.Size())\n\t}\n\n\tif length <= paddingLength+1 {\n\t\treturn nil, errors.New(\"ssh: invalid packet length, packet too small\")\n\t}\n\n\tif length > maxPacket {\n\t\treturn nil, errors.New(\"ssh: invalid packet length, packet too large\")\n\t}\n\n\t// the maxPacket check above ensures that length-1+macSize\n\t// does not overflow.\n\tif uint32(cap(s.packetData)) < length-1+macSize {\n\t\ts.packetData = make([]byte, length-1+macSize)\n\t} else {\n\t\ts.packetData = s.packetData[:length-1+macSize]\n\t}\n\n\tif _, err := io.ReadFull(r, s.packetData); err != nil {\n\t\treturn nil, err\n\t}\n\tmac := s.packetData[length-1:]\n\tdata := s.packetData[:length-1]\n\n\tif s.mac != nil && s.etm {\n\t\ts.mac.Write(data)\n\t}\n\n\ts.cipher.XORKeyStream(data, data)\n\n\tif s.mac != nil {\n\t\tif !s.etm {\n\t\t\ts.mac.Write(data)\n\t\t}\n\t\ts.macResult = s.mac.Sum(s.macResult[:0])\n\t\tif subtle.ConstantTimeCompare(s.macResult, mac) != 1 {\n\t\t\treturn nil, errors.New(\"ssh: MAC failure\")\n\t\t}\n\t}\n\n\treturn s.packetData[:length-paddingLength-1], nil\n}\n\n// writeCipherPacket encrypts and sends a packet of data to the writer argument\nfunc (s *streamPacketCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error {\n\tif len(packet) > maxPacket {\n\t\treturn errors.New(\"ssh: packet too large\")\n\t}\n\n\taadlen := 0\n\tif s.mac != nil && s.etm {\n\t\t// packet length is not encrypted for EtM modes\n\t\taadlen = 4\n\t}\n\n\tpaddingLength := packetSizeMultiple - (prefixLen+len(packet)-aadlen)%packetSizeMultiple\n\tif paddingLength < 4 {\n\t\tpaddingLength += packetSizeMultiple\n\t}\n\n\tlength := len(packet) + 1 + paddingLength\n\tbinary.BigEndian.PutUint32(s.prefix[:], uint32(length))\n\ts.prefix[4] = byte(paddingLength)\n\tpadding := s.padding[:paddingLength]\n\tif _, err := io.ReadFull(rand, padding); err != nil {\n\t\treturn err\n\t}\n\n\tif s.mac != nil {\n\t\ts.mac.Reset()\n\t\tbinary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum)\n\t\ts.mac.Write(s.seqNumBytes[:])\n\n\t\tif s.etm {\n\t\t\t// For EtM algorithms, the packet length must stay unencrypted,\n\t\t\t// but the following data (padding length) must be encrypted\n\t\t\ts.cipher.XORKeyStream(s.prefix[4:5], s.prefix[4:5])\n\t\t}\n\n\t\ts.mac.Write(s.prefix[:])\n\n\t\tif !s.etm {\n\t\t\t// For non-EtM algorithms, the algorithm is applied on unencrypted data\n\t\t\ts.mac.Write(packet)\n\t\t\ts.mac.Write(padding)\n\t\t}\n\t}\n\n\tif !(s.mac != nil && s.etm) {\n\t\t// For EtM algorithms, the padding length has already been encrypted\n\t\t// and the packet length must remain unencrypted\n\t\ts.cipher.XORKeyStream(s.prefix[:], s.prefix[:])\n\t}\n\n\ts.cipher.XORKeyStream(packet, packet)\n\ts.cipher.XORKeyStream(padding, padding)\n\n\tif s.mac != nil && s.etm {\n\t\t// For EtM algorithms, packet and padding must be encrypted\n\t\ts.mac.Write(packet)\n\t\ts.mac.Write(padding)\n\t}\n\n\tif _, err := w.Write(s.prefix[:]); err != nil {\n\t\treturn err\n\t}\n\tif _, err := w.Write(packet); err != nil {\n\t\treturn err\n\t}\n\tif _, err := w.Write(padding); err != nil {\n\t\treturn err\n\t}\n\n\tif s.mac != nil {\n\t\ts.macResult = s.mac.Sum(s.macResult[:0])\n\t\tif _, err := w.Write(s.macResult); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype gcmCipher struct {\n\taead   cipher.AEAD\n\tprefix [4]byte\n\tiv     []byte\n\tbuf    []byte\n}\n\nfunc newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs DirectionAlgorithms) (packetCipher, error) {\n\tc, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taead, err := cipher.NewGCM(c)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &gcmCipher{\n\t\taead: aead,\n\t\tiv:   iv,\n\t}, nil\n}\n\nconst gcmTagSize = 16\n\nfunc (c *gcmCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error {\n\t// Pad out to multiple of 16 bytes. This is different from the\n\t// stream cipher because that encrypts the length too.\n\tpadding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple)\n\tif padding < 4 {\n\t\tpadding += packetSizeMultiple\n\t}\n\n\tlength := uint32(len(packet) + int(padding) + 1)\n\tbinary.BigEndian.PutUint32(c.prefix[:], length)\n\tif _, err := w.Write(c.prefix[:]); err != nil {\n\t\treturn err\n\t}\n\n\tif cap(c.buf) < int(length) {\n\t\tc.buf = make([]byte, length)\n\t} else {\n\t\tc.buf = c.buf[:length]\n\t}\n\n\tc.buf[0] = padding\n\tcopy(c.buf[1:], packet)\n\tif _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil {\n\t\treturn err\n\t}\n\tc.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:])\n\tif _, err := w.Write(c.buf); err != nil {\n\t\treturn err\n\t}\n\tc.incIV()\n\n\treturn nil\n}\n\nfunc (c *gcmCipher) incIV() {\n\tfor i := 4 + 7; i >= 4; i-- {\n\t\tc.iv[i]++\n\t\tif c.iv[i] != 0 {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\nfunc (c *gcmCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) {\n\tif _, err := io.ReadFull(r, c.prefix[:]); err != nil {\n\t\treturn nil, err\n\t}\n\tlength := binary.BigEndian.Uint32(c.prefix[:])\n\tif length > maxPacket {\n\t\treturn nil, errors.New(\"ssh: max packet length exceeded\")\n\t}\n\n\tif cap(c.buf) < int(length+gcmTagSize) {\n\t\tc.buf = make([]byte, length+gcmTagSize)\n\t} else {\n\t\tc.buf = c.buf[:length+gcmTagSize]\n\t}\n\n\tif _, err := io.ReadFull(r, c.buf); err != nil {\n\t\treturn nil, err\n\t}\n\n\tplain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.incIV()\n\n\tif len(plain) == 0 {\n\t\treturn nil, errors.New(\"ssh: empty packet\")\n\t}\n\n\tpadding := plain[0]\n\tif padding < 4 {\n\t\t// padding is a byte, so it automatically satisfies\n\t\t// the maximum size, which is 255.\n\t\treturn nil, fmt.Errorf(\"ssh: illegal padding %d\", padding)\n\t}\n\n\tif int(padding+1) >= len(plain) {\n\t\treturn nil, fmt.Errorf(\"ssh: padding %d too large\", padding)\n\t}\n\tplain = plain[1 : length-uint32(padding)]\n\treturn plain, nil\n}\n\n// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1\ntype cbcCipher struct {\n\tmac       hash.Hash\n\tmacSize   uint32\n\tdecrypter cipher.BlockMode\n\tencrypter cipher.BlockMode\n\n\t// The following members are to avoid per-packet allocations.\n\tseqNumBytes [4]byte\n\tpacketData  []byte\n\tmacResult   []byte\n\n\t// Amount of data we should still read to hide which\n\t// verification error triggered.\n\toracleCamouflage uint32\n}\n\nfunc newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) {\n\tcbc := &cbcCipher{\n\t\tmac:        macModes[algs.MAC].new(macKey),\n\t\tdecrypter:  cipher.NewCBCDecrypter(c, iv),\n\t\tencrypter:  cipher.NewCBCEncrypter(c, iv),\n\t\tpacketData: make([]byte, 1024),\n\t}\n\tif cbc.mac != nil {\n\t\tcbc.macSize = uint32(cbc.mac.Size())\n\t}\n\n\treturn cbc, nil\n}\n\nfunc newAESCBCCipher(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) {\n\tc, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcbc, err := newCBCCipher(c, key, iv, macKey, algs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn cbc, nil\n}\n\nfunc newTripleDESCBCCipher(key, iv, macKey []byte, algs DirectionAlgorithms) (packetCipher, error) {\n\tc, err := des.NewTripleDESCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcbc, err := newCBCCipher(c, key, iv, macKey, algs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn cbc, nil\n}\n\nfunc maxUInt32(a, b int) uint32 {\n\tif a > b {\n\t\treturn uint32(a)\n\t}\n\treturn uint32(b)\n}\n\nconst (\n\tcbcMinPacketSizeMultiple = 8\n\tcbcMinPacketSize         = 16\n\tcbcMinPaddingSize        = 4\n)\n\n// cbcError represents a verification error that may leak information.\ntype cbcError string\n\nfunc (e cbcError) Error() string { return string(e) }\n\nfunc (c *cbcCipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) {\n\tp, err := c.readCipherPacketLeaky(seqNum, r)\n\tif err != nil {\n\t\tif _, ok := err.(cbcError); ok {\n\t\t\t// Verification error: read a fixed amount of\n\t\t\t// data, to make distinguishing between\n\t\t\t// failing MAC and failing length check more\n\t\t\t// difficult.\n\t\t\tio.CopyN(io.Discard, r, int64(c.oracleCamouflage))\n\t\t}\n\t}\n\treturn p, err\n}\n\nfunc (c *cbcCipher) readCipherPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) {\n\tblockSize := c.decrypter.BlockSize()\n\n\t// Read the header, which will include some of the subsequent data in the\n\t// case of block ciphers - this is copied back to the payload later.\n\t// How many bytes of payload/padding will be read with this first read.\n\tfirstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize)\n\tfirstBlock := c.packetData[:firstBlockLength]\n\tif _, err := io.ReadFull(r, firstBlock); err != nil {\n\t\treturn nil, err\n\t}\n\n\tc.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength\n\n\tc.decrypter.CryptBlocks(firstBlock, firstBlock)\n\tlength := binary.BigEndian.Uint32(firstBlock[:4])\n\tif length > maxPacket {\n\t\treturn nil, cbcError(\"ssh: packet too large\")\n\t}\n\tif length+4 < maxUInt32(cbcMinPacketSize, blockSize) {\n\t\t// The minimum size of a packet is 16 (or the cipher block size, whichever\n\t\t// is larger) bytes.\n\t\treturn nil, cbcError(\"ssh: packet too small\")\n\t}\n\t// The length of the packet (including the length field but not the MAC) must\n\t// be a multiple of the block size or 8, whichever is larger.\n\tif (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 {\n\t\treturn nil, cbcError(\"ssh: invalid packet length multiple\")\n\t}\n\n\tpaddingLength := uint32(firstBlock[4])\n\tif paddingLength < cbcMinPaddingSize || length <= paddingLength+1 {\n\t\treturn nil, cbcError(\"ssh: invalid packet length\")\n\t}\n\n\t// Positions within the c.packetData buffer:\n\tmacStart := 4 + length\n\tpaddingStart := macStart - paddingLength\n\n\t// Entire packet size, starting before length, ending at end of mac.\n\tentirePacketSize := macStart + c.macSize\n\n\t// Ensure c.packetData is large enough for the entire packet data.\n\tif uint32(cap(c.packetData)) < entirePacketSize {\n\t\t// Still need to upsize and copy, but this should be rare at runtime, only\n\t\t// on upsizing the packetData buffer.\n\t\tc.packetData = make([]byte, entirePacketSize)\n\t\tcopy(c.packetData, firstBlock)\n\t} else {\n\t\tc.packetData = c.packetData[:entirePacketSize]\n\t}\n\n\tn, err := io.ReadFull(r, c.packetData[firstBlockLength:])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.oracleCamouflage -= uint32(n)\n\n\tremainingCrypted := c.packetData[firstBlockLength:macStart]\n\tc.decrypter.CryptBlocks(remainingCrypted, remainingCrypted)\n\n\tmac := c.packetData[macStart:]\n\tif c.mac != nil {\n\t\tc.mac.Reset()\n\t\tbinary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum)\n\t\tc.mac.Write(c.seqNumBytes[:])\n\t\tc.mac.Write(c.packetData[:macStart])\n\t\tc.macResult = c.mac.Sum(c.macResult[:0])\n\t\tif subtle.ConstantTimeCompare(c.macResult, mac) != 1 {\n\t\t\treturn nil, cbcError(\"ssh: MAC failure\")\n\t\t}\n\t}\n\n\treturn c.packetData[prefixLen:paddingStart], nil\n}\n\nfunc (c *cbcCipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error {\n\teffectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize())\n\n\t// Length of encrypted portion of the packet (header, payload, padding).\n\t// Enforce minimum padding and packet size.\n\tencLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize)\n\t// Enforce block size.\n\tencLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize\n\n\tlength := encLength - 4\n\tpaddingLength := int(length) - (1 + len(packet))\n\n\t// Overall buffer contains: header, payload, padding, mac.\n\t// Space for the MAC is reserved in the capacity but not the slice length.\n\tbufferSize := encLength + c.macSize\n\tif uint32(cap(c.packetData)) < bufferSize {\n\t\tc.packetData = make([]byte, encLength, bufferSize)\n\t} else {\n\t\tc.packetData = c.packetData[:encLength]\n\t}\n\n\tp := c.packetData\n\n\t// Packet header.\n\tbinary.BigEndian.PutUint32(p, length)\n\tp = p[4:]\n\tp[0] = byte(paddingLength)\n\n\t// Payload.\n\tp = p[1:]\n\tcopy(p, packet)\n\n\t// Padding.\n\tp = p[len(packet):]\n\tif _, err := io.ReadFull(rand, p); err != nil {\n\t\treturn err\n\t}\n\n\tif c.mac != nil {\n\t\tc.mac.Reset()\n\t\tbinary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum)\n\t\tc.mac.Write(c.seqNumBytes[:])\n\t\tc.mac.Write(c.packetData)\n\t\t// The MAC is now appended into the capacity reserved for it earlier.\n\t\tc.packetData = c.mac.Sum(c.packetData)\n\t}\n\n\tc.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength])\n\n\tif _, err := w.Write(c.packetData); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// chacha20Poly1305Cipher implements the chacha20-poly1305@openssh.com\n// AEAD, which is described here:\n//\n//\thttps://tools.ietf.org/html/draft-josefsson-ssh-chacha20-poly1305-openssh-00\n//\n// the methods here also implement padding, which RFC 4253 Section 6\n// also requires of stream ciphers.\ntype chacha20Poly1305Cipher struct {\n\tlengthKey  [32]byte\n\tcontentKey [32]byte\n\tbuf        []byte\n}\n\nfunc newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs DirectionAlgorithms) (packetCipher, error) {\n\tif len(key) != 64 {\n\t\tpanic(len(key))\n\t}\n\n\tc := &chacha20Poly1305Cipher{\n\t\tbuf: make([]byte, 256),\n\t}\n\n\tcopy(c.contentKey[:], key[:32])\n\tcopy(c.lengthKey[:], key[32:])\n\treturn c, nil\n}\n\nfunc (c *chacha20Poly1305Cipher) readCipherPacket(seqNum uint32, r io.Reader) ([]byte, error) {\n\tnonce := make([]byte, 12)\n\tbinary.BigEndian.PutUint32(nonce[8:], seqNum)\n\ts, err := chacha20.NewUnauthenticatedCipher(c.contentKey[:], nonce)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar polyKey, discardBuf [32]byte\n\ts.XORKeyStream(polyKey[:], polyKey[:])\n\ts.XORKeyStream(discardBuf[:], discardBuf[:]) // skip the next 32 bytes\n\n\tencryptedLength := c.buf[:4]\n\tif _, err := io.ReadFull(r, encryptedLength); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar lenBytes [4]byte\n\tls, err := chacha20.NewUnauthenticatedCipher(c.lengthKey[:], nonce)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tls.XORKeyStream(lenBytes[:], encryptedLength)\n\n\tlength := binary.BigEndian.Uint32(lenBytes[:])\n\tif length > maxPacket {\n\t\treturn nil, errors.New(\"ssh: invalid packet length, packet too large\")\n\t}\n\n\tcontentEnd := 4 + length\n\tpacketEnd := contentEnd + poly1305.TagSize\n\tif uint32(cap(c.buf)) < packetEnd {\n\t\tc.buf = make([]byte, packetEnd)\n\t\tcopy(c.buf[:], encryptedLength)\n\t} else {\n\t\tc.buf = c.buf[:packetEnd]\n\t}\n\n\tif _, err := io.ReadFull(r, c.buf[4:packetEnd]); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar mac [poly1305.TagSize]byte\n\tcopy(mac[:], c.buf[contentEnd:packetEnd])\n\tif !poly1305.Verify(&mac, c.buf[:contentEnd], &polyKey) {\n\t\treturn nil, errors.New(\"ssh: MAC failure\")\n\t}\n\n\tplain := c.buf[4:contentEnd]\n\ts.XORKeyStream(plain, plain)\n\n\tif len(plain) == 0 {\n\t\treturn nil, errors.New(\"ssh: empty packet\")\n\t}\n\n\tpadding := plain[0]\n\tif padding < 4 {\n\t\t// padding is a byte, so it automatically satisfies\n\t\t// the maximum size, which is 255.\n\t\treturn nil, fmt.Errorf(\"ssh: illegal padding %d\", padding)\n\t}\n\n\tif int(padding)+1 >= len(plain) {\n\t\treturn nil, fmt.Errorf(\"ssh: padding %d too large\", padding)\n\t}\n\n\tplain = plain[1 : len(plain)-int(padding)]\n\n\treturn plain, nil\n}\n\nfunc (c *chacha20Poly1305Cipher) writeCipherPacket(seqNum uint32, w io.Writer, rand io.Reader, payload []byte) error {\n\tnonce := make([]byte, 12)\n\tbinary.BigEndian.PutUint32(nonce[8:], seqNum)\n\ts, err := chacha20.NewUnauthenticatedCipher(c.contentKey[:], nonce)\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar polyKey, discardBuf [32]byte\n\ts.XORKeyStream(polyKey[:], polyKey[:])\n\ts.XORKeyStream(discardBuf[:], discardBuf[:]) // skip the next 32 bytes\n\n\t// There is no blocksize, so fall back to multiple of 8 byte\n\t// padding, as described in RFC 4253, Sec 6.\n\tconst packetSizeMultiple = 8\n\n\tpadding := packetSizeMultiple - (1+len(payload))%packetSizeMultiple\n\tif padding < 4 {\n\t\tpadding += packetSizeMultiple\n\t}\n\n\t// size (4 bytes), padding (1), payload, padding, tag.\n\ttotalLength := 4 + 1 + len(payload) + padding + poly1305.TagSize\n\tif cap(c.buf) < totalLength {\n\t\tc.buf = make([]byte, totalLength)\n\t} else {\n\t\tc.buf = c.buf[:totalLength]\n\t}\n\n\tbinary.BigEndian.PutUint32(c.buf, uint32(1+len(payload)+padding))\n\tls, err := chacha20.NewUnauthenticatedCipher(c.lengthKey[:], nonce)\n\tif err != nil {\n\t\treturn err\n\t}\n\tls.XORKeyStream(c.buf, c.buf[:4])\n\tc.buf[4] = byte(padding)\n\tcopy(c.buf[5:], payload)\n\tpacketEnd := 5 + len(payload) + padding\n\tif _, err := io.ReadFull(rand, c.buf[5+len(payload):packetEnd]); err != nil {\n\t\treturn err\n\t}\n\n\ts.XORKeyStream(c.buf[4:], c.buf[4:packetEnd])\n\n\tvar mac [poly1305.TagSize]byte\n\tpoly1305.Sum(&mac, c.buf[:packetEnd], &polyKey)\n\n\tcopy(c.buf[packetEnd:], mac[:])\n\n\tif _, err := w.Write(c.buf); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/client.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n)\n\n// Client implements a traditional SSH client that supports shells,\n// subprocesses, TCP port/streamlocal forwarding and tunneled dialing.\ntype Client struct {\n\tConn\n\n\thandleForwardsOnce sync.Once // guards calling (*Client).handleForwards\n\n\tforwards        forwardList // forwarded tcpip connections from the remote side\n\tmu              sync.Mutex\n\tchannelHandlers map[string]chan NewChannel\n}\n\n// HandleChannelOpen returns a channel on which NewChannel requests\n// for the given type are sent. If the type already is being handled,\n// nil is returned. The channel is closed when the connection is closed.\nfunc (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tif c.channelHandlers == nil {\n\t\t// The SSH channel has been closed.\n\t\tc := make(chan NewChannel)\n\t\tclose(c)\n\t\treturn c\n\t}\n\n\tch := c.channelHandlers[channelType]\n\tif ch != nil {\n\t\treturn nil\n\t}\n\n\tch = make(chan NewChannel, chanSize)\n\tc.channelHandlers[channelType] = ch\n\treturn ch\n}\n\n// NewClient creates a Client on top of the given connection.\nfunc NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client {\n\tconn := &Client{\n\t\tConn:            c,\n\t\tchannelHandlers: make(map[string]chan NewChannel, 1),\n\t}\n\n\tgo conn.handleGlobalRequests(reqs)\n\tgo conn.handleChannelOpens(chans)\n\tgo func() {\n\t\tconn.Wait()\n\t\tconn.forwards.closeAll()\n\t}()\n\treturn conn\n}\n\n// NewClientConn establishes an authenticated SSH connection using c\n// as the underlying transport.  The Request and NewChannel channels\n// must be serviced or the connection will hang.\nfunc NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) {\n\tfullConf := *config\n\tfullConf.SetDefaults()\n\tif fullConf.HostKeyCallback == nil {\n\t\tc.Close()\n\t\treturn nil, nil, nil, errors.New(\"ssh: must specify HostKeyCallback\")\n\t}\n\n\tconn := &connection{\n\t\tsshConn: sshConn{conn: c, user: fullConf.User},\n\t}\n\n\tif err := conn.clientHandshake(addr, &fullConf); err != nil {\n\t\tc.Close()\n\t\treturn nil, nil, nil, fmt.Errorf(\"ssh: handshake failed: %w\", err)\n\t}\n\tconn.mux = newMux(conn.transport)\n\treturn conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil\n}\n\n// clientHandshake performs the client side key exchange. See RFC 4253 Section\n// 7.\nfunc (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error {\n\tif config.ClientVersion != \"\" {\n\t\tc.clientVersion = []byte(config.ClientVersion)\n\t} else {\n\t\tc.clientVersion = []byte(packageVersion)\n\t}\n\tvar err error\n\tc.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.transport = newClientTransport(\n\t\tnewTransport(c.sshConn.conn, config.Rand, true /* is client */),\n\t\tc.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr())\n\tif err := c.transport.waitSession(); err != nil {\n\t\treturn err\n\t}\n\n\tc.sessionID = c.transport.getSessionID()\n\tc.algorithms = c.transport.getAlgorithms()\n\treturn c.clientAuthenticate(config)\n}\n\n// verifyHostKeySignature verifies the host key obtained in the key exchange.\n// algo is the negotiated algorithm, and may be a certificate type.\nfunc verifyHostKeySignature(hostKey PublicKey, algo string, result *kexResult) error {\n\tsig, rest, ok := parseSignatureBody(result.Signature)\n\tif len(rest) > 0 || !ok {\n\t\treturn errors.New(\"ssh: signature parse error\")\n\t}\n\n\tif a := underlyingAlgo(algo); sig.Format != a {\n\t\treturn fmt.Errorf(\"ssh: invalid signature algorithm %q, expected %q\", sig.Format, a)\n\t}\n\n\treturn hostKey.Verify(result.H, sig)\n}\n\n// NewSession opens a new Session for this client. (A session is a remote\n// execution of a program.)\nfunc (c *Client) NewSession() (*Session, error) {\n\tch, in, err := c.OpenChannel(\"session\", nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn newSession(ch, in)\n}\n\nfunc (c *Client) handleGlobalRequests(incoming <-chan *Request) {\n\tfor r := range incoming {\n\t\t// This handles keepalive messages and matches\n\t\t// the behaviour of OpenSSH.\n\t\tr.Reply(false, nil)\n\t}\n}\n\n// handleChannelOpens channel open messages from the remote side.\nfunc (c *Client) handleChannelOpens(in <-chan NewChannel) {\n\tfor ch := range in {\n\t\tc.mu.Lock()\n\t\thandler := c.channelHandlers[ch.ChannelType()]\n\t\tc.mu.Unlock()\n\n\t\tif handler != nil {\n\t\t\thandler <- ch\n\t\t} else {\n\t\t\tch.Reject(UnknownChannelType, fmt.Sprintf(\"unknown channel type: %v\", ch.ChannelType()))\n\t\t}\n\t}\n\n\tc.mu.Lock()\n\tfor _, ch := range c.channelHandlers {\n\t\tclose(ch)\n\t}\n\tc.channelHandlers = nil\n\tc.mu.Unlock()\n}\n\n// Dial starts a client connection to the given SSH server. It is a\n// convenience function that connects to the given network address,\n// initiates the SSH handshake, and then sets up a Client.  For access\n// to incoming channels and requests, use net.Dial with NewClientConn\n// instead.\nfunc Dial(network, addr string, config *ClientConfig) (*Client, error) {\n\tconn, err := net.DialTimeout(network, addr, config.Timeout)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc, chans, reqs, err := NewClientConn(conn, addr, config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewClient(c, chans, reqs), nil\n}\n\n// HostKeyCallback is the function type used for verifying server\n// keys.  A HostKeyCallback must return nil if the host key is OK, or\n// an error to reject it. It receives the hostname as passed to Dial\n// or NewClientConn. The remote address is the RemoteAddr of the\n// net.Conn underlying the SSH connection.\ntype HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error\n\n// BannerCallback is the function type used for treat the banner sent by\n// the server. A BannerCallback receives the message sent by the remote server.\ntype BannerCallback func(message string) error\n\n// A ClientConfig structure is used to configure a Client. It must not be\n// modified after having been passed to an SSH function.\ntype ClientConfig struct {\n\t// Config contains configuration that is shared between clients and\n\t// servers.\n\tConfig\n\n\t// User contains the username to authenticate as.\n\tUser string\n\n\t// Auth contains possible authentication methods to use with the\n\t// server. Only the first instance of a particular RFC 4252 method will\n\t// be used during authentication.\n\tAuth []AuthMethod\n\n\t// HostKeyCallback is called during the cryptographic\n\t// handshake to validate the server's host key. The client\n\t// configuration must supply this callback for the connection\n\t// to succeed. The functions InsecureIgnoreHostKey or\n\t// FixedHostKey can be used for simplistic host key checks.\n\tHostKeyCallback HostKeyCallback\n\n\t// BannerCallback is called during the SSH dance to display a custom\n\t// server's message. The client configuration can supply this callback to\n\t// handle it as wished. The function BannerDisplayStderr can be used for\n\t// simplistic display on Stderr.\n\tBannerCallback BannerCallback\n\n\t// ClientVersion contains the version identification string that will\n\t// be used for the connection. If empty, a reasonable default is used.\n\tClientVersion string\n\n\t// HostKeyAlgorithms lists the public key algorithms that the client will\n\t// accept from the server for host key authentication, in order of\n\t// preference. If empty, a reasonable default is used. Any\n\t// string returned from a PublicKey.Type method may be used, or\n\t// any of the CertAlgo and KeyAlgo constants.\n\tHostKeyAlgorithms []string\n\n\t// Timeout is the maximum amount of time for the TCP connection to establish.\n\t//\n\t// A Timeout of zero means no timeout.\n\tTimeout time.Duration\n}\n\n// InsecureIgnoreHostKey returns a function that can be used for\n// ClientConfig.HostKeyCallback to accept any host key. It should\n// not be used for production code.\nfunc InsecureIgnoreHostKey() HostKeyCallback {\n\treturn func(hostname string, remote net.Addr, key PublicKey) error {\n\t\treturn nil\n\t}\n}\n\ntype fixedHostKey struct {\n\tkey PublicKey\n}\n\nfunc (f *fixedHostKey) check(hostname string, remote net.Addr, key PublicKey) error {\n\tif f.key == nil {\n\t\treturn fmt.Errorf(\"ssh: required host key was nil\")\n\t}\n\tif !bytes.Equal(key.Marshal(), f.key.Marshal()) {\n\t\treturn fmt.Errorf(\"ssh: host key mismatch\")\n\t}\n\treturn nil\n}\n\n// FixedHostKey returns a function for use in\n// ClientConfig.HostKeyCallback to accept only a specific host key.\nfunc FixedHostKey(key PublicKey) HostKeyCallback {\n\thk := &fixedHostKey{key}\n\treturn hk.check\n}\n\n// BannerDisplayStderr returns a function that can be used for\n// ClientConfig.BannerCallback to display banners on os.Stderr.\nfunc BannerDisplayStderr() BannerCallback {\n\treturn func(banner string) error {\n\t\t_, err := os.Stderr.WriteString(banner)\n\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/client_auth.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"slices\"\n\t\"strings\"\n)\n\ntype authResult int\n\nconst (\n\tauthFailure authResult = iota\n\tauthPartialSuccess\n\tauthSuccess\n)\n\n// clientAuthenticate authenticates with the remote server. See RFC 4252.\nfunc (c *connection) clientAuthenticate(config *ClientConfig) error {\n\t// initiate user auth session\n\tif err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil {\n\t\treturn err\n\t}\n\tpacket, err := c.transport.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\t// The server may choose to send a SSH_MSG_EXT_INFO at this point (if we\n\t// advertised willingness to receive one, which we always do) or not. See\n\t// RFC 8308, Section 2.4.\n\textensions := make(map[string][]byte)\n\tif len(packet) > 0 && packet[0] == msgExtInfo {\n\t\tvar extInfo extInfoMsg\n\t\tif err := Unmarshal(packet, &extInfo); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpayload := extInfo.Payload\n\t\tfor i := uint32(0); i < extInfo.NumExtensions; i++ {\n\t\t\tname, rest, ok := parseString(payload)\n\t\t\tif !ok {\n\t\t\t\treturn parseError(msgExtInfo)\n\t\t\t}\n\t\t\tvalue, rest, ok := parseString(rest)\n\t\t\tif !ok {\n\t\t\t\treturn parseError(msgExtInfo)\n\t\t\t}\n\t\t\textensions[string(name)] = value\n\t\t\tpayload = rest\n\t\t}\n\t\tpacket, err = c.transport.readPacket()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tvar serviceAccept serviceAcceptMsg\n\tif err := Unmarshal(packet, &serviceAccept); err != nil {\n\t\treturn err\n\t}\n\n\t// during the authentication phase the client first attempts the \"none\" method\n\t// then any untried methods suggested by the server.\n\tvar tried []string\n\tvar lastMethods []string\n\n\tsessionID := c.transport.getSessionID()\n\tfor auth := AuthMethod(new(noneAuth)); auth != nil; {\n\t\tok, methods, err := auth.auth(sessionID, config.User, c.transport, config.Rand, extensions)\n\t\tif err != nil {\n\t\t\t// On disconnect, return error immediately\n\t\t\tif _, ok := err.(*disconnectMsg); ok {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// We return the error later if there is no other method left to\n\t\t\t// try.\n\t\t\tok = authFailure\n\t\t}\n\t\tif ok == authSuccess {\n\t\t\t// success\n\t\t\treturn nil\n\t\t} else if ok == authFailure {\n\t\t\tif m := auth.method(); !slices.Contains(tried, m) {\n\t\t\t\ttried = append(tried, m)\n\t\t\t}\n\t\t}\n\t\tif methods == nil {\n\t\t\tmethods = lastMethods\n\t\t}\n\t\tlastMethods = methods\n\n\t\tauth = nil\n\n\tfindNext:\n\t\tfor _, a := range config.Auth {\n\t\t\tcandidateMethod := a.method()\n\t\t\tif slices.Contains(tried, candidateMethod) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, meth := range methods {\n\t\t\t\tif meth == candidateMethod {\n\t\t\t\t\tauth = a\n\t\t\t\t\tbreak findNext\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif auth == nil && err != nil {\n\t\t\t// We have an error and there are no other authentication methods to\n\t\t\t// try, so we return it.\n\t\t\treturn err\n\t\t}\n\t}\n\treturn fmt.Errorf(\"ssh: unable to authenticate, attempted methods %v, no supported methods remain\", tried)\n}\n\n// An AuthMethod represents an instance of an RFC 4252 authentication method.\ntype AuthMethod interface {\n\t// auth authenticates user over transport t.\n\t// Returns true if authentication is successful.\n\t// If authentication is not successful, a []string of alternative\n\t// method names is returned. If the slice is nil, it will be ignored\n\t// and the previous set of possible methods will be reused.\n\tauth(session []byte, user string, p packetConn, rand io.Reader, extensions map[string][]byte) (authResult, []string, error)\n\n\t// method returns the RFC 4252 method name.\n\tmethod() string\n}\n\n// \"none\" authentication, RFC 4252 section 5.2.\ntype noneAuth int\n\nfunc (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader, _ map[string][]byte) (authResult, []string, error) {\n\tif err := c.writePacket(Marshal(&userAuthRequestMsg{\n\t\tUser:    user,\n\t\tService: serviceSSH,\n\t\tMethod:  \"none\",\n\t})); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\n\treturn handleAuthResponse(c)\n}\n\nfunc (n *noneAuth) method() string {\n\treturn \"none\"\n}\n\n// passwordCallback is an AuthMethod that fetches the password through\n// a function call, e.g. by prompting the user.\ntype passwordCallback func() (password string, err error)\n\nfunc (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader, _ map[string][]byte) (authResult, []string, error) {\n\ttype passwordAuthMsg struct {\n\t\tUser     string `sshtype:\"50\"`\n\t\tService  string\n\t\tMethod   string\n\t\tReply    bool\n\t\tPassword string\n\t}\n\n\tpw, err := cb()\n\t// REVIEW NOTE: is there a need to support skipping a password attempt?\n\t// The program may only find out that the user doesn't have a password\n\t// when prompting.\n\tif err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\n\tif err := c.writePacket(Marshal(&passwordAuthMsg{\n\t\tUser:     user,\n\t\tService:  serviceSSH,\n\t\tMethod:   cb.method(),\n\t\tReply:    false,\n\t\tPassword: pw,\n\t})); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\n\treturn handleAuthResponse(c)\n}\n\nfunc (cb passwordCallback) method() string {\n\treturn \"password\"\n}\n\n// Password returns an AuthMethod using the given password.\nfunc Password(secret string) AuthMethod {\n\treturn passwordCallback(func() (string, error) { return secret, nil })\n}\n\n// PasswordCallback returns an AuthMethod that uses a callback for\n// fetching a password.\nfunc PasswordCallback(prompt func() (secret string, err error)) AuthMethod {\n\treturn passwordCallback(prompt)\n}\n\ntype publickeyAuthMsg struct {\n\tUser    string `sshtype:\"50\"`\n\tService string\n\tMethod  string\n\t// HasSig indicates to the receiver packet that the auth request is signed and\n\t// should be used for authentication of the request.\n\tHasSig   bool\n\tAlgoname string\n\tPubKey   []byte\n\t// Sig is tagged with \"rest\" so Marshal will exclude it during\n\t// validateKey\n\tSig []byte `ssh:\"rest\"`\n}\n\n// publicKeyCallback is an AuthMethod that uses a set of key\n// pairs for authentication.\ntype publicKeyCallback func() ([]Signer, error)\n\nfunc (cb publicKeyCallback) method() string {\n\treturn \"publickey\"\n}\n\nfunc pickSignatureAlgorithm(signer Signer, extensions map[string][]byte) (MultiAlgorithmSigner, string, error) {\n\tvar as MultiAlgorithmSigner\n\tkeyFormat := signer.PublicKey().Type()\n\n\t// If the signer implements MultiAlgorithmSigner we use the algorithms it\n\t// support, if it implements AlgorithmSigner we assume it supports all\n\t// algorithms, otherwise only the key format one.\n\tswitch s := signer.(type) {\n\tcase MultiAlgorithmSigner:\n\t\tas = s\n\tcase AlgorithmSigner:\n\t\tas = &multiAlgorithmSigner{\n\t\t\tAlgorithmSigner:     s,\n\t\t\tsupportedAlgorithms: algorithmsForKeyFormat(underlyingAlgo(keyFormat)),\n\t\t}\n\tdefault:\n\t\tas = &multiAlgorithmSigner{\n\t\t\tAlgorithmSigner:     algorithmSignerWrapper{signer},\n\t\t\tsupportedAlgorithms: []string{underlyingAlgo(keyFormat)},\n\t\t}\n\t}\n\n\tgetFallbackAlgo := func() (string, error) {\n\t\t// Fallback to use if there is no \"server-sig-algs\" extension or a\n\t\t// common algorithm cannot be found. We use the public key format if the\n\t\t// MultiAlgorithmSigner supports it, otherwise we return an error.\n\t\tif !slices.Contains(as.Algorithms(), underlyingAlgo(keyFormat)) {\n\t\t\treturn \"\", fmt.Errorf(\"ssh: no common public key signature algorithm, server only supports %q for key type %q, signer only supports %v\",\n\t\t\t\tunderlyingAlgo(keyFormat), keyFormat, as.Algorithms())\n\t\t}\n\t\treturn keyFormat, nil\n\t}\n\n\textPayload, ok := extensions[\"server-sig-algs\"]\n\tif !ok {\n\t\t// If there is no \"server-sig-algs\" extension use the fallback\n\t\t// algorithm.\n\t\talgo, err := getFallbackAlgo()\n\t\treturn as, algo, err\n\t}\n\n\t// The server-sig-algs extension only carries underlying signature\n\t// algorithm, but we are trying to select a protocol-level public key\n\t// algorithm, which might be a certificate type. Extend the list of server\n\t// supported algorithms to include the corresponding certificate algorithms.\n\tserverAlgos := strings.Split(string(extPayload), \",\")\n\tfor _, algo := range serverAlgos {\n\t\tif certAlgo, ok := certificateAlgo(algo); ok {\n\t\t\tserverAlgos = append(serverAlgos, certAlgo)\n\t\t}\n\t}\n\n\t// Filter algorithms based on those supported by MultiAlgorithmSigner.\n\tvar keyAlgos []string\n\tfor _, algo := range algorithmsForKeyFormat(keyFormat) {\n\t\tif slices.Contains(as.Algorithms(), underlyingAlgo(algo)) {\n\t\t\tkeyAlgos = append(keyAlgos, algo)\n\t\t}\n\t}\n\n\talgo, err := findCommon(\"public key signature algorithm\", keyAlgos, serverAlgos, true)\n\tif err != nil {\n\t\t// If there is no overlap, return the fallback algorithm to support\n\t\t// servers that fail to list all supported algorithms.\n\t\talgo, err := getFallbackAlgo()\n\t\treturn as, algo, err\n\t}\n\treturn as, algo, nil\n}\n\nfunc (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader, extensions map[string][]byte) (authResult, []string, error) {\n\t// Authentication is performed by sending an enquiry to test if a key is\n\t// acceptable to the remote. If the key is acceptable, the client will\n\t// attempt to authenticate with the valid key.  If not the client will repeat\n\t// the process with the remaining keys.\n\n\tsigners, err := cb()\n\tif err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\tvar methods []string\n\tvar errSigAlgo error\n\n\torigSignersLen := len(signers)\n\tfor idx := 0; idx < len(signers); idx++ {\n\t\tsigner := signers[idx]\n\t\tpub := signer.PublicKey()\n\t\tas, algo, err := pickSignatureAlgorithm(signer, extensions)\n\t\tif err != nil && errSigAlgo == nil {\n\t\t\t// If we cannot negotiate a signature algorithm store the first\n\t\t\t// error so we can return it to provide a more meaningful message if\n\t\t\t// no other signers work.\n\t\t\terrSigAlgo = err\n\t\t\tcontinue\n\t\t}\n\t\tok, err := validateKey(pub, algo, user, c)\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t\t// OpenSSH 7.2-7.7 advertises support for rsa-sha2-256 and rsa-sha2-512\n\t\t// in the \"server-sig-algs\" extension but doesn't support these\n\t\t// algorithms for certificate authentication, so if the server rejects\n\t\t// the key try to use the obtained algorithm as if \"server-sig-algs\" had\n\t\t// not been implemented if supported from the algorithm signer.\n\t\tif !ok && idx < origSignersLen && isRSACert(algo) && algo != CertAlgoRSAv01 {\n\t\t\tif slices.Contains(as.Algorithms(), KeyAlgoRSA) {\n\t\t\t\t// We retry using the compat algorithm after all signers have\n\t\t\t\t// been tried normally.\n\t\t\t\tsigners = append(signers, &multiAlgorithmSigner{\n\t\t\t\t\tAlgorithmSigner:     as,\n\t\t\t\t\tsupportedAlgorithms: []string{KeyAlgoRSA},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tpubKey := pub.Marshal()\n\t\tdata := buildDataSignedForAuth(session, userAuthRequestMsg{\n\t\t\tUser:    user,\n\t\t\tService: serviceSSH,\n\t\t\tMethod:  cb.method(),\n\t\t}, algo, pubKey)\n\t\tsign, err := as.SignWithAlgorithm(rand, data, underlyingAlgo(algo))\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\n\t\t// manually wrap the serialized signature in a string\n\t\ts := Marshal(sign)\n\t\tsig := make([]byte, stringLength(len(s)))\n\t\tmarshalString(sig, s)\n\t\tmsg := publickeyAuthMsg{\n\t\t\tUser:     user,\n\t\t\tService:  serviceSSH,\n\t\t\tMethod:   cb.method(),\n\t\t\tHasSig:   true,\n\t\t\tAlgoname: algo,\n\t\t\tPubKey:   pubKey,\n\t\t\tSig:      sig,\n\t\t}\n\t\tp := Marshal(&msg)\n\t\tif err := c.writePacket(p); err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t\tvar success authResult\n\t\tsuccess, methods, err = handleAuthResponse(c)\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\n\t\t// If authentication succeeds or the list of available methods does not\n\t\t// contain the \"publickey\" method, do not attempt to authenticate with any\n\t\t// other keys.  According to RFC 4252 Section 7, the latter can occur when\n\t\t// additional authentication methods are required.\n\t\tif success == authSuccess || !slices.Contains(methods, cb.method()) {\n\t\t\treturn success, methods, err\n\t\t}\n\t}\n\n\treturn authFailure, methods, errSigAlgo\n}\n\n// validateKey validates the key provided is acceptable to the server.\nfunc validateKey(key PublicKey, algo string, user string, c packetConn) (bool, error) {\n\tpubKey := key.Marshal()\n\tmsg := publickeyAuthMsg{\n\t\tUser:     user,\n\t\tService:  serviceSSH,\n\t\tMethod:   \"publickey\",\n\t\tHasSig:   false,\n\t\tAlgoname: algo,\n\t\tPubKey:   pubKey,\n\t}\n\tif err := c.writePacket(Marshal(&msg)); err != nil {\n\t\treturn false, err\n\t}\n\n\treturn confirmKeyAck(key, c)\n}\n\nfunc confirmKeyAck(key PublicKey, c packetConn) (bool, error) {\n\tpubKey := key.Marshal()\n\n\tfor {\n\t\tpacket, err := c.readPacket()\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tswitch packet[0] {\n\t\tcase msgUserAuthBanner:\n\t\t\tif err := handleBannerResponse(c, packet); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\tcase msgUserAuthPubKeyOk:\n\t\t\tvar msg userAuthPubKeyOkMsg\n\t\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t\t// According to RFC 4252 Section 7 the algorithm in\n\t\t\t// SSH_MSG_USERAUTH_PK_OK should match that of the request but some\n\t\t\t// servers send the key type instead. OpenSSH allows any algorithm\n\t\t\t// that matches the public key, so we do the same.\n\t\t\t// https://github.com/openssh/openssh-portable/blob/86bdd385/sshconnect2.c#L709\n\t\t\tif !slices.Contains(algorithmsForKeyFormat(key.Type()), msg.Algo) {\n\t\t\t\treturn false, nil\n\t\t\t}\n\t\t\tif !bytes.Equal(msg.PubKey, pubKey) {\n\t\t\t\treturn false, nil\n\t\t\t}\n\t\t\treturn true, nil\n\t\tcase msgUserAuthFailure:\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn false, unexpectedMessageError(msgUserAuthPubKeyOk, packet[0])\n\t\t}\n\t}\n}\n\n// PublicKeys returns an AuthMethod that uses the given key\n// pairs.\nfunc PublicKeys(signers ...Signer) AuthMethod {\n\treturn publicKeyCallback(func() ([]Signer, error) { return signers, nil })\n}\n\n// PublicKeysCallback returns an AuthMethod that runs the given\n// function to obtain a list of key pairs.\nfunc PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod {\n\treturn publicKeyCallback(getSigners)\n}\n\n// handleAuthResponse returns whether the preceding authentication request succeeded\n// along with a list of remaining authentication methods to try next and\n// an error if an unexpected response was received.\nfunc handleAuthResponse(c packetConn) (authResult, []string, error) {\n\tgotMsgExtInfo := false\n\tfor {\n\t\tpacket, err := c.readPacket()\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\n\t\tswitch packet[0] {\n\t\tcase msgUserAuthBanner:\n\t\t\tif err := handleBannerResponse(c, packet); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\tcase msgExtInfo:\n\t\t\t// Ignore post-authentication RFC 8308 extensions, once.\n\t\t\tif gotMsgExtInfo {\n\t\t\t\treturn authFailure, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0])\n\t\t\t}\n\t\t\tgotMsgExtInfo = true\n\t\tcase msgUserAuthFailure:\n\t\t\tvar msg userAuthFailureMsg\n\t\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\tif msg.PartialSuccess {\n\t\t\t\treturn authPartialSuccess, msg.Methods, nil\n\t\t\t}\n\t\t\treturn authFailure, msg.Methods, nil\n\t\tcase msgUserAuthSuccess:\n\t\t\treturn authSuccess, nil, nil\n\t\tdefault:\n\t\t\treturn authFailure, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0])\n\t\t}\n\t}\n}\n\nfunc handleBannerResponse(c packetConn, packet []byte) error {\n\tvar msg userAuthBannerMsg\n\tif err := Unmarshal(packet, &msg); err != nil {\n\t\treturn err\n\t}\n\n\ttransport, ok := c.(*handshakeTransport)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tif transport.bannerCallback != nil {\n\t\treturn transport.bannerCallback(msg.Message)\n\t}\n\n\treturn nil\n}\n\n// KeyboardInteractiveChallenge should print questions, optionally\n// disabling echoing (e.g. for passwords), and return all the answers.\n// Challenge may be called multiple times in a single session. After\n// successful authentication, the server may send a challenge with no\n// questions, for which the name and instruction messages should be\n// printed.  RFC 4256 section 3.3 details how the UI should behave for\n// both CLI and GUI environments.\ntype KeyboardInteractiveChallenge func(name, instruction string, questions []string, echos []bool) (answers []string, err error)\n\n// KeyboardInteractive returns an AuthMethod using a prompt/response\n// sequence controlled by the server.\nfunc KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod {\n\treturn challenge\n}\n\nfunc (cb KeyboardInteractiveChallenge) method() string {\n\treturn \"keyboard-interactive\"\n}\n\nfunc (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader, _ map[string][]byte) (authResult, []string, error) {\n\ttype initiateMsg struct {\n\t\tUser       string `sshtype:\"50\"`\n\t\tService    string\n\t\tMethod     string\n\t\tLanguage   string\n\t\tSubmethods string\n\t}\n\n\tif err := c.writePacket(Marshal(&initiateMsg{\n\t\tUser:    user,\n\t\tService: serviceSSH,\n\t\tMethod:  \"keyboard-interactive\",\n\t})); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\n\tgotMsgExtInfo := false\n\tgotUserAuthInfoRequest := false\n\tfor {\n\t\tpacket, err := c.readPacket()\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\n\t\t// like handleAuthResponse, but with less options.\n\t\tswitch packet[0] {\n\t\tcase msgUserAuthBanner:\n\t\t\tif err := handleBannerResponse(c, packet); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\tcontinue\n\t\tcase msgExtInfo:\n\t\t\t// Ignore post-authentication RFC 8308 extensions, once.\n\t\t\tif gotMsgExtInfo {\n\t\t\t\treturn authFailure, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0])\n\t\t\t}\n\t\t\tgotMsgExtInfo = true\n\t\t\tcontinue\n\t\tcase msgUserAuthInfoRequest:\n\t\t\t// OK\n\t\tcase msgUserAuthFailure:\n\t\t\tvar msg userAuthFailureMsg\n\t\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\tif msg.PartialSuccess {\n\t\t\t\treturn authPartialSuccess, msg.Methods, nil\n\t\t\t}\n\t\t\tif !gotUserAuthInfoRequest {\n\t\t\t\treturn authFailure, msg.Methods, unexpectedMessageError(msgUserAuthInfoRequest, packet[0])\n\t\t\t}\n\t\t\treturn authFailure, msg.Methods, nil\n\t\tcase msgUserAuthSuccess:\n\t\t\treturn authSuccess, nil, nil\n\t\tdefault:\n\t\t\treturn authFailure, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0])\n\t\t}\n\n\t\tvar msg userAuthInfoRequestMsg\n\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t\tgotUserAuthInfoRequest = true\n\n\t\t// Manually unpack the prompt/echo pairs.\n\t\trest := msg.Prompts\n\t\tvar prompts []string\n\t\tvar echos []bool\n\t\tfor i := 0; i < int(msg.NumPrompts); i++ {\n\t\t\tprompt, r, ok := parseString(rest)\n\t\t\tif !ok || len(r) == 0 {\n\t\t\t\treturn authFailure, nil, errors.New(\"ssh: prompt format error\")\n\t\t\t}\n\t\t\tprompts = append(prompts, string(prompt))\n\t\t\techos = append(echos, r[0] != 0)\n\t\t\trest = r[1:]\n\t\t}\n\n\t\tif len(rest) != 0 {\n\t\t\treturn authFailure, nil, errors.New(\"ssh: extra data following keyboard-interactive pairs\")\n\t\t}\n\n\t\tanswers, err := cb(msg.Name, msg.Instruction, prompts, echos)\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\n\t\tif len(answers) != len(prompts) {\n\t\t\treturn authFailure, nil, fmt.Errorf(\"ssh: incorrect number of answers from keyboard-interactive callback %d (expected %d)\", len(answers), len(prompts))\n\t\t}\n\t\tresponseLength := 1 + 4\n\t\tfor _, a := range answers {\n\t\t\tresponseLength += stringLength(len(a))\n\t\t}\n\t\tserialized := make([]byte, responseLength)\n\t\tp := serialized\n\t\tp[0] = msgUserAuthInfoResponse\n\t\tp = p[1:]\n\t\tp = marshalUint32(p, uint32(len(answers)))\n\t\tfor _, a := range answers {\n\t\t\tp = marshalString(p, []byte(a))\n\t\t}\n\n\t\tif err := c.writePacket(serialized); err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t}\n}\n\ntype retryableAuthMethod struct {\n\tauthMethod AuthMethod\n\tmaxTries   int\n}\n\nfunc (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader, extensions map[string][]byte) (ok authResult, methods []string, err error) {\n\tfor i := 0; r.maxTries <= 0 || i < r.maxTries; i++ {\n\t\tok, methods, err = r.authMethod.auth(session, user, c, rand, extensions)\n\t\tif ok != authFailure || err != nil { // either success, partial success or error terminate\n\t\t\treturn ok, methods, err\n\t\t}\n\t}\n\treturn ok, methods, err\n}\n\nfunc (r *retryableAuthMethod) method() string {\n\treturn r.authMethod.method()\n}\n\n// RetryableAuthMethod is a decorator for other auth methods enabling them to\n// be retried up to maxTries before considering that AuthMethod itself failed.\n// If maxTries is <= 0, will retry indefinitely\n//\n// This is useful for interactive clients using challenge/response type\n// authentication (e.g. Keyboard-Interactive, Password, etc) where the user\n// could mistype their response resulting in the server issuing a\n// SSH_MSG_USERAUTH_FAILURE (rfc4252 #8 [password] and rfc4256 #3.4\n// [keyboard-interactive]); Without this decorator, the non-retryable\n// AuthMethod would be removed from future consideration, and never tried again\n// (and so the user would never be able to retry their entry).\nfunc RetryableAuthMethod(auth AuthMethod, maxTries int) AuthMethod {\n\treturn &retryableAuthMethod{authMethod: auth, maxTries: maxTries}\n}\n\n// GSSAPIWithMICAuthMethod is an AuthMethod with \"gssapi-with-mic\" authentication.\n// See RFC 4462 section 3\n// gssAPIClient is implementation of the GSSAPIClient interface, see the definition of the interface for details.\n// target is the server host you want to log in to.\nfunc GSSAPIWithMICAuthMethod(gssAPIClient GSSAPIClient, target string) AuthMethod {\n\tif gssAPIClient == nil {\n\t\tpanic(\"gss-api client must be not nil with enable gssapi-with-mic\")\n\t}\n\treturn &gssAPIWithMICCallback{gssAPIClient: gssAPIClient, target: target}\n}\n\ntype gssAPIWithMICCallback struct {\n\tgssAPIClient GSSAPIClient\n\ttarget       string\n}\n\nfunc (g *gssAPIWithMICCallback) auth(session []byte, user string, c packetConn, rand io.Reader, _ map[string][]byte) (authResult, []string, error) {\n\tm := &userAuthRequestMsg{\n\t\tUser:    user,\n\t\tService: serviceSSH,\n\t\tMethod:  g.method(),\n\t}\n\t// The GSS-API authentication method is initiated when the client sends an SSH_MSG_USERAUTH_REQUEST.\n\t// See RFC 4462 section 3.2.\n\tm.Payload = appendU32(m.Payload, 1)\n\tm.Payload = appendString(m.Payload, string(krb5OID))\n\tif err := c.writePacket(Marshal(m)); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\t// The server responds to the SSH_MSG_USERAUTH_REQUEST with either an\n\t// SSH_MSG_USERAUTH_FAILURE if none of the mechanisms are supported or\n\t// with an SSH_MSG_USERAUTH_GSSAPI_RESPONSE.\n\t// See RFC 4462 section 3.3.\n\t// OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication,so I don't want to check\n\t// selected mech if it is valid.\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\tuserAuthGSSAPIResp := &userAuthGSSAPIResponse{}\n\tif err := Unmarshal(packet, userAuthGSSAPIResp); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\t// Start the loop into the exchange token.\n\t// See RFC 4462 section 3.4.\n\tvar token []byte\n\tdefer g.gssAPIClient.DeleteSecContext()\n\tfor {\n\t\t// Initiates the establishment of a security context between the application and a remote peer.\n\t\tnextToken, needContinue, err := g.gssAPIClient.InitSecContext(\"host@\"+g.target, token, false)\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t\tif len(nextToken) > 0 {\n\t\t\tif err := c.writePacket(Marshal(&userAuthGSSAPIToken{\n\t\t\t\tToken: nextToken,\n\t\t\t})); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t}\n\t\tif !needContinue {\n\t\t\tbreak\n\t\t}\n\t\tpacket, err = c.readPacket()\n\t\tif err != nil {\n\t\t\treturn authFailure, nil, err\n\t\t}\n\t\tswitch packet[0] {\n\t\tcase msgUserAuthFailure:\n\t\t\tvar msg userAuthFailureMsg\n\t\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\tif msg.PartialSuccess {\n\t\t\t\treturn authPartialSuccess, msg.Methods, nil\n\t\t\t}\n\t\t\treturn authFailure, msg.Methods, nil\n\t\tcase msgUserAuthGSSAPIError:\n\t\t\tuserAuthGSSAPIErrorResp := &userAuthGSSAPIError{}\n\t\t\tif err := Unmarshal(packet, userAuthGSSAPIErrorResp); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\treturn authFailure, nil, fmt.Errorf(\"GSS-API Error:\\n\"+\n\t\t\t\t\"Major Status: %d\\n\"+\n\t\t\t\t\"Minor Status: %d\\n\"+\n\t\t\t\t\"Error Message: %s\\n\", userAuthGSSAPIErrorResp.MajorStatus, userAuthGSSAPIErrorResp.MinorStatus,\n\t\t\t\tuserAuthGSSAPIErrorResp.Message)\n\t\tcase msgUserAuthGSSAPIToken:\n\t\t\tuserAuthGSSAPITokenReq := &userAuthGSSAPIToken{}\n\t\t\tif err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil {\n\t\t\t\treturn authFailure, nil, err\n\t\t\t}\n\t\t\ttoken = userAuthGSSAPITokenReq.Token\n\t\t}\n\t}\n\t// Binding Encryption Keys.\n\t// See RFC 4462 section 3.5.\n\tmicField := buildMIC(string(session), user, \"ssh-connection\", \"gssapi-with-mic\")\n\tmicToken, err := g.gssAPIClient.GetMIC(micField)\n\tif err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\tif err := c.writePacket(Marshal(&userAuthGSSAPIMIC{\n\t\tMIC: micToken,\n\t})); err != nil {\n\t\treturn authFailure, nil, err\n\t}\n\treturn handleAuthResponse(c)\n}\n\nfunc (g *gssAPIWithMICCallback) method() string {\n\treturn \"gssapi-with-mic\"\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/common.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 ssh\n\nimport (\n\t\"crypto\"\n\t\"crypto/fips140\"\n\t\"crypto/rand\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"slices\"\n\t\"sync\"\n\n\t_ \"crypto/sha1\"\n\t_ \"crypto/sha256\"\n\t_ \"crypto/sha512\"\n)\n\n// These are string constants in the SSH protocol.\nconst (\n\tcompressionNone = \"none\"\n\tserviceUserAuth = \"ssh-userauth\"\n\tserviceSSH      = \"ssh-connection\"\n)\n\n// The ciphers currently or previously implemented by this library, to use in\n// [Config.Ciphers]. For a list, see the [Algorithms.Ciphers] returned by\n// [SupportedAlgorithms] or [InsecureAlgorithms].\nconst (\n\tCipherAES128GCM            = \"aes128-gcm@openssh.com\"\n\tCipherAES256GCM            = \"aes256-gcm@openssh.com\"\n\tCipherChaCha20Poly1305     = \"chacha20-poly1305@openssh.com\"\n\tCipherAES128CTR            = \"aes128-ctr\"\n\tCipherAES192CTR            = \"aes192-ctr\"\n\tCipherAES256CTR            = \"aes256-ctr\"\n\tInsecureCipherAES128CBC    = \"aes128-cbc\"\n\tInsecureCipherTripleDESCBC = \"3des-cbc\"\n\tInsecureCipherRC4          = \"arcfour\"\n\tInsecureCipherRC4128       = \"arcfour128\"\n\tInsecureCipherRC4256       = \"arcfour256\"\n)\n\n// The key exchanges currently or previously implemented by this library, to use\n// in [Config.KeyExchanges]. For a list, see the\n// [Algorithms.KeyExchanges] returned by [SupportedAlgorithms] or\n// [InsecureAlgorithms].\nconst (\n\tInsecureKeyExchangeDH1SHA1   = \"diffie-hellman-group1-sha1\"\n\tInsecureKeyExchangeDH14SHA1  = \"diffie-hellman-group14-sha1\"\n\tKeyExchangeDH14SHA256        = \"diffie-hellman-group14-sha256\"\n\tKeyExchangeDH16SHA512        = \"diffie-hellman-group16-sha512\"\n\tKeyExchangeECDHP256          = \"ecdh-sha2-nistp256\"\n\tKeyExchangeECDHP384          = \"ecdh-sha2-nistp384\"\n\tKeyExchangeECDHP521          = \"ecdh-sha2-nistp521\"\n\tKeyExchangeCurve25519        = \"curve25519-sha256\"\n\tInsecureKeyExchangeDHGEXSHA1 = \"diffie-hellman-group-exchange-sha1\"\n\tKeyExchangeDHGEXSHA256       = \"diffie-hellman-group-exchange-sha256\"\n\t// KeyExchangeMLKEM768X25519 is supported from Go 1.24.\n\tKeyExchangeMLKEM768X25519 = \"mlkem768x25519-sha256\"\n\n\t// An alias for KeyExchangeCurve25519SHA256. This kex ID will be added if\n\t// KeyExchangeCurve25519SHA256 is requested for backward compatibility with\n\t// OpenSSH versions up to 7.2.\n\tkeyExchangeCurve25519LibSSH = \"curve25519-sha256@libssh.org\"\n)\n\n// The message authentication code (MAC) currently or previously implemented by\n// this library, to use in [Config.MACs]. For a list, see the\n// [Algorithms.MACs] returned by [SupportedAlgorithms] or\n// [InsecureAlgorithms].\nconst (\n\tHMACSHA256ETM      = \"hmac-sha2-256-etm@openssh.com\"\n\tHMACSHA512ETM      = \"hmac-sha2-512-etm@openssh.com\"\n\tHMACSHA256         = \"hmac-sha2-256\"\n\tHMACSHA512         = \"hmac-sha2-512\"\n\tHMACSHA1           = \"hmac-sha1\"\n\tInsecureHMACSHA196 = \"hmac-sha1-96\"\n)\n\nvar (\n\t// supportedKexAlgos specifies key-exchange algorithms implemented by this\n\t// package in preference order, excluding those with security issues.\n\tsupportedKexAlgos = []string{\n\t\tKeyExchangeMLKEM768X25519,\n\t\tKeyExchangeCurve25519,\n\t\tKeyExchangeECDHP256,\n\t\tKeyExchangeECDHP384,\n\t\tKeyExchangeECDHP521,\n\t\tKeyExchangeDH14SHA256,\n\t\tKeyExchangeDH16SHA512,\n\t\tKeyExchangeDHGEXSHA256,\n\t}\n\t// defaultKexAlgos specifies the default preference for key-exchange\n\t// algorithms in preference order.\n\tdefaultKexAlgos = []string{\n\t\tKeyExchangeMLKEM768X25519,\n\t\tKeyExchangeCurve25519,\n\t\tKeyExchangeECDHP256,\n\t\tKeyExchangeECDHP384,\n\t\tKeyExchangeECDHP521,\n\t\tKeyExchangeDH14SHA256,\n\t\tInsecureKeyExchangeDH14SHA1,\n\t}\n\t// insecureKexAlgos specifies key-exchange algorithms implemented by this\n\t// package and which have security issues.\n\tinsecureKexAlgos = []string{\n\t\tInsecureKeyExchangeDH14SHA1,\n\t\tInsecureKeyExchangeDH1SHA1,\n\t\tInsecureKeyExchangeDHGEXSHA1,\n\t}\n\t// supportedCiphers specifies cipher algorithms implemented by this package\n\t// in preference order, excluding those with security issues.\n\tsupportedCiphers = []string{\n\t\tCipherAES128GCM,\n\t\tCipherAES256GCM,\n\t\tCipherChaCha20Poly1305,\n\t\tCipherAES128CTR,\n\t\tCipherAES192CTR,\n\t\tCipherAES256CTR,\n\t}\n\t// defaultCiphers specifies the default preference for ciphers algorithms\n\t// in preference order.\n\tdefaultCiphers = supportedCiphers\n\t// insecureCiphers specifies cipher algorithms implemented by this\n\t// package and which have security issues.\n\tinsecureCiphers = []string{\n\t\tInsecureCipherAES128CBC,\n\t\tInsecureCipherTripleDESCBC,\n\t\tInsecureCipherRC4256,\n\t\tInsecureCipherRC4128,\n\t\tInsecureCipherRC4,\n\t}\n\t// supportedMACs specifies MAC algorithms implemented by this package in\n\t// preference order, excluding those with security issues.\n\tsupportedMACs = []string{\n\t\tHMACSHA256ETM,\n\t\tHMACSHA512ETM,\n\t\tHMACSHA256,\n\t\tHMACSHA512,\n\t\tHMACSHA1,\n\t}\n\t// defaultMACs specifies the default preference for MAC algorithms in\n\t// preference order.\n\tdefaultMACs = []string{\n\t\tHMACSHA256ETM,\n\t\tHMACSHA512ETM,\n\t\tHMACSHA256,\n\t\tHMACSHA512,\n\t\tHMACSHA1,\n\t\tInsecureHMACSHA196,\n\t}\n\t// insecureMACs specifies MAC algorithms implemented by this\n\t// package and which have security issues.\n\tinsecureMACs = []string{\n\t\tInsecureHMACSHA196,\n\t}\n\t// supportedHostKeyAlgos specifies the supported host-key algorithms (i.e.\n\t// methods of authenticating servers) implemented by this package in\n\t// preference order, excluding those with security issues.\n\tsupportedHostKeyAlgos = []string{\n\t\tCertAlgoRSASHA256v01,\n\t\tCertAlgoRSASHA512v01,\n\t\tCertAlgoECDSA256v01,\n\t\tCertAlgoECDSA384v01,\n\t\tCertAlgoECDSA521v01,\n\t\tCertAlgoED25519v01,\n\t\tKeyAlgoRSASHA256,\n\t\tKeyAlgoRSASHA512,\n\t\tKeyAlgoECDSA256,\n\t\tKeyAlgoECDSA384,\n\t\tKeyAlgoECDSA521,\n\t\tKeyAlgoED25519,\n\t}\n\t// defaultHostKeyAlgos specifies the default preference for host-key\n\t// algorithms in preference order.\n\tdefaultHostKeyAlgos = []string{\n\t\tCertAlgoRSASHA256v01,\n\t\tCertAlgoRSASHA512v01,\n\t\tCertAlgoRSAv01,\n\t\tInsecureCertAlgoDSAv01,\n\t\tCertAlgoECDSA256v01,\n\t\tCertAlgoECDSA384v01,\n\t\tCertAlgoECDSA521v01,\n\t\tCertAlgoED25519v01,\n\t\tKeyAlgoECDSA256,\n\t\tKeyAlgoECDSA384,\n\t\tKeyAlgoECDSA521,\n\t\tKeyAlgoRSASHA256,\n\t\tKeyAlgoRSASHA512,\n\t\tKeyAlgoRSA,\n\t\tInsecureKeyAlgoDSA,\n\t\tKeyAlgoED25519,\n\t}\n\t// insecureHostKeyAlgos specifies host-key algorithms implemented by this\n\t// package and which have security issues.\n\tinsecureHostKeyAlgos = []string{\n\t\tKeyAlgoRSA,\n\t\tInsecureKeyAlgoDSA,\n\t\tCertAlgoRSAv01,\n\t\tInsecureCertAlgoDSAv01,\n\t}\n\t// supportedPubKeyAuthAlgos specifies the supported client public key\n\t// authentication algorithms. Note that this doesn't include certificate\n\t// types since those use the underlying algorithm. Order is irrelevant.\n\tsupportedPubKeyAuthAlgos = []string{\n\t\tKeyAlgoED25519,\n\t\tKeyAlgoSKED25519,\n\t\tKeyAlgoSKECDSA256,\n\t\tKeyAlgoECDSA256,\n\t\tKeyAlgoECDSA384,\n\t\tKeyAlgoECDSA521,\n\t\tKeyAlgoRSASHA256,\n\t\tKeyAlgoRSASHA512,\n\t}\n\n\t// defaultPubKeyAuthAlgos specifies the preferred client public key\n\t// authentication algorithms. This list is sent to the client if it supports\n\t// the server-sig-algs extension. Order is irrelevant.\n\tdefaultPubKeyAuthAlgos = []string{\n\t\tKeyAlgoED25519,\n\t\tKeyAlgoSKED25519,\n\t\tKeyAlgoSKECDSA256,\n\t\tKeyAlgoECDSA256,\n\t\tKeyAlgoECDSA384,\n\t\tKeyAlgoECDSA521,\n\t\tKeyAlgoRSASHA256,\n\t\tKeyAlgoRSASHA512,\n\t\tKeyAlgoRSA,\n\t\tInsecureKeyAlgoDSA,\n\t}\n\t// insecurePubKeyAuthAlgos specifies client public key authentication\n\t// algorithms implemented by this package and which have security issues.\n\tinsecurePubKeyAuthAlgos = []string{\n\t\tKeyAlgoRSA,\n\t\tInsecureKeyAlgoDSA,\n\t}\n)\n\n// NegotiatedAlgorithms defines algorithms negotiated between client and server.\ntype NegotiatedAlgorithms struct {\n\tKeyExchange string\n\tHostKey     string\n\tRead        DirectionAlgorithms\n\tWrite       DirectionAlgorithms\n}\n\n// Algorithms defines a set of algorithms that can be configured in the client\n// or server config for negotiation during a handshake.\ntype Algorithms struct {\n\tKeyExchanges   []string\n\tCiphers        []string\n\tMACs           []string\n\tHostKeys       []string\n\tPublicKeyAuths []string\n}\n\nfunc init() {\n\tif fips140.Enabled() {\n\t\tdefaultHostKeyAlgos = slices.DeleteFunc(defaultHostKeyAlgos, func(algo string) bool {\n\t\t\t_, err := hashFunc(underlyingAlgo(algo))\n\t\t\treturn err != nil\n\t\t})\n\t\tdefaultPubKeyAuthAlgos = slices.DeleteFunc(defaultPubKeyAuthAlgos, func(algo string) bool {\n\t\t\t_, err := hashFunc(underlyingAlgo(algo))\n\t\t\treturn err != nil\n\t\t})\n\t}\n}\n\nfunc hashFunc(format string) (crypto.Hash, error) {\n\tswitch format {\n\tcase KeyAlgoRSASHA256, KeyAlgoECDSA256, KeyAlgoSKED25519, KeyAlgoSKECDSA256:\n\t\treturn crypto.SHA256, nil\n\tcase KeyAlgoECDSA384:\n\t\treturn crypto.SHA384, nil\n\tcase KeyAlgoRSASHA512, KeyAlgoECDSA521:\n\t\treturn crypto.SHA512, nil\n\tcase KeyAlgoED25519:\n\t\t// KeyAlgoED25519 doesn't pre-hash.\n\t\treturn 0, nil\n\tcase KeyAlgoRSA, InsecureKeyAlgoDSA:\n\t\tif fips140.Enabled() {\n\t\t\treturn 0, fmt.Errorf(\"ssh: hash algorithm for format %q not allowed in FIPS 140 mode\", format)\n\t\t}\n\t\treturn crypto.SHA1, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"ssh: hash algorithm for format %q not mapped\", format)\n\t}\n}\n\n// SupportedAlgorithms returns algorithms currently implemented by this package,\n// excluding those with security issues, which are returned by\n// InsecureAlgorithms. The algorithms listed here are in preference order.\nfunc SupportedAlgorithms() Algorithms {\n\treturn Algorithms{\n\t\tCiphers:        slices.Clone(supportedCiphers),\n\t\tMACs:           slices.Clone(supportedMACs),\n\t\tKeyExchanges:   slices.Clone(supportedKexAlgos),\n\t\tHostKeys:       slices.Clone(supportedHostKeyAlgos),\n\t\tPublicKeyAuths: slices.Clone(supportedPubKeyAuthAlgos),\n\t}\n}\n\n// InsecureAlgorithms returns algorithms currently implemented by this package\n// and which have security issues.\nfunc InsecureAlgorithms() Algorithms {\n\treturn Algorithms{\n\t\tKeyExchanges:   slices.Clone(insecureKexAlgos),\n\t\tCiphers:        slices.Clone(insecureCiphers),\n\t\tMACs:           slices.Clone(insecureMACs),\n\t\tHostKeys:       slices.Clone(insecureHostKeyAlgos),\n\t\tPublicKeyAuths: slices.Clone(insecurePubKeyAuthAlgos),\n\t}\n}\n\nvar supportedCompressions = []string{compressionNone}\n\n// algorithmsForKeyFormat returns the supported signature algorithms for a given\n// public key format (PublicKey.Type), in order of preference. See RFC 8332,\n// Section 2. See also the note in sendKexInit on backwards compatibility.\nfunc algorithmsForKeyFormat(keyFormat string) []string {\n\tswitch keyFormat {\n\tcase KeyAlgoRSA:\n\t\treturn []string{KeyAlgoRSASHA256, KeyAlgoRSASHA512, KeyAlgoRSA}\n\tcase CertAlgoRSAv01:\n\t\treturn []string{CertAlgoRSASHA256v01, CertAlgoRSASHA512v01, CertAlgoRSAv01}\n\tdefault:\n\t\treturn []string{keyFormat}\n\t}\n}\n\n// keyFormatForAlgorithm returns the key format corresponding to the given\n// signature algorithm. It returns an empty string if the signature algorithm is\n// invalid or unsupported.\nfunc keyFormatForAlgorithm(sigAlgo string) string {\n\tswitch sigAlgo {\n\tcase KeyAlgoRSA, KeyAlgoRSASHA256, KeyAlgoRSASHA512:\n\t\treturn KeyAlgoRSA\n\tcase CertAlgoRSAv01, CertAlgoRSASHA256v01, CertAlgoRSASHA512v01:\n\t\treturn CertAlgoRSAv01\n\tcase KeyAlgoED25519,\n\t\tKeyAlgoSKED25519,\n\t\tKeyAlgoSKECDSA256,\n\t\tKeyAlgoECDSA256,\n\t\tKeyAlgoECDSA384,\n\t\tKeyAlgoECDSA521,\n\t\tInsecureKeyAlgoDSA,\n\t\tInsecureCertAlgoDSAv01,\n\t\tCertAlgoECDSA256v01,\n\t\tCertAlgoECDSA384v01,\n\t\tCertAlgoECDSA521v01,\n\t\tCertAlgoSKECDSA256v01,\n\t\tCertAlgoED25519v01,\n\t\tCertAlgoSKED25519v01:\n\t\treturn sigAlgo\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\n// isRSA returns whether algo is a supported RSA algorithm, including certificate\n// algorithms.\nfunc isRSA(algo string) bool {\n\talgos := algorithmsForKeyFormat(KeyAlgoRSA)\n\treturn slices.Contains(algos, underlyingAlgo(algo))\n}\n\nfunc isRSACert(algo string) bool {\n\t_, ok := certKeyAlgoNames[algo]\n\tif !ok {\n\t\treturn false\n\t}\n\treturn isRSA(algo)\n}\n\n// unexpectedMessageError results when the SSH message that we received didn't\n// match what we wanted.\nfunc unexpectedMessageError(expected, got uint8) error {\n\treturn fmt.Errorf(\"ssh: unexpected message type %d (expected %d)\", got, expected)\n}\n\n// parseError results from a malformed SSH message.\nfunc parseError(tag uint8) error {\n\treturn fmt.Errorf(\"ssh: parse error in message type %d\", tag)\n}\n\nfunc findCommon(what string, client []string, server []string, isClient bool) (string, error) {\n\tfor _, c := range client {\n\t\tfor _, s := range server {\n\t\t\tif c == s {\n\t\t\t\treturn c, nil\n\t\t\t}\n\t\t}\n\t}\n\terr := &AlgorithmNegotiationError{\n\t\tWhat: what,\n\t}\n\tif isClient {\n\t\terr.SupportedAlgorithms = client\n\t\terr.RequestedAlgorithms = server\n\t} else {\n\t\terr.SupportedAlgorithms = server\n\t\terr.RequestedAlgorithms = client\n\t}\n\treturn \"\", err\n}\n\n// AlgorithmNegotiationError defines the error returned if the client and the\n// server cannot agree on an algorithm for key exchange, host key, cipher, MAC.\ntype AlgorithmNegotiationError struct {\n\tWhat string\n\t// RequestedAlgorithms lists the algorithms supported by the peer.\n\tRequestedAlgorithms []string\n\t// SupportedAlgorithms lists the algorithms supported on our side.\n\tSupportedAlgorithms []string\n}\n\nfunc (a *AlgorithmNegotiationError) Error() string {\n\treturn fmt.Sprintf(\"ssh: no common algorithm for %s; we offered: %v, peer offered: %v\",\n\t\ta.What, a.SupportedAlgorithms, a.RequestedAlgorithms)\n}\n\n// DirectionAlgorithms defines the algorithms negotiated in one direction\n// (either read or write).\ntype DirectionAlgorithms struct {\n\tCipher      string\n\tMAC         string\n\tcompression string\n}\n\n// rekeyBytes returns a rekeying intervals in bytes.\nfunc (a *DirectionAlgorithms) rekeyBytes() int64 {\n\t// According to RFC 4344 block ciphers should rekey after\n\t// 2^(BLOCKSIZE/4) blocks. For all AES flavors BLOCKSIZE is\n\t// 128.\n\tswitch a.Cipher {\n\tcase CipherAES128CTR, CipherAES192CTR, CipherAES256CTR, CipherAES128GCM, CipherAES256GCM, InsecureCipherAES128CBC:\n\t\treturn 16 * (1 << 32)\n\n\t}\n\n\t// For others, stick with RFC 4253 recommendation to rekey after 1 Gb of data.\n\treturn 1 << 30\n}\n\nvar aeadCiphers = map[string]bool{\n\tCipherAES128GCM:        true,\n\tCipherAES256GCM:        true,\n\tCipherChaCha20Poly1305: true,\n}\n\nfunc findAgreedAlgorithms(isClient bool, clientKexInit, serverKexInit *kexInitMsg) (algs *NegotiatedAlgorithms, err error) {\n\tresult := &NegotiatedAlgorithms{}\n\n\tresult.KeyExchange, err = findCommon(\"key exchange\", clientKexInit.KexAlgos, serverKexInit.KexAlgos, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tresult.HostKey, err = findCommon(\"host key\", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tstoc, ctos := &result.Write, &result.Read\n\tif isClient {\n\t\tctos, stoc = stoc, ctos\n\t}\n\n\tctos.Cipher, err = findCommon(\"client to server cipher\", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tstoc.Cipher, err = findCommon(\"server to client cipher\", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif !aeadCiphers[ctos.Cipher] {\n\t\tctos.MAC, err = findCommon(\"client to server MAC\", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer, isClient)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif !aeadCiphers[stoc.Cipher] {\n\t\tstoc.MAC, err = findCommon(\"server to client MAC\", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient, isClient)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tctos.compression, err = findCommon(\"client to server compression\", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tstoc.compression, err = findCommon(\"server to client compression\", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient, isClient)\n\tif err != nil {\n\t\treturn\n\t}\n\n\treturn result, nil\n}\n\n// If rekeythreshold is too small, we can't make any progress sending\n// stuff.\nconst minRekeyThreshold uint64 = 256\n\n// Config contains configuration data common to both ServerConfig and\n// ClientConfig.\ntype Config struct {\n\t// Rand provides the source of entropy for cryptographic\n\t// primitives. If Rand is nil, the cryptographic random reader\n\t// in package crypto/rand will be used.\n\tRand io.Reader\n\n\t// The maximum number of bytes sent or received after which a\n\t// new key is negotiated. It must be at least 256. If\n\t// unspecified, a size suitable for the chosen cipher is used.\n\tRekeyThreshold uint64\n\n\t// The allowed key exchanges algorithms. If unspecified then a default set\n\t// of algorithms is used. Unsupported values are silently ignored.\n\tKeyExchanges []string\n\n\t// The allowed cipher algorithms. If unspecified then a sensible default is\n\t// used. Unsupported values are silently ignored.\n\tCiphers []string\n\n\t// The allowed MAC algorithms. If unspecified then a sensible default is\n\t// used. Unsupported values are silently ignored.\n\tMACs []string\n}\n\n// SetDefaults sets sensible values for unset fields in config. This is\n// exported for testing: Configs passed to SSH functions are copied and have\n// default values set automatically.\nfunc (c *Config) SetDefaults() {\n\tif c.Rand == nil {\n\t\tc.Rand = rand.Reader\n\t}\n\tif c.Ciphers == nil {\n\t\tc.Ciphers = defaultCiphers\n\t}\n\tvar ciphers []string\n\tfor _, c := range c.Ciphers {\n\t\tif cipherModes[c] != nil {\n\t\t\t// Ignore the cipher if we have no cipherModes definition.\n\t\t\tciphers = append(ciphers, c)\n\t\t}\n\t}\n\tc.Ciphers = ciphers\n\n\tif c.KeyExchanges == nil {\n\t\tc.KeyExchanges = defaultKexAlgos\n\t}\n\tvar kexs []string\n\tfor _, k := range c.KeyExchanges {\n\t\tif kexAlgoMap[k] != nil {\n\t\t\t// Ignore the KEX if we have no kexAlgoMap definition.\n\t\t\tkexs = append(kexs, k)\n\t\t\tif k == KeyExchangeCurve25519 && !slices.Contains(c.KeyExchanges, keyExchangeCurve25519LibSSH) {\n\t\t\t\tkexs = append(kexs, keyExchangeCurve25519LibSSH)\n\t\t\t}\n\t\t}\n\t}\n\tc.KeyExchanges = kexs\n\n\tif c.MACs == nil {\n\t\tc.MACs = defaultMACs\n\t}\n\tvar macs []string\n\tfor _, m := range c.MACs {\n\t\tif macModes[m] != nil {\n\t\t\t// Ignore the MAC if we have no macModes definition.\n\t\t\tmacs = append(macs, m)\n\t\t}\n\t}\n\tc.MACs = macs\n\n\tif c.RekeyThreshold == 0 {\n\t\t// cipher specific default\n\t} else if c.RekeyThreshold < minRekeyThreshold {\n\t\tc.RekeyThreshold = minRekeyThreshold\n\t} else if c.RekeyThreshold >= math.MaxInt64 {\n\t\t// Avoid weirdness if somebody uses -1 as a threshold.\n\t\tc.RekeyThreshold = math.MaxInt64\n\t}\n}\n\n// buildDataSignedForAuth returns the data that is signed in order to prove\n// possession of a private key. See RFC 4252, section 7. algo is the advertised\n// algorithm, and may be a certificate type.\nfunc buildDataSignedForAuth(sessionID []byte, req userAuthRequestMsg, algo string, pubKey []byte) []byte {\n\tdata := struct {\n\t\tSession []byte\n\t\tType    byte\n\t\tUser    string\n\t\tService string\n\t\tMethod  string\n\t\tSign    bool\n\t\tAlgo    string\n\t\tPubKey  []byte\n\t}{\n\t\tsessionID,\n\t\tmsgUserAuthRequest,\n\t\treq.User,\n\t\treq.Service,\n\t\treq.Method,\n\t\ttrue,\n\t\talgo,\n\t\tpubKey,\n\t}\n\treturn Marshal(data)\n}\n\nfunc appendU16(buf []byte, n uint16) []byte {\n\treturn append(buf, byte(n>>8), byte(n))\n}\n\nfunc appendU32(buf []byte, n uint32) []byte {\n\treturn append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n))\n}\n\nfunc appendU64(buf []byte, n uint64) []byte {\n\treturn append(buf,\n\t\tbyte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32),\n\t\tbyte(n>>24), byte(n>>16), byte(n>>8), byte(n))\n}\n\nfunc appendInt(buf []byte, n int) []byte {\n\treturn appendU32(buf, uint32(n))\n}\n\nfunc appendString(buf []byte, s string) []byte {\n\tbuf = appendU32(buf, uint32(len(s)))\n\tbuf = append(buf, s...)\n\treturn buf\n}\n\nfunc appendBool(buf []byte, b bool) []byte {\n\tif b {\n\t\treturn append(buf, 1)\n\t}\n\treturn append(buf, 0)\n}\n\n// newCond is a helper to hide the fact that there is no usable zero\n// value for sync.Cond.\nfunc newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) }\n\n// window represents the buffer available to clients\n// wishing to write to a channel.\ntype window struct {\n\t*sync.Cond\n\twin          uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1\n\twriteWaiters int\n\tclosed       bool\n}\n\n// add adds win to the amount of window available\n// for consumers.\nfunc (w *window) add(win uint32) bool {\n\t// a zero sized window adjust is a noop.\n\tif win == 0 {\n\t\treturn true\n\t}\n\tw.L.Lock()\n\tif w.win+win < win {\n\t\tw.L.Unlock()\n\t\treturn false\n\t}\n\tw.win += win\n\t// It is unusual that multiple goroutines would be attempting to reserve\n\t// window space, but not guaranteed. Use broadcast to notify all waiters\n\t// that additional window is available.\n\tw.Broadcast()\n\tw.L.Unlock()\n\treturn true\n}\n\n// close sets the window to closed, so all reservations fail\n// immediately.\nfunc (w *window) close() {\n\tw.L.Lock()\n\tw.closed = true\n\tw.Broadcast()\n\tw.L.Unlock()\n}\n\n// reserve reserves win from the available window capacity.\n// If no capacity remains, reserve will block. reserve may\n// return less than requested.\nfunc (w *window) reserve(win uint32) (uint32, error) {\n\tvar err error\n\tw.L.Lock()\n\tw.writeWaiters++\n\tw.Broadcast()\n\tfor w.win == 0 && !w.closed {\n\t\tw.Wait()\n\t}\n\tw.writeWaiters--\n\tif w.win < win {\n\t\twin = w.win\n\t}\n\tw.win -= win\n\tif w.closed {\n\t\terr = io.EOF\n\t}\n\tw.L.Unlock()\n\treturn win, err\n}\n\n// waitWriterBlocked waits until some goroutine is blocked for further\n// writes. It is used in tests only.\nfunc (w *window) waitWriterBlocked() {\n\tw.Cond.L.Lock()\n\tfor w.writeWaiters == 0 {\n\t\tw.Cond.Wait()\n\t}\n\tw.Cond.L.Unlock()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/connection.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\npackage ssh\n\nimport (\n\t\"fmt\"\n\t\"net\"\n)\n\n// OpenChannelError is returned if the other side rejects an\n// OpenChannel request.\ntype OpenChannelError struct {\n\tReason  RejectionReason\n\tMessage string\n}\n\nfunc (e *OpenChannelError) Error() string {\n\treturn fmt.Sprintf(\"ssh: rejected: %s (%s)\", e.Reason, e.Message)\n}\n\n// ConnMetadata holds metadata for the connection.\ntype ConnMetadata interface {\n\t// User returns the user ID for this connection.\n\tUser() string\n\n\t// SessionID returns the session hash, also denoted by H.\n\tSessionID() []byte\n\n\t// ClientVersion returns the client's version string as hashed\n\t// into the session ID.\n\tClientVersion() []byte\n\n\t// ServerVersion returns the server's version string as hashed\n\t// into the session ID.\n\tServerVersion() []byte\n\n\t// RemoteAddr returns the remote address for this connection.\n\tRemoteAddr() net.Addr\n\n\t// LocalAddr returns the local address for this connection.\n\tLocalAddr() net.Addr\n}\n\n// Conn represents an SSH connection for both server and client roles.\n// Conn is the basis for implementing an application layer, such\n// as ClientConn, which implements the traditional shell access for\n// clients.\ntype Conn interface {\n\tConnMetadata\n\n\t// SendRequest sends a global request, and returns the\n\t// reply. If wantReply is true, it returns the response status\n\t// and payload. See also RFC 4254, section 4.\n\tSendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error)\n\n\t// OpenChannel tries to open an channel. If the request is\n\t// rejected, it returns *OpenChannelError. On success it returns\n\t// the SSH Channel and a Go channel for incoming, out-of-band\n\t// requests. The Go channel must be serviced, or the\n\t// connection will hang.\n\tOpenChannel(name string, data []byte) (Channel, <-chan *Request, error)\n\n\t// Close closes the underlying network connection\n\tClose() error\n\n\t// Wait blocks until the connection has shut down, and returns the\n\t// error causing the shutdown.\n\tWait() error\n\n\t// TODO(hanwen): consider exposing:\n\t//   RequestKeyChange\n\t//   Disconnect\n}\n\n// AlgorithmsConnMetadata is a ConnMetadata that can return the algorithms\n// negotiated between client and server.\ntype AlgorithmsConnMetadata interface {\n\tConnMetadata\n\tAlgorithms() NegotiatedAlgorithms\n}\n\n// DiscardRequests consumes and rejects all requests from the\n// passed-in channel.\nfunc DiscardRequests(in <-chan *Request) {\n\tfor req := range in {\n\t\tif req.WantReply {\n\t\t\treq.Reply(false, nil)\n\t\t}\n\t}\n}\n\n// A connection represents an incoming connection.\ntype connection struct {\n\ttransport *handshakeTransport\n\tsshConn\n\n\t// The connection protocol.\n\t*mux\n}\n\nfunc (c *connection) Close() error {\n\treturn c.sshConn.conn.Close()\n}\n\n// sshConn provides net.Conn metadata, but disallows direct reads and\n// writes.\ntype sshConn struct {\n\tconn net.Conn\n\n\tuser          string\n\tsessionID     []byte\n\tclientVersion []byte\n\tserverVersion []byte\n\talgorithms    NegotiatedAlgorithms\n}\n\nfunc dup(src []byte) []byte {\n\tdst := make([]byte, len(src))\n\tcopy(dst, src)\n\treturn dst\n}\n\nfunc (c *sshConn) User() string {\n\treturn c.user\n}\n\nfunc (c *sshConn) RemoteAddr() net.Addr {\n\treturn c.conn.RemoteAddr()\n}\n\nfunc (c *sshConn) Close() error {\n\treturn c.conn.Close()\n}\n\nfunc (c *sshConn) LocalAddr() net.Addr {\n\treturn c.conn.LocalAddr()\n}\n\nfunc (c *sshConn) SessionID() []byte {\n\treturn dup(c.sessionID)\n}\n\nfunc (c *sshConn) ClientVersion() []byte {\n\treturn dup(c.clientVersion)\n}\n\nfunc (c *sshConn) ServerVersion() []byte {\n\treturn dup(c.serverVersion)\n}\n\nfunc (c *sshConn) Algorithms() NegotiatedAlgorithms {\n\treturn c.algorithms\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/doc.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/*\nPackage ssh implements an SSH client and server.\n\nSSH is a transport security protocol, an authentication protocol and a\nfamily of application protocols. The most typical application level\nprotocol is a remote shell and this is specifically implemented.  However,\nthe multiplexed nature of SSH is exposed to users that wish to support\nothers.\n\nReferences:\n\n\t[PROTOCOL]: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=HEAD\n\t[PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD\n\t[SSH-PARAMETERS]:    http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1\n\t[SSH-CERTS]:\thttps://datatracker.ietf.org/doc/html/draft-miller-ssh-cert-01\n\t[FIPS 140-3 mode]: https://go.dev/doc/security/fips140\n\nThis package does not fall under the stability promise of the Go language itself,\nso its API may be changed when pressing needs arise.\n\n# FIPS 140-3 mode\n\nWhen the program is in [FIPS 140-3 mode], this package behaves as if only SP\n800-140C and SP 800-140D approved cipher suites, signature algorithms,\ncertificate public key types and sizes, and key exchange and derivation\nalgorithms were implemented. Others are silently ignored and not negotiated, or\nrejected. This set may depend on the algorithms supported by the FIPS 140-3 Go\nCryptographic Module selected with GOFIPS140, and may change across Go versions.\n*/\npackage ssh\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/handshake.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\npackage ssh\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net\"\n\t\"slices\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// debugHandshake, if set, prints messages sent and received.  Key\n// exchange messages are printed as if DH were used, so the debug\n// messages are wrong when using ECDH.\nconst debugHandshake = false\n\n// chanSize sets the amount of buffering SSH connections. This is\n// primarily for testing: setting chanSize=0 uncovers deadlocks more\n// quickly.\nconst chanSize = 16\n\n// maxPendingPackets sets the maximum number of packets to queue while waiting\n// for KEX to complete. This limits the total pending data to maxPendingPackets\n// * maxPacket bytes, which is ~16.8MB.\nconst maxPendingPackets = 64\n\n// keyingTransport is a packet based transport that supports key\n// changes. It need not be thread-safe. It should pass through\n// msgNewKeys in both directions.\ntype keyingTransport interface {\n\tpacketConn\n\n\t// prepareKeyChange sets up a key change. The key change for a\n\t// direction will be effected if a msgNewKeys message is sent\n\t// or received.\n\tprepareKeyChange(*NegotiatedAlgorithms, *kexResult) error\n\n\t// setStrictMode sets the strict KEX mode, notably triggering\n\t// sequence number resets on sending or receiving msgNewKeys.\n\t// If the sequence number is already > 1 when setStrictMode\n\t// is called, an error is returned.\n\tsetStrictMode() error\n\n\t// setInitialKEXDone indicates to the transport that the initial key exchange\n\t// was completed\n\tsetInitialKEXDone()\n}\n\n// handshakeTransport implements rekeying on top of a keyingTransport\n// and offers a thread-safe writePacket() interface.\ntype handshakeTransport struct {\n\tconn   keyingTransport\n\tconfig *Config\n\n\tserverVersion []byte\n\tclientVersion []byte\n\n\t// hostKeys is non-empty if we are the server. In that case,\n\t// it contains all host keys that can be used to sign the\n\t// connection.\n\thostKeys []Signer\n\n\t// publicKeyAuthAlgorithms is non-empty if we are the server. In that case,\n\t// it contains the supported client public key authentication algorithms.\n\tpublicKeyAuthAlgorithms []string\n\n\t// hostKeyAlgorithms is non-empty if we are the client. In that case,\n\t// we accept these key types from the server as host key.\n\thostKeyAlgorithms []string\n\n\t// On read error, incoming is closed, and readError is set.\n\tincoming  chan []byte\n\treadError error\n\n\tmu sync.Mutex\n\t// Condition for the above mutex. It is used to notify a completed key\n\t// exchange or a write failure. Writes can wait for this condition while a\n\t// key exchange is in progress.\n\twriteCond      *sync.Cond\n\twriteError     error\n\tsentInitPacket []byte\n\tsentInitMsg    *kexInitMsg\n\t// Used to queue writes when a key exchange is in progress. The length is\n\t// limited by pendingPacketsSize. Once full, writes will block until the key\n\t// exchange is completed or an error occurs. If not empty, it is emptied\n\t// all at once when the key exchange is completed in kexLoop.\n\tpendingPackets   [][]byte\n\twritePacketsLeft uint32\n\twriteBytesLeft   int64\n\tuserAuthComplete bool // whether the user authentication phase is complete\n\n\t// If the read loop wants to schedule a kex, it pings this\n\t// channel, and the write loop will send out a kex\n\t// message.\n\trequestKex chan struct{}\n\n\t// If the other side requests or confirms a kex, its kexInit\n\t// packet is sent here for the write loop to find it.\n\tstartKex    chan *pendingKex\n\tkexLoopDone chan struct{} // closed (with writeError non-nil) when kexLoop exits\n\n\t// data for host key checking\n\thostKeyCallback HostKeyCallback\n\tdialAddress     string\n\tremoteAddr      net.Addr\n\n\t// bannerCallback is non-empty if we are the client and it has been set in\n\t// ClientConfig. In that case it is called during the user authentication\n\t// dance to handle a custom server's message.\n\tbannerCallback BannerCallback\n\n\t// Algorithms agreed in the last key exchange.\n\talgorithms *NegotiatedAlgorithms\n\n\t// Counters exclusively owned by readLoop.\n\treadPacketsLeft uint32\n\treadBytesLeft   int64\n\n\t// The session ID or nil if first kex did not complete yet.\n\tsessionID []byte\n\n\t// strictMode indicates if the other side of the handshake indicated\n\t// that we should be following the strict KEX protocol restrictions.\n\tstrictMode bool\n}\n\ntype pendingKex struct {\n\totherInit []byte\n\tdone      chan error\n}\n\nfunc newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport {\n\tt := &handshakeTransport{\n\t\tconn:          conn,\n\t\tserverVersion: serverVersion,\n\t\tclientVersion: clientVersion,\n\t\tincoming:      make(chan []byte, chanSize),\n\t\trequestKex:    make(chan struct{}, 1),\n\t\tstartKex:      make(chan *pendingKex),\n\t\tkexLoopDone:   make(chan struct{}),\n\n\t\tconfig: config,\n\t}\n\tt.writeCond = sync.NewCond(&t.mu)\n\tt.resetReadThresholds()\n\tt.resetWriteThresholds()\n\n\t// We always start with a mandatory key exchange.\n\tt.requestKex <- struct{}{}\n\treturn t\n}\n\nfunc newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport {\n\tt := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion)\n\tt.dialAddress = dialAddr\n\tt.remoteAddr = addr\n\tt.hostKeyCallback = config.HostKeyCallback\n\tt.bannerCallback = config.BannerCallback\n\tif config.HostKeyAlgorithms != nil {\n\t\tt.hostKeyAlgorithms = config.HostKeyAlgorithms\n\t} else {\n\t\tt.hostKeyAlgorithms = defaultHostKeyAlgos\n\t}\n\tgo t.readLoop()\n\tgo t.kexLoop()\n\treturn t\n}\n\nfunc newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport {\n\tt := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion)\n\tt.hostKeys = config.hostKeys\n\tt.publicKeyAuthAlgorithms = config.PublicKeyAuthAlgorithms\n\tgo t.readLoop()\n\tgo t.kexLoop()\n\treturn t\n}\n\nfunc (t *handshakeTransport) getSessionID() []byte {\n\treturn t.sessionID\n}\n\nfunc (t *handshakeTransport) getAlgorithms() NegotiatedAlgorithms {\n\treturn *t.algorithms\n}\n\n// waitSession waits for the session to be established. This should be\n// the first thing to call after instantiating handshakeTransport.\nfunc (t *handshakeTransport) waitSession() error {\n\tp, err := t.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif p[0] != msgNewKeys {\n\t\treturn fmt.Errorf(\"ssh: first packet should be msgNewKeys\")\n\t}\n\n\treturn nil\n}\n\nfunc (t *handshakeTransport) id() string {\n\tif len(t.hostKeys) > 0 {\n\t\treturn \"server\"\n\t}\n\treturn \"client\"\n}\n\nfunc (t *handshakeTransport) printPacket(p []byte, write bool) {\n\taction := \"got\"\n\tif write {\n\t\taction = \"sent\"\n\t}\n\n\tif p[0] == msgChannelData || p[0] == msgChannelExtendedData {\n\t\tlog.Printf(\"%s %s data (packet %d bytes)\", t.id(), action, len(p))\n\t} else {\n\t\tmsg, err := decode(p)\n\t\tlog.Printf(\"%s %s %T %v (%v)\", t.id(), action, msg, msg, err)\n\t}\n}\n\nfunc (t *handshakeTransport) readPacket() ([]byte, error) {\n\tp, ok := <-t.incoming\n\tif !ok {\n\t\treturn nil, t.readError\n\t}\n\treturn p, nil\n}\n\nfunc (t *handshakeTransport) readLoop() {\n\tfirst := true\n\tfor {\n\t\tp, err := t.readOnePacket(first)\n\t\tfirst = false\n\t\tif err != nil {\n\t\t\tt.readError = err\n\t\t\tclose(t.incoming)\n\t\t\tbreak\n\t\t}\n\t\t// If this is the first kex, and strict KEX mode is enabled,\n\t\t// we don't ignore any messages, as they may be used to manipulate\n\t\t// the packet sequence numbers.\n\t\tif !(t.sessionID == nil && t.strictMode) && (p[0] == msgIgnore || p[0] == msgDebug) {\n\t\t\tcontinue\n\t\t}\n\t\tt.incoming <- p\n\t}\n\n\t// Stop writers too.\n\tt.recordWriteError(t.readError)\n\n\t// Unblock the writer should it wait for this.\n\tclose(t.startKex)\n\n\t// Don't close t.requestKex; it's also written to from writePacket.\n}\n\nfunc (t *handshakeTransport) pushPacket(p []byte) error {\n\tif debugHandshake {\n\t\tt.printPacket(p, true)\n\t}\n\treturn t.conn.writePacket(p)\n}\n\nfunc (t *handshakeTransport) getWriteError() error {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\treturn t.writeError\n}\n\nfunc (t *handshakeTransport) recordWriteError(err error) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.writeError == nil && err != nil {\n\t\tt.writeError = err\n\t\tt.writeCond.Broadcast()\n\t}\n}\n\nfunc (t *handshakeTransport) requestKeyExchange() {\n\tselect {\n\tcase t.requestKex <- struct{}{}:\n\tdefault:\n\t\t// something already requested a kex, so do nothing.\n\t}\n}\n\nfunc (t *handshakeTransport) resetWriteThresholds() {\n\tt.writePacketsLeft = packetRekeyThreshold\n\tif t.config.RekeyThreshold > 0 {\n\t\tt.writeBytesLeft = int64(t.config.RekeyThreshold)\n\t} else if t.algorithms != nil {\n\t\tt.writeBytesLeft = t.algorithms.Write.rekeyBytes()\n\t} else {\n\t\tt.writeBytesLeft = 1 << 30\n\t}\n}\n\nfunc (t *handshakeTransport) kexLoop() {\n\nwrite:\n\tfor t.getWriteError() == nil {\n\t\tvar request *pendingKex\n\t\tvar sent bool\n\n\t\tfor request == nil || !sent {\n\t\t\tvar ok bool\n\t\t\tselect {\n\t\t\tcase request, ok = <-t.startKex:\n\t\t\t\tif !ok {\n\t\t\t\t\tbreak write\n\t\t\t\t}\n\t\t\tcase <-t.requestKex:\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif !sent {\n\t\t\t\tif err := t.sendKexInit(); err != nil {\n\t\t\t\t\tt.recordWriteError(err)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tsent = true\n\t\t\t}\n\t\t}\n\n\t\tif err := t.getWriteError(); err != nil {\n\t\t\tif request != nil {\n\t\t\t\trequest.done <- err\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\t// We're not servicing t.requestKex, but that is OK:\n\t\t// we never block on sending to t.requestKex.\n\n\t\t// We're not servicing t.startKex, but the remote end\n\t\t// has just sent us a kexInitMsg, so it can't send\n\t\t// another key change request, until we close the done\n\t\t// channel on the pendingKex request.\n\n\t\terr := t.enterKeyExchange(request.otherInit)\n\n\t\tt.mu.Lock()\n\t\tt.writeError = err\n\t\tt.sentInitPacket = nil\n\t\tt.sentInitMsg = nil\n\n\t\tt.resetWriteThresholds()\n\n\t\t// we have completed the key exchange. Since the\n\t\t// reader is still blocked, it is safe to clear out\n\t\t// the requestKex channel. This avoids the situation\n\t\t// where: 1) we consumed our own request for the\n\t\t// initial kex, and 2) the kex from the remote side\n\t\t// caused another send on the requestKex channel,\n\tclear:\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-t.requestKex:\n\t\t\t\t//\n\t\t\tdefault:\n\t\t\t\tbreak clear\n\t\t\t}\n\t\t}\n\n\t\trequest.done <- t.writeError\n\n\t\t// kex finished. Push packets that we received while\n\t\t// the kex was in progress. Don't look at t.startKex\n\t\t// and don't increment writtenSinceKex: if we trigger\n\t\t// another kex while we are still busy with the last\n\t\t// one, things will become very confusing.\n\t\tfor _, p := range t.pendingPackets {\n\t\t\tt.writeError = t.pushPacket(p)\n\t\t\tif t.writeError != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tt.pendingPackets = t.pendingPackets[:0]\n\t\t// Unblock writePacket if waiting for KEX.\n\t\tt.writeCond.Broadcast()\n\t\tt.mu.Unlock()\n\t}\n\n\t// Unblock reader.\n\tt.conn.Close()\n\n\t// drain startKex channel. We don't service t.requestKex\n\t// because nobody does blocking sends there.\n\tfor request := range t.startKex {\n\t\trequest.done <- t.getWriteError()\n\t}\n\n\t// Mark that the loop is done so that Close can return.\n\tclose(t.kexLoopDone)\n}\n\n// The protocol uses uint32 for packet counters, so we can't let them\n// reach 1<<32.  We will actually read and write more packets than\n// this, though: the other side may send more packets, and after we\n// hit this limit on writing we will send a few more packets for the\n// key exchange itself.\nconst packetRekeyThreshold = (1 << 31)\n\nfunc (t *handshakeTransport) resetReadThresholds() {\n\tt.readPacketsLeft = packetRekeyThreshold\n\tif t.config.RekeyThreshold > 0 {\n\t\tt.readBytesLeft = int64(t.config.RekeyThreshold)\n\t} else if t.algorithms != nil {\n\t\tt.readBytesLeft = t.algorithms.Read.rekeyBytes()\n\t} else {\n\t\tt.readBytesLeft = 1 << 30\n\t}\n}\n\nfunc (t *handshakeTransport) readOnePacket(first bool) ([]byte, error) {\n\tp, err := t.conn.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif t.readPacketsLeft > 0 {\n\t\tt.readPacketsLeft--\n\t} else {\n\t\tt.requestKeyExchange()\n\t}\n\n\tif t.readBytesLeft > 0 {\n\t\tt.readBytesLeft -= int64(len(p))\n\t} else {\n\t\tt.requestKeyExchange()\n\t}\n\n\tif debugHandshake {\n\t\tt.printPacket(p, false)\n\t}\n\n\tif first && p[0] != msgKexInit {\n\t\treturn nil, fmt.Errorf(\"ssh: first packet should be msgKexInit\")\n\t}\n\n\tif p[0] != msgKexInit {\n\t\treturn p, nil\n\t}\n\n\tfirstKex := t.sessionID == nil\n\n\tkex := pendingKex{\n\t\tdone:      make(chan error, 1),\n\t\totherInit: p,\n\t}\n\tt.startKex <- &kex\n\terr = <-kex.done\n\n\tif debugHandshake {\n\t\tlog.Printf(\"%s exited key exchange (first %v), err %v\", t.id(), firstKex, err)\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tt.resetReadThresholds()\n\n\t// By default, a key exchange is hidden from higher layers by\n\t// translating it into msgIgnore.\n\tsuccessPacket := []byte{msgIgnore}\n\tif firstKex {\n\t\t// sendKexInit() for the first kex waits for\n\t\t// msgNewKeys so the authentication process is\n\t\t// guaranteed to happen over an encrypted transport.\n\t\tsuccessPacket = []byte{msgNewKeys}\n\t}\n\n\treturn successPacket, nil\n}\n\nconst (\n\tkexStrictClient = \"kex-strict-c-v00@openssh.com\"\n\tkexStrictServer = \"kex-strict-s-v00@openssh.com\"\n)\n\n// sendKexInit sends a key change message.\nfunc (t *handshakeTransport) sendKexInit() error {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.sentInitMsg != nil {\n\t\t// kexInits may be sent either in response to the other side,\n\t\t// or because our side wants to initiate a key change, so we\n\t\t// may have already sent a kexInit. In that case, don't send a\n\t\t// second kexInit.\n\t\treturn nil\n\t}\n\n\tmsg := &kexInitMsg{\n\t\tCiphersClientServer:     t.config.Ciphers,\n\t\tCiphersServerClient:     t.config.Ciphers,\n\t\tMACsClientServer:        t.config.MACs,\n\t\tMACsServerClient:        t.config.MACs,\n\t\tCompressionClientServer: supportedCompressions,\n\t\tCompressionServerClient: supportedCompressions,\n\t}\n\tio.ReadFull(t.config.Rand, msg.Cookie[:])\n\n\t// We mutate the KexAlgos slice, in order to add the kex-strict extension algorithm,\n\t// and possibly to add the ext-info extension algorithm. Since the slice may be the\n\t// user owned KeyExchanges, we create our own slice in order to avoid using user\n\t// owned memory by mistake.\n\tmsg.KexAlgos = make([]string, 0, len(t.config.KeyExchanges)+2) // room for kex-strict and ext-info\n\tmsg.KexAlgos = append(msg.KexAlgos, t.config.KeyExchanges...)\n\n\tisServer := len(t.hostKeys) > 0\n\tif isServer {\n\t\tfor _, k := range t.hostKeys {\n\t\t\t// If k is a MultiAlgorithmSigner, we restrict the signature\n\t\t\t// algorithms. If k is a AlgorithmSigner, presume it supports all\n\t\t\t// signature algorithms associated with the key format. If k is not\n\t\t\t// an AlgorithmSigner, we can only assume it only supports the\n\t\t\t// algorithms that matches the key format. (This means that Sign\n\t\t\t// can't pick a different default).\n\t\t\tkeyFormat := k.PublicKey().Type()\n\n\t\t\tswitch s := k.(type) {\n\t\t\tcase MultiAlgorithmSigner:\n\t\t\t\tfor _, algo := range algorithmsForKeyFormat(keyFormat) {\n\t\t\t\t\tif slices.Contains(s.Algorithms(), underlyingAlgo(algo)) {\n\t\t\t\t\t\tmsg.ServerHostKeyAlgos = append(msg.ServerHostKeyAlgos, algo)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase AlgorithmSigner:\n\t\t\t\tmsg.ServerHostKeyAlgos = append(msg.ServerHostKeyAlgos, algorithmsForKeyFormat(keyFormat)...)\n\t\t\tdefault:\n\t\t\t\tmsg.ServerHostKeyAlgos = append(msg.ServerHostKeyAlgos, keyFormat)\n\t\t\t}\n\t\t}\n\n\t\tif t.sessionID == nil {\n\t\t\tmsg.KexAlgos = append(msg.KexAlgos, kexStrictServer)\n\t\t}\n\t} else {\n\t\tmsg.ServerHostKeyAlgos = t.hostKeyAlgorithms\n\n\t\t// As a client we opt in to receiving SSH_MSG_EXT_INFO so we know what\n\t\t// algorithms the server supports for public key authentication. See RFC\n\t\t// 8308, Section 2.1.\n\t\t//\n\t\t// We also send the strict KEX mode extension algorithm, in order to opt\n\t\t// into the strict KEX mode.\n\t\tif firstKeyExchange := t.sessionID == nil; firstKeyExchange {\n\t\t\tmsg.KexAlgos = append(msg.KexAlgos, \"ext-info-c\")\n\t\t\tmsg.KexAlgos = append(msg.KexAlgos, kexStrictClient)\n\t\t}\n\n\t}\n\n\tpacket := Marshal(msg)\n\n\t// writePacket destroys the contents, so save a copy.\n\tpacketCopy := make([]byte, len(packet))\n\tcopy(packetCopy, packet)\n\n\tif err := t.pushPacket(packetCopy); err != nil {\n\t\treturn err\n\t}\n\n\tt.sentInitMsg = msg\n\tt.sentInitPacket = packet\n\n\treturn nil\n}\n\nvar errSendBannerPhase = errors.New(\"ssh: SendAuthBanner outside of authentication phase\")\n\nfunc (t *handshakeTransport) writePacket(p []byte) error {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\tswitch p[0] {\n\tcase msgKexInit:\n\t\treturn errors.New(\"ssh: only handshakeTransport can send kexInit\")\n\tcase msgNewKeys:\n\t\treturn errors.New(\"ssh: only handshakeTransport can send newKeys\")\n\tcase msgUserAuthBanner:\n\t\tif t.userAuthComplete {\n\t\t\treturn errSendBannerPhase\n\t\t}\n\tcase msgUserAuthSuccess:\n\t\tt.userAuthComplete = true\n\t}\n\n\tif t.writeError != nil {\n\t\treturn t.writeError\n\t}\n\n\tif t.sentInitMsg != nil {\n\t\tif len(t.pendingPackets) < maxPendingPackets {\n\t\t\t// Copy the packet so the writer can reuse the buffer.\n\t\t\tcp := make([]byte, len(p))\n\t\t\tcopy(cp, p)\n\t\t\tt.pendingPackets = append(t.pendingPackets, cp)\n\t\t\treturn nil\n\t\t}\n\t\tfor t.sentInitMsg != nil {\n\t\t\t// Block and wait for KEX to complete or an error.\n\t\t\tt.writeCond.Wait()\n\t\t\tif t.writeError != nil {\n\t\t\t\treturn t.writeError\n\t\t\t}\n\t\t}\n\t}\n\n\tif t.writeBytesLeft > 0 {\n\t\tt.writeBytesLeft -= int64(len(p))\n\t} else {\n\t\tt.requestKeyExchange()\n\t}\n\n\tif t.writePacketsLeft > 0 {\n\t\tt.writePacketsLeft--\n\t} else {\n\t\tt.requestKeyExchange()\n\t}\n\n\tif err := t.pushPacket(p); err != nil {\n\t\tt.writeError = err\n\t\tt.writeCond.Broadcast()\n\t}\n\n\treturn nil\n}\n\nfunc (t *handshakeTransport) Close() error {\n\t// Close the connection. This should cause the readLoop goroutine to wake up\n\t// and close t.startKex, which will shut down kexLoop if running.\n\terr := t.conn.Close()\n\n\t// Wait for the kexLoop goroutine to complete.\n\t// At that point we know that the readLoop goroutine is complete too,\n\t// because kexLoop itself waits for readLoop to close the startKex channel.\n\t<-t.kexLoopDone\n\n\treturn err\n}\n\nfunc (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error {\n\tif debugHandshake {\n\t\tlog.Printf(\"%s entered key exchange\", t.id())\n\t}\n\n\totherInit := &kexInitMsg{}\n\tif err := Unmarshal(otherInitPacket, otherInit); err != nil {\n\t\treturn err\n\t}\n\n\tmagics := handshakeMagics{\n\t\tclientVersion: t.clientVersion,\n\t\tserverVersion: t.serverVersion,\n\t\tclientKexInit: otherInitPacket,\n\t\tserverKexInit: t.sentInitPacket,\n\t}\n\n\tclientInit := otherInit\n\tserverInit := t.sentInitMsg\n\tisClient := len(t.hostKeys) == 0\n\tif isClient {\n\t\tclientInit, serverInit = serverInit, clientInit\n\n\t\tmagics.clientKexInit = t.sentInitPacket\n\t\tmagics.serverKexInit = otherInitPacket\n\t}\n\n\tvar err error\n\tt.algorithms, err = findAgreedAlgorithms(isClient, clientInit, serverInit)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif t.sessionID == nil && ((isClient && slices.Contains(serverInit.KexAlgos, kexStrictServer)) || (!isClient && slices.Contains(clientInit.KexAlgos, kexStrictClient))) {\n\t\tt.strictMode = true\n\t\tif err := t.conn.setStrictMode(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// We don't send FirstKexFollows, but we handle receiving it.\n\t//\n\t// RFC 4253 section 7 defines the kex and the agreement method for\n\t// first_kex_packet_follows. It states that the guessed packet\n\t// should be ignored if the \"kex algorithm and/or the host\n\t// key algorithm is guessed wrong (server and client have\n\t// different preferred algorithm), or if any of the other\n\t// algorithms cannot be agreed upon\". The other algorithms have\n\t// already been checked above so the kex algorithm and host key\n\t// algorithm are checked here.\n\tif otherInit.FirstKexFollows && (clientInit.KexAlgos[0] != serverInit.KexAlgos[0] || clientInit.ServerHostKeyAlgos[0] != serverInit.ServerHostKeyAlgos[0]) {\n\t\t// other side sent a kex message for the wrong algorithm,\n\t\t// which we have to ignore.\n\t\tif _, err := t.conn.readPacket(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tkex, ok := kexAlgoMap[t.algorithms.KeyExchange]\n\tif !ok {\n\t\treturn fmt.Errorf(\"ssh: unexpected key exchange algorithm %v\", t.algorithms.KeyExchange)\n\t}\n\n\tvar result *kexResult\n\tif len(t.hostKeys) > 0 {\n\t\tresult, err = t.server(kex, &magics)\n\t} else {\n\t\tresult, err = t.client(kex, &magics)\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfirstKeyExchange := t.sessionID == nil\n\tif firstKeyExchange {\n\t\tt.sessionID = result.H\n\t}\n\tresult.SessionID = t.sessionID\n\n\tif err := t.conn.prepareKeyChange(t.algorithms, result); err != nil {\n\t\treturn err\n\t}\n\tif err = t.conn.writePacket([]byte{msgNewKeys}); err != nil {\n\t\treturn err\n\t}\n\n\t// On the server side, after the first SSH_MSG_NEWKEYS, send a SSH_MSG_EXT_INFO\n\t// message with the server-sig-algs extension if the client supports it. See\n\t// RFC 8308, Sections 2.4 and 3.1, and [PROTOCOL], Section 1.9.\n\tif !isClient && firstKeyExchange && slices.Contains(clientInit.KexAlgos, \"ext-info-c\") {\n\t\tsupportedPubKeyAuthAlgosList := strings.Join(t.publicKeyAuthAlgorithms, \",\")\n\t\textInfo := &extInfoMsg{\n\t\t\tNumExtensions: 2,\n\t\t\tPayload:       make([]byte, 0, 4+15+4+len(supportedPubKeyAuthAlgosList)+4+16+4+1),\n\t\t}\n\t\textInfo.Payload = appendInt(extInfo.Payload, len(\"server-sig-algs\"))\n\t\textInfo.Payload = append(extInfo.Payload, \"server-sig-algs\"...)\n\t\textInfo.Payload = appendInt(extInfo.Payload, len(supportedPubKeyAuthAlgosList))\n\t\textInfo.Payload = append(extInfo.Payload, supportedPubKeyAuthAlgosList...)\n\t\textInfo.Payload = appendInt(extInfo.Payload, len(\"ping@openssh.com\"))\n\t\textInfo.Payload = append(extInfo.Payload, \"ping@openssh.com\"...)\n\t\textInfo.Payload = appendInt(extInfo.Payload, 1)\n\t\textInfo.Payload = append(extInfo.Payload, \"0\"...)\n\t\tif err := t.conn.writePacket(Marshal(extInfo)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif packet, err := t.conn.readPacket(); err != nil {\n\t\treturn err\n\t} else if packet[0] != msgNewKeys {\n\t\treturn unexpectedMessageError(msgNewKeys, packet[0])\n\t}\n\n\tif firstKeyExchange {\n\t\t// Indicates to the transport that the first key exchange is completed\n\t\t// after receiving SSH_MSG_NEWKEYS.\n\t\tt.conn.setInitialKEXDone()\n\t}\n\n\treturn nil\n}\n\n// algorithmSignerWrapper is an AlgorithmSigner that only supports the default\n// key format algorithm.\n//\n// This is technically a violation of the AlgorithmSigner interface, but it\n// should be unreachable given where we use this. Anyway, at least it returns an\n// error instead of panicing or producing an incorrect signature.\ntype algorithmSignerWrapper struct {\n\tSigner\n}\n\nfunc (a algorithmSignerWrapper) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error) {\n\tif algorithm != underlyingAlgo(a.PublicKey().Type()) {\n\t\treturn nil, errors.New(\"ssh: internal error: algorithmSignerWrapper invoked with non-default algorithm\")\n\t}\n\treturn a.Sign(rand, data)\n}\n\nfunc pickHostKey(hostKeys []Signer, algo string) AlgorithmSigner {\n\tfor _, k := range hostKeys {\n\t\tif s, ok := k.(MultiAlgorithmSigner); ok {\n\t\t\tif !slices.Contains(s.Algorithms(), underlyingAlgo(algo)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif algo == k.PublicKey().Type() {\n\t\t\treturn algorithmSignerWrapper{k}\n\t\t}\n\n\t\tk, ok := k.(AlgorithmSigner)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, a := range algorithmsForKeyFormat(k.PublicKey().Type()) {\n\t\t\tif algo == a {\n\t\t\t\treturn k\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *handshakeTransport) server(kex kexAlgorithm, magics *handshakeMagics) (*kexResult, error) {\n\thostKey := pickHostKey(t.hostKeys, t.algorithms.HostKey)\n\tif hostKey == nil {\n\t\treturn nil, errors.New(\"ssh: internal error: negotiated unsupported signature type\")\n\t}\n\n\tr, err := kex.Server(t.conn, t.config.Rand, magics, hostKey, t.algorithms.HostKey)\n\treturn r, err\n}\n\nfunc (t *handshakeTransport) client(kex kexAlgorithm, magics *handshakeMagics) (*kexResult, error) {\n\tresult, err := kex.Client(t.conn, t.config.Rand, magics)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thostKey, err := ParsePublicKey(result.HostKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := verifyHostKeySignature(hostKey, t.algorithms.HostKey, result); err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf/bcrypt_pbkdf.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// Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD.\n//\n// See https://flak.tedunangst.com/post/bcrypt-pbkdf and\n// https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libutil/bcrypt_pbkdf.c.\npackage bcrypt_pbkdf\n\nimport (\n\t\"crypto/sha512\"\n\t\"errors\"\n\t\"golang.org/x/crypto/blowfish\"\n)\n\nconst blockSize = 32\n\n// Key derives a key from the password, salt and rounds count, returning a\n// []byte of length keyLen that can be used as cryptographic key.\nfunc Key(password, salt []byte, rounds, keyLen int) ([]byte, error) {\n\tif rounds < 1 {\n\t\treturn nil, errors.New(\"bcrypt_pbkdf: number of rounds is too small\")\n\t}\n\tif len(password) == 0 {\n\t\treturn nil, errors.New(\"bcrypt_pbkdf: empty password\")\n\t}\n\tif len(salt) == 0 || len(salt) > 1<<20 {\n\t\treturn nil, errors.New(\"bcrypt_pbkdf: bad salt length\")\n\t}\n\tif keyLen > 1024 {\n\t\treturn nil, errors.New(\"bcrypt_pbkdf: keyLen is too large\")\n\t}\n\n\tnumBlocks := (keyLen + blockSize - 1) / blockSize\n\tkey := make([]byte, numBlocks*blockSize)\n\n\th := sha512.New()\n\th.Write(password)\n\tshapass := h.Sum(nil)\n\n\tshasalt := make([]byte, 0, sha512.Size)\n\tcnt, tmp := make([]byte, 4), make([]byte, blockSize)\n\tfor block := 1; block <= numBlocks; block++ {\n\t\th.Reset()\n\t\th.Write(salt)\n\t\tcnt[0] = byte(block >> 24)\n\t\tcnt[1] = byte(block >> 16)\n\t\tcnt[2] = byte(block >> 8)\n\t\tcnt[3] = byte(block)\n\t\th.Write(cnt)\n\t\tbcryptHash(tmp, shapass, h.Sum(shasalt))\n\n\t\tout := make([]byte, blockSize)\n\t\tcopy(out, tmp)\n\t\tfor i := 2; i <= rounds; i++ {\n\t\t\th.Reset()\n\t\t\th.Write(tmp)\n\t\t\tbcryptHash(tmp, shapass, h.Sum(shasalt))\n\t\t\tfor j := 0; j < len(out); j++ {\n\t\t\t\tout[j] ^= tmp[j]\n\t\t\t}\n\t\t}\n\n\t\tfor i, v := range out {\n\t\t\tkey[i*numBlocks+(block-1)] = v\n\t\t}\n\t}\n\treturn key[:keyLen], nil\n}\n\nvar magic = []byte(\"OxychromaticBlowfishSwatDynamite\")\n\nfunc bcryptHash(out, shapass, shasalt []byte) {\n\tc, err := blowfish.NewSaltedCipher(shapass, shasalt)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfor i := 0; i < 64; i++ {\n\t\tblowfish.ExpandKey(shasalt, c)\n\t\tblowfish.ExpandKey(shapass, c)\n\t}\n\tcopy(out, magic)\n\tfor i := 0; i < 32; i += 8 {\n\t\tfor j := 0; j < 64; j++ {\n\t\t\tc.Encrypt(out[i:i+8], out[i:i+8])\n\t\t}\n\t}\n\t// Swap bytes due to different endianness.\n\tfor i := 0; i < 32; i += 4 {\n\t\tout[i+3], out[i+2], out[i+1], out[i] = out[i], out[i+1], out[i+2], out[i+3]\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/kex.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\npackage ssh\n\nimport (\n\t\"crypto\"\n\t\"crypto/ecdsa\"\n\t\"crypto/elliptic\"\n\t\"crypto/fips140\"\n\t\"crypto/rand\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"slices\"\n\n\t\"golang.org/x/crypto/curve25519\"\n)\n\nconst (\n\t// This is the group called diffie-hellman-group1-sha1 in RFC 4253 and\n\t// Oakley Group 2 in RFC 2409.\n\toakleyGroup2 = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF\"\n\t// This is the group called diffie-hellman-group14-sha1 in RFC 4253 and\n\t// Oakley Group 14 in RFC 3526.\n\toakleyGroup14 = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF\"\n\t// This is the group called diffie-hellman-group15-sha512 in RFC 8268 and\n\t// Oakley Group 15 in RFC 3526.\n\toakleyGroup15 = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF\"\n\t// This is the group called diffie-hellman-group16-sha512 in RFC 8268 and\n\t// Oakley Group 16 in RFC 3526.\n\toakleyGroup16 = \"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF\"\n)\n\n// kexResult captures the outcome of a key exchange.\ntype kexResult struct {\n\t// Session hash. See also RFC 4253, section 8.\n\tH []byte\n\n\t// Shared secret. See also RFC 4253, section 8.\n\tK []byte\n\n\t// Host key as hashed into H.\n\tHostKey []byte\n\n\t// Signature of H.\n\tSignature []byte\n\n\t// A cryptographic hash function that matches the security\n\t// level of the key exchange algorithm. It is used for\n\t// calculating H, and for deriving keys from H and K.\n\tHash crypto.Hash\n\n\t// The session ID, which is the first H computed. This is used\n\t// to derive key material inside the transport.\n\tSessionID []byte\n}\n\n// handshakeMagics contains data that is always included in the\n// session hash.\ntype handshakeMagics struct {\n\tclientVersion, serverVersion []byte\n\tclientKexInit, serverKexInit []byte\n}\n\nfunc (m *handshakeMagics) write(w io.Writer) {\n\twriteString(w, m.clientVersion)\n\twriteString(w, m.serverVersion)\n\twriteString(w, m.clientKexInit)\n\twriteString(w, m.serverKexInit)\n}\n\n// kexAlgorithm abstracts different key exchange algorithms.\ntype kexAlgorithm interface {\n\t// Server runs server-side key agreement, signing the result\n\t// with a hostkey. algo is the negotiated algorithm, and may\n\t// be a certificate type.\n\tServer(p packetConn, rand io.Reader, magics *handshakeMagics, s AlgorithmSigner, algo string) (*kexResult, error)\n\n\t// Client runs the client-side key agreement. Caller is\n\t// responsible for verifying the host key signature.\n\tClient(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error)\n}\n\n// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement.\ntype dhGroup struct {\n\tg, p, pMinus1 *big.Int\n\thashFunc      crypto.Hash\n}\n\nfunc (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) {\n\tif theirPublic.Cmp(bigOne) <= 0 || theirPublic.Cmp(group.pMinus1) >= 0 {\n\t\treturn nil, errors.New(\"ssh: DH parameter out of bounds\")\n\t}\n\treturn new(big.Int).Exp(theirPublic, myPrivate, group.p), nil\n}\n\nfunc (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) {\n\tvar x *big.Int\n\tfor {\n\t\tvar err error\n\t\tif x, err = rand.Int(randSource, group.pMinus1); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif x.Sign() > 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tX := new(big.Int).Exp(group.g, x, group.p)\n\tkexDHInit := kexDHInitMsg{\n\t\tX: X,\n\t}\n\tif err := c.writePacket(Marshal(&kexDHInit)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kexDHReply kexDHReplyMsg\n\tif err = Unmarshal(packet, &kexDHReply); err != nil {\n\t\treturn nil, err\n\t}\n\n\tki, err := group.diffieHellman(kexDHReply.Y, x)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\th := group.hashFunc.New()\n\tmagics.write(h)\n\twriteString(h, kexDHReply.HostKey)\n\twriteInt(h, X)\n\twriteInt(h, kexDHReply.Y)\n\tK := make([]byte, intLength(ki))\n\tmarshalInt(K, ki)\n\th.Write(K)\n\n\treturn &kexResult{\n\t\tH:         h.Sum(nil),\n\t\tK:         K,\n\t\tHostKey:   kexDHReply.HostKey,\n\t\tSignature: kexDHReply.Signature,\n\t\tHash:      group.hashFunc,\n\t}, nil\n}\n\nfunc (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) {\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn\n\t}\n\tvar kexDHInit kexDHInitMsg\n\tif err = Unmarshal(packet, &kexDHInit); err != nil {\n\t\treturn\n\t}\n\n\tvar y *big.Int\n\tfor {\n\t\tif y, err = rand.Int(randSource, group.pMinus1); err != nil {\n\t\t\treturn\n\t\t}\n\t\tif y.Sign() > 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tY := new(big.Int).Exp(group.g, y, group.p)\n\tki, err := group.diffieHellman(kexDHInit.X, y)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thostKeyBytes := priv.PublicKey().Marshal()\n\n\th := group.hashFunc.New()\n\tmagics.write(h)\n\twriteString(h, hostKeyBytes)\n\twriteInt(h, kexDHInit.X)\n\twriteInt(h, Y)\n\n\tK := make([]byte, intLength(ki))\n\tmarshalInt(K, ki)\n\th.Write(K)\n\n\tH := h.Sum(nil)\n\n\t// H is already a hash, but the hostkey signing will apply its\n\t// own key-specific hash algorithm.\n\tsig, err := signAndMarshal(priv, randSource, H, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkexDHReply := kexDHReplyMsg{\n\t\tHostKey:   hostKeyBytes,\n\t\tY:         Y,\n\t\tSignature: sig,\n\t}\n\tpacket = Marshal(&kexDHReply)\n\n\terr = c.writePacket(packet)\n\treturn &kexResult{\n\t\tH:         H,\n\t\tK:         K,\n\t\tHostKey:   hostKeyBytes,\n\t\tSignature: sig,\n\t\tHash:      group.hashFunc,\n\t}, err\n}\n\n// ecdh performs Elliptic Curve Diffie-Hellman key exchange as\n// described in RFC 5656, section 4.\ntype ecdh struct {\n\tcurve elliptic.Curve\n}\n\nfunc (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) {\n\tephKey, err := ecdsa.GenerateKey(kex.curve, rand)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkexInit := kexECDHInitMsg{\n\t\tClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y),\n\t}\n\n\tserialized := Marshal(&kexInit)\n\tif err := c.writePacket(serialized); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar reply kexECDHReplyMsg\n\tif err = Unmarshal(packet, &reply); err != nil {\n\t\treturn nil, err\n\t}\n\n\tx, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// generate shared secret\n\tsecret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes())\n\n\th := ecHash(kex.curve).New()\n\tmagics.write(h)\n\twriteString(h, reply.HostKey)\n\twriteString(h, kexInit.ClientPubKey)\n\twriteString(h, reply.EphemeralPubKey)\n\tK := make([]byte, intLength(secret))\n\tmarshalInt(K, secret)\n\th.Write(K)\n\n\treturn &kexResult{\n\t\tH:         h.Sum(nil),\n\t\tK:         K,\n\t\tHostKey:   reply.HostKey,\n\t\tSignature: reply.Signature,\n\t\tHash:      ecHash(kex.curve),\n\t}, nil\n}\n\n// unmarshalECKey parses and checks an EC key.\nfunc unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) {\n\tx, y = elliptic.Unmarshal(curve, pubkey)\n\tif x == nil {\n\t\treturn nil, nil, errors.New(\"ssh: elliptic.Unmarshal failure\")\n\t}\n\tif !validateECPublicKey(curve, x, y) {\n\t\treturn nil, nil, errors.New(\"ssh: public key not on curve\")\n\t}\n\treturn x, y, nil\n}\n\n// validateECPublicKey checks that the point is a valid public key for\n// the given curve. See [SEC1], 3.2.2\nfunc validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool {\n\tif x.Sign() == 0 && y.Sign() == 0 {\n\t\treturn false\n\t}\n\n\tif x.Cmp(curve.Params().P) >= 0 {\n\t\treturn false\n\t}\n\n\tif y.Cmp(curve.Params().P) >= 0 {\n\t\treturn false\n\t}\n\n\tif !curve.IsOnCurve(x, y) {\n\t\treturn false\n\t}\n\n\t// We don't check if N * PubKey == 0, since\n\t//\n\t// - the NIST curves have cofactor = 1, so this is implicit.\n\t// (We don't foresee an implementation that supports non NIST\n\t// curves)\n\t//\n\t// - for ephemeral keys, we don't need to worry about small\n\t// subgroup attacks.\n\treturn true\n}\n\nfunc (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) {\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kexECDHInit kexECDHInitMsg\n\tif err = Unmarshal(packet, &kexECDHInit); err != nil {\n\t\treturn nil, err\n\t}\n\n\tclientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We could cache this key across multiple users/multiple\n\t// connection attempts, but the benefit is small. OpenSSH\n\t// generates a new key for each incoming connection.\n\tephKey, err := ecdsa.GenerateKey(kex.curve, rand)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thostKeyBytes := priv.PublicKey().Marshal()\n\n\tserializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y)\n\n\t// generate shared secret\n\tsecret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes())\n\n\th := ecHash(kex.curve).New()\n\tmagics.write(h)\n\twriteString(h, hostKeyBytes)\n\twriteString(h, kexECDHInit.ClientPubKey)\n\twriteString(h, serializedEphKey)\n\n\tK := make([]byte, intLength(secret))\n\tmarshalInt(K, secret)\n\th.Write(K)\n\n\tH := h.Sum(nil)\n\n\t// H is already a hash, but the hostkey signing will apply its\n\t// own key-specific hash algorithm.\n\tsig, err := signAndMarshal(priv, rand, H, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treply := kexECDHReplyMsg{\n\t\tEphemeralPubKey: serializedEphKey,\n\t\tHostKey:         hostKeyBytes,\n\t\tSignature:       sig,\n\t}\n\n\tserialized := Marshal(&reply)\n\tif err := c.writePacket(serialized); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &kexResult{\n\t\tH:         H,\n\t\tK:         K,\n\t\tHostKey:   reply.HostKey,\n\t\tSignature: sig,\n\t\tHash:      ecHash(kex.curve),\n\t}, nil\n}\n\n// ecHash returns the hash to match the given elliptic curve, see RFC\n// 5656, section 6.2.1\nfunc ecHash(curve elliptic.Curve) crypto.Hash {\n\tbitSize := curve.Params().BitSize\n\tswitch {\n\tcase bitSize <= 256:\n\t\treturn crypto.SHA256\n\tcase bitSize <= 384:\n\t\treturn crypto.SHA384\n\t}\n\treturn crypto.SHA512\n}\n\n// kexAlgoMap defines the supported KEXs. KEXs not included are not supported\n// and will not be negotiated, even if explicitly configured. When FIPS mode is\n// enabled, only FIPS-approved algorithms are included.\nvar kexAlgoMap = map[string]kexAlgorithm{}\n\nfunc init() {\n\t// mlkem768x25519-sha256 we'll work with fips140=on but not fips140=only\n\t// until Go 1.26.\n\tkexAlgoMap[KeyExchangeMLKEM768X25519] = &mlkem768WithCurve25519sha256{}\n\tkexAlgoMap[KeyExchangeECDHP521] = &ecdh{elliptic.P521()}\n\tkexAlgoMap[KeyExchangeECDHP384] = &ecdh{elliptic.P384()}\n\tkexAlgoMap[KeyExchangeECDHP256] = &ecdh{elliptic.P256()}\n\n\tif fips140.Enabled() {\n\t\tdefaultKexAlgos = slices.DeleteFunc(defaultKexAlgos, func(algo string) bool {\n\t\t\t_, ok := kexAlgoMap[algo]\n\t\t\treturn !ok\n\t\t})\n\t\treturn\n\t}\n\n\tp, _ := new(big.Int).SetString(oakleyGroup2, 16)\n\tkexAlgoMap[InsecureKeyExchangeDH1SHA1] = &dhGroup{\n\t\tg:        new(big.Int).SetInt64(2),\n\t\tp:        p,\n\t\tpMinus1:  new(big.Int).Sub(p, bigOne),\n\t\thashFunc: crypto.SHA1,\n\t}\n\n\tp, _ = new(big.Int).SetString(oakleyGroup14, 16)\n\tgroup14 := &dhGroup{\n\t\tg:       new(big.Int).SetInt64(2),\n\t\tp:       p,\n\t\tpMinus1: new(big.Int).Sub(p, bigOne),\n\t}\n\n\tkexAlgoMap[InsecureKeyExchangeDH14SHA1] = &dhGroup{\n\t\tg: group14.g, p: group14.p, pMinus1: group14.pMinus1,\n\t\thashFunc: crypto.SHA1,\n\t}\n\tkexAlgoMap[KeyExchangeDH14SHA256] = &dhGroup{\n\t\tg: group14.g, p: group14.p, pMinus1: group14.pMinus1,\n\t\thashFunc: crypto.SHA256,\n\t}\n\n\tp, _ = new(big.Int).SetString(oakleyGroup16, 16)\n\n\tkexAlgoMap[KeyExchangeDH16SHA512] = &dhGroup{\n\t\tg:        new(big.Int).SetInt64(2),\n\t\tp:        p,\n\t\tpMinus1:  new(big.Int).Sub(p, bigOne),\n\t\thashFunc: crypto.SHA512,\n\t}\n\n\tkexAlgoMap[KeyExchangeCurve25519] = &curve25519sha256{}\n\tkexAlgoMap[keyExchangeCurve25519LibSSH] = &curve25519sha256{}\n\tkexAlgoMap[InsecureKeyExchangeDHGEXSHA1] = &dhGEXSHA{hashFunc: crypto.SHA1}\n\tkexAlgoMap[KeyExchangeDHGEXSHA256] = &dhGEXSHA{hashFunc: crypto.SHA256}\n}\n\n// curve25519sha256 implements the curve25519-sha256 (formerly known as\n// curve25519-sha256@libssh.org) key exchange method, as described in RFC 8731.\ntype curve25519sha256 struct{}\n\ntype curve25519KeyPair struct {\n\tpriv [32]byte\n\tpub  [32]byte\n}\n\nfunc (kp *curve25519KeyPair) generate(rand io.Reader) error {\n\tif _, err := io.ReadFull(rand, kp.priv[:]); err != nil {\n\t\treturn err\n\t}\n\tp, err := curve25519.X25519(kp.priv[:], curve25519.Basepoint)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"curve25519: %w\", err)\n\t}\n\tif len(p) != 32 {\n\t\treturn fmt.Errorf(\"curve25519: internal error: X25519 returned %d bytes, expected 32\", len(p))\n\t}\n\tcopy(kp.pub[:], p)\n\treturn nil\n}\n\nfunc (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) {\n\tvar kp curve25519KeyPair\n\tif err := kp.generate(rand); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar reply kexECDHReplyMsg\n\tif err = Unmarshal(packet, &reply); err != nil {\n\t\treturn nil, err\n\t}\n\tif len(reply.EphemeralPubKey) != 32 {\n\t\treturn nil, errors.New(\"ssh: peer's curve25519 public value has wrong length\")\n\t}\n\n\tsecret, err := curve25519.X25519(kp.priv[:], reply.EphemeralPubKey)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: peer's curve25519 public value is not valid: %w\", err)\n\t}\n\n\th := crypto.SHA256.New()\n\tmagics.write(h)\n\twriteString(h, reply.HostKey)\n\twriteString(h, kp.pub[:])\n\twriteString(h, reply.EphemeralPubKey)\n\n\tki := new(big.Int).SetBytes(secret[:])\n\tK := make([]byte, intLength(ki))\n\tmarshalInt(K, ki)\n\th.Write(K)\n\n\treturn &kexResult{\n\t\tH:         h.Sum(nil),\n\t\tK:         K,\n\t\tHostKey:   reply.HostKey,\n\t\tSignature: reply.Signature,\n\t\tHash:      crypto.SHA256,\n\t}, nil\n}\n\nfunc (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) {\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn\n\t}\n\tvar kexInit kexECDHInitMsg\n\tif err = Unmarshal(packet, &kexInit); err != nil {\n\t\treturn\n\t}\n\n\tif len(kexInit.ClientPubKey) != 32 {\n\t\treturn nil, errors.New(\"ssh: peer's curve25519 public value has wrong length\")\n\t}\n\n\tvar kp curve25519KeyPair\n\tif err := kp.generate(rand); err != nil {\n\t\treturn nil, err\n\t}\n\n\tsecret, err := curve25519.X25519(kp.priv[:], kexInit.ClientPubKey)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: peer's curve25519 public value is not valid: %w\", err)\n\t}\n\n\thostKeyBytes := priv.PublicKey().Marshal()\n\n\th := crypto.SHA256.New()\n\tmagics.write(h)\n\twriteString(h, hostKeyBytes)\n\twriteString(h, kexInit.ClientPubKey)\n\twriteString(h, kp.pub[:])\n\n\tki := new(big.Int).SetBytes(secret[:])\n\tK := make([]byte, intLength(ki))\n\tmarshalInt(K, ki)\n\th.Write(K)\n\n\tH := h.Sum(nil)\n\n\tsig, err := signAndMarshal(priv, rand, H, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treply := kexECDHReplyMsg{\n\t\tEphemeralPubKey: kp.pub[:],\n\t\tHostKey:         hostKeyBytes,\n\t\tSignature:       sig,\n\t}\n\tif err := c.writePacket(Marshal(&reply)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &kexResult{\n\t\tH:         H,\n\t\tK:         K,\n\t\tHostKey:   hostKeyBytes,\n\t\tSignature: sig,\n\t\tHash:      crypto.SHA256,\n\t}, nil\n}\n\n// dhGEXSHA implements the diffie-hellman-group-exchange-sha1 and\n// diffie-hellman-group-exchange-sha256 key agreement protocols,\n// as described in RFC 4419\ntype dhGEXSHA struct {\n\thashFunc crypto.Hash\n}\n\nconst (\n\tdhGroupExchangeMinimumBits   = 2048\n\tdhGroupExchangePreferredBits = 2048\n\tdhGroupExchangeMaximumBits   = 8192\n)\n\nfunc (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) {\n\t// Send GexRequest\n\tkexDHGexRequest := kexDHGexRequestMsg{\n\t\tMinBits:       dhGroupExchangeMinimumBits,\n\t\tPreferredBits: dhGroupExchangePreferredBits,\n\t\tMaxBits:       dhGroupExchangeMaximumBits,\n\t}\n\tif err := c.writePacket(Marshal(&kexDHGexRequest)); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Receive GexGroup\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar msg kexDHGexGroupMsg\n\tif err = Unmarshal(packet, &msg); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// reject if p's bit length < dhGroupExchangeMinimumBits or > dhGroupExchangeMaximumBits\n\tif msg.P.BitLen() < dhGroupExchangeMinimumBits || msg.P.BitLen() > dhGroupExchangeMaximumBits {\n\t\treturn nil, fmt.Errorf(\"ssh: server-generated gex p is out of range (%d bits)\", msg.P.BitLen())\n\t}\n\n\t// Check if g is safe by verifying that 1 < g < p-1\n\tpMinusOne := new(big.Int).Sub(msg.P, bigOne)\n\tif msg.G.Cmp(bigOne) <= 0 || msg.G.Cmp(pMinusOne) >= 0 {\n\t\treturn nil, fmt.Errorf(\"ssh: server provided gex g is not safe\")\n\t}\n\n\t// Send GexInit\n\tpHalf := new(big.Int).Rsh(msg.P, 1)\n\tx, err := rand.Int(randSource, pHalf)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tX := new(big.Int).Exp(msg.G, x, msg.P)\n\tkexDHGexInit := kexDHGexInitMsg{\n\t\tX: X,\n\t}\n\tif err := c.writePacket(Marshal(&kexDHGexInit)); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Receive GexReply\n\tpacket, err = c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kexDHGexReply kexDHGexReplyMsg\n\tif err = Unmarshal(packet, &kexDHGexReply); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif kexDHGexReply.Y.Cmp(bigOne) <= 0 || kexDHGexReply.Y.Cmp(pMinusOne) >= 0 {\n\t\treturn nil, errors.New(\"ssh: DH parameter out of bounds\")\n\t}\n\tkInt := new(big.Int).Exp(kexDHGexReply.Y, x, msg.P)\n\n\t// Check if k is safe by verifying that k > 1 and k < p - 1\n\tif kInt.Cmp(bigOne) <= 0 || kInt.Cmp(pMinusOne) >= 0 {\n\t\treturn nil, fmt.Errorf(\"ssh: derived k is not safe\")\n\t}\n\n\th := gex.hashFunc.New()\n\tmagics.write(h)\n\twriteString(h, kexDHGexReply.HostKey)\n\tbinary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMinimumBits))\n\tbinary.Write(h, binary.BigEndian, uint32(dhGroupExchangePreferredBits))\n\tbinary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMaximumBits))\n\twriteInt(h, msg.P)\n\twriteInt(h, msg.G)\n\twriteInt(h, X)\n\twriteInt(h, kexDHGexReply.Y)\n\tK := make([]byte, intLength(kInt))\n\tmarshalInt(K, kInt)\n\th.Write(K)\n\n\treturn &kexResult{\n\t\tH:         h.Sum(nil),\n\t\tK:         K,\n\t\tHostKey:   kexDHGexReply.HostKey,\n\t\tSignature: kexDHGexReply.Signature,\n\t\tHash:      gex.hashFunc,\n\t}, nil\n}\n\n// Server half implementation of the Diffie Hellman Key Exchange with SHA1 and SHA256.\nfunc (gex *dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (result *kexResult, err error) {\n\t// Receive GexRequest\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn\n\t}\n\tvar kexDHGexRequest kexDHGexRequestMsg\n\tif err = Unmarshal(packet, &kexDHGexRequest); err != nil {\n\t\treturn\n\t}\n\t// We check that the request received is valid and that the MaxBits\n\t// requested are at least equal to our supported minimum. This is the same\n\t// check done in OpenSSH:\n\t// https://github.com/openssh/openssh-portable/blob/80a2f64b/kexgexs.c#L94\n\t//\n\t// Furthermore, we also check that the required MinBits are less than or\n\t// equal to 4096 because we can use up to Oakley Group 16.\n\tif kexDHGexRequest.MaxBits < kexDHGexRequest.MinBits || kexDHGexRequest.PreferredBits < kexDHGexRequest.MinBits ||\n\t\tkexDHGexRequest.MaxBits < kexDHGexRequest.PreferredBits || kexDHGexRequest.MaxBits < dhGroupExchangeMinimumBits ||\n\t\tkexDHGexRequest.MinBits > 4096 {\n\t\treturn nil, fmt.Errorf(\"ssh: DH GEX request out of range, min: %d, max: %d, preferred: %d\", kexDHGexRequest.MinBits,\n\t\t\tkexDHGexRequest.MaxBits, kexDHGexRequest.PreferredBits)\n\t}\n\n\tvar p *big.Int\n\t// We hardcode sending Oakley Group 14 (2048 bits), Oakley Group 15 (3072\n\t// bits) or Oakley Group 16 (4096 bits), based on the requested max size.\n\tif kexDHGexRequest.MaxBits < 3072 {\n\t\tp, _ = new(big.Int).SetString(oakleyGroup14, 16)\n\t} else if kexDHGexRequest.MaxBits < 4096 {\n\t\tp, _ = new(big.Int).SetString(oakleyGroup15, 16)\n\t} else {\n\t\tp, _ = new(big.Int).SetString(oakleyGroup16, 16)\n\t}\n\n\tg := big.NewInt(2)\n\tmsg := &kexDHGexGroupMsg{\n\t\tP: p,\n\t\tG: g,\n\t}\n\tif err := c.writePacket(Marshal(msg)); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Receive GexInit\n\tpacket, err = c.readPacket()\n\tif err != nil {\n\t\treturn\n\t}\n\tvar kexDHGexInit kexDHGexInitMsg\n\tif err = Unmarshal(packet, &kexDHGexInit); err != nil {\n\t\treturn\n\t}\n\n\tpHalf := new(big.Int).Rsh(p, 1)\n\n\ty, err := rand.Int(randSource, pHalf)\n\tif err != nil {\n\t\treturn\n\t}\n\tY := new(big.Int).Exp(g, y, p)\n\n\tpMinusOne := new(big.Int).Sub(p, bigOne)\n\tif kexDHGexInit.X.Cmp(bigOne) <= 0 || kexDHGexInit.X.Cmp(pMinusOne) >= 0 {\n\t\treturn nil, errors.New(\"ssh: DH parameter out of bounds\")\n\t}\n\tkInt := new(big.Int).Exp(kexDHGexInit.X, y, p)\n\n\thostKeyBytes := priv.PublicKey().Marshal()\n\n\th := gex.hashFunc.New()\n\tmagics.write(h)\n\twriteString(h, hostKeyBytes)\n\tbinary.Write(h, binary.BigEndian, kexDHGexRequest.MinBits)\n\tbinary.Write(h, binary.BigEndian, kexDHGexRequest.PreferredBits)\n\tbinary.Write(h, binary.BigEndian, kexDHGexRequest.MaxBits)\n\twriteInt(h, p)\n\twriteInt(h, g)\n\twriteInt(h, kexDHGexInit.X)\n\twriteInt(h, Y)\n\n\tK := make([]byte, intLength(kInt))\n\tmarshalInt(K, kInt)\n\th.Write(K)\n\n\tH := h.Sum(nil)\n\n\t// H is already a hash, but the hostkey signing will apply its\n\t// own key-specific hash algorithm.\n\tsig, err := signAndMarshal(priv, randSource, H, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkexDHGexReply := kexDHGexReplyMsg{\n\t\tHostKey:   hostKeyBytes,\n\t\tY:         Y,\n\t\tSignature: sig,\n\t}\n\tpacket = Marshal(&kexDHGexReply)\n\n\terr = c.writePacket(packet)\n\n\treturn &kexResult{\n\t\tH:         H,\n\t\tK:         K,\n\t\tHostKey:   hostKeyBytes,\n\t\tSignature: sig,\n\t\tHash:      gex.hashFunc,\n\t}, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/keys.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"crypto\"\n\t\"crypto/aes\"\n\t\"crypto/cipher\"\n\t\"crypto/dsa\"\n\t\"crypto/ecdsa\"\n\t\"crypto/ed25519\"\n\t\"crypto/elliptic\"\n\t\"crypto/md5\"\n\t\"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/sha256\"\n\t\"crypto/x509\"\n\t\"encoding/asn1\"\n\t\"encoding/base64\"\n\t\"encoding/binary\"\n\t\"encoding/hex\"\n\t\"encoding/pem\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"golang.org/x/crypto/ssh/internal/bcrypt_pbkdf\"\n)\n\n// Public key algorithms names. These values can appear in PublicKey.Type,\n// ClientConfig.HostKeyAlgorithms, Signature.Format, or as AlgorithmSigner\n// arguments.\nconst (\n\tKeyAlgoRSA = \"ssh-rsa\"\n\t// Deprecated: DSA is only supported at insecure key sizes, and was removed\n\t// from major implementations.\n\tKeyAlgoDSA = InsecureKeyAlgoDSA\n\t// Deprecated: DSA is only supported at insecure key sizes, and was removed\n\t// from major implementations.\n\tInsecureKeyAlgoDSA = \"ssh-dss\"\n\tKeyAlgoECDSA256    = \"ecdsa-sha2-nistp256\"\n\tKeyAlgoSKECDSA256  = \"sk-ecdsa-sha2-nistp256@openssh.com\"\n\tKeyAlgoECDSA384    = \"ecdsa-sha2-nistp384\"\n\tKeyAlgoECDSA521    = \"ecdsa-sha2-nistp521\"\n\tKeyAlgoED25519     = \"ssh-ed25519\"\n\tKeyAlgoSKED25519   = \"sk-ssh-ed25519@openssh.com\"\n\n\t// KeyAlgoRSASHA256 and KeyAlgoRSASHA512 are only public key algorithms, not\n\t// public key formats, so they can't appear as a PublicKey.Type. The\n\t// corresponding PublicKey.Type is KeyAlgoRSA. See RFC 8332, Section 2.\n\tKeyAlgoRSASHA256 = \"rsa-sha2-256\"\n\tKeyAlgoRSASHA512 = \"rsa-sha2-512\"\n)\n\nconst (\n\t// Deprecated: use KeyAlgoRSA.\n\tSigAlgoRSA = KeyAlgoRSA\n\t// Deprecated: use KeyAlgoRSASHA256.\n\tSigAlgoRSASHA2256 = KeyAlgoRSASHA256\n\t// Deprecated: use KeyAlgoRSASHA512.\n\tSigAlgoRSASHA2512 = KeyAlgoRSASHA512\n)\n\n// parsePubKey parses a public key of the given algorithm.\n// Use ParsePublicKey for keys with prepended algorithm.\nfunc parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) {\n\tswitch algo {\n\tcase KeyAlgoRSA:\n\t\treturn parseRSA(in)\n\tcase InsecureKeyAlgoDSA:\n\t\treturn parseDSA(in)\n\tcase KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521:\n\t\treturn parseECDSA(in)\n\tcase KeyAlgoSKECDSA256:\n\t\treturn parseSKECDSA(in)\n\tcase KeyAlgoED25519:\n\t\treturn parseED25519(in)\n\tcase KeyAlgoSKED25519:\n\t\treturn parseSKEd25519(in)\n\tcase CertAlgoRSAv01, InsecureCertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoSKECDSA256v01, CertAlgoED25519v01, CertAlgoSKED25519v01:\n\t\tcert, err := parseCert(in, certKeyAlgoNames[algo])\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\treturn cert, nil, nil\n\t}\n\tif keyFormat := keyFormatForAlgorithm(algo); keyFormat != \"\" {\n\t\treturn nil, nil, fmt.Errorf(\"ssh: signature algorithm %q isn't a key format; key is malformed and should be re-encoded with type %q\",\n\t\t\talgo, keyFormat)\n\t}\n\n\treturn nil, nil, fmt.Errorf(\"ssh: unknown key algorithm: %v\", algo)\n}\n\n// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format\n// (see sshd(8) manual page) once the options and key type fields have been\n// removed.\nfunc parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) {\n\tin = bytes.TrimSpace(in)\n\n\ti := bytes.IndexAny(in, \" \\t\")\n\tif i == -1 {\n\t\ti = len(in)\n\t}\n\tbase64Key := in[:i]\n\n\tkey := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key)))\n\tn, err := base64.StdEncoding.Decode(key, base64Key)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tkey = key[:n]\n\tout, err = ParsePublicKey(key)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tcomment = string(bytes.TrimSpace(in[i:]))\n\treturn out, comment, nil\n}\n\n// ParseKnownHosts parses an entry in the format of the known_hosts file.\n//\n// The known_hosts format is documented in the sshd(8) manual page. This\n// function will parse a single entry from in. On successful return, marker\n// will contain the optional marker value (i.e. \"cert-authority\" or \"revoked\")\n// or else be empty, hosts will contain the hosts that this entry matches,\n// pubKey will contain the public key and comment will contain any trailing\n// comment at the end of the line. See the sshd(8) manual page for the various\n// forms that a host string can take.\n//\n// The unparsed remainder of the input will be returned in rest. This function\n// can be called repeatedly to parse multiple entries.\n//\n// If no entries were found in the input then err will be io.EOF. Otherwise a\n// non-nil err value indicates a parse error.\nfunc ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey, comment string, rest []byte, err error) {\n\tfor len(in) > 0 {\n\t\tend := bytes.IndexByte(in, '\\n')\n\t\tif end != -1 {\n\t\t\trest = in[end+1:]\n\t\t\tin = in[:end]\n\t\t} else {\n\t\t\trest = nil\n\t\t}\n\n\t\tend = bytes.IndexByte(in, '\\r')\n\t\tif end != -1 {\n\t\t\tin = in[:end]\n\t\t}\n\n\t\tin = bytes.TrimSpace(in)\n\t\tif len(in) == 0 || in[0] == '#' {\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\ti := bytes.IndexAny(in, \" \\t\")\n\t\tif i == -1 {\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\t// Strip out the beginning of the known_host key.\n\t\t// This is either an optional marker or a (set of) hostname(s).\n\t\tkeyFields := bytes.Fields(in)\n\t\tif len(keyFields) < 3 || len(keyFields) > 5 {\n\t\t\treturn \"\", nil, nil, \"\", nil, errors.New(\"ssh: invalid entry in known_hosts data\")\n\t\t}\n\n\t\t// keyFields[0] is either \"@cert-authority\", \"@revoked\" or a comma separated\n\t\t// list of hosts\n\t\tmarker := \"\"\n\t\tif keyFields[0][0] == '@' {\n\t\t\tmarker = string(keyFields[0][1:])\n\t\t\tkeyFields = keyFields[1:]\n\t\t}\n\n\t\thosts := string(keyFields[0])\n\t\t// keyFields[1] contains the key type (e.g. “ssh-rsa”).\n\t\t// However, that information is duplicated inside the\n\t\t// base64-encoded key and so is ignored here.\n\n\t\tkey := bytes.Join(keyFields[2:], []byte(\" \"))\n\t\tif pubKey, comment, err = parseAuthorizedKey(key); err != nil {\n\t\t\treturn \"\", nil, nil, \"\", nil, err\n\t\t}\n\n\t\treturn marker, strings.Split(hosts, \",\"), pubKey, comment, rest, nil\n\t}\n\n\treturn \"\", nil, nil, \"\", nil, io.EOF\n}\n\n// ParseAuthorizedKey parses a public key from an authorized_keys file used in\n// OpenSSH according to the sshd(8) manual page. Invalid lines are ignored.\nfunc ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) {\n\tvar lastErr error\n\tfor len(in) > 0 {\n\t\tend := bytes.IndexByte(in, '\\n')\n\t\tif end != -1 {\n\t\t\trest = in[end+1:]\n\t\t\tin = in[:end]\n\t\t} else {\n\t\t\trest = nil\n\t\t}\n\n\t\tend = bytes.IndexByte(in, '\\r')\n\t\tif end != -1 {\n\t\t\tin = in[:end]\n\t\t}\n\n\t\tin = bytes.TrimSpace(in)\n\t\tif len(in) == 0 || in[0] == '#' {\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\ti := bytes.IndexAny(in, \" \\t\")\n\t\tif i == -1 {\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\tif out, comment, err = parseAuthorizedKey(in[i:]); err == nil {\n\t\t\treturn out, comment, options, rest, nil\n\t\t} else {\n\t\t\tlastErr = err\n\t\t}\n\n\t\t// No key type recognised. Maybe there's an options field at\n\t\t// the beginning.\n\t\tvar b byte\n\t\tinQuote := false\n\t\tvar candidateOptions []string\n\t\toptionStart := 0\n\t\tfor i, b = range in {\n\t\t\tisEnd := !inQuote && (b == ' ' || b == '\\t')\n\t\t\tif (b == ',' && !inQuote) || isEnd {\n\t\t\t\tif i-optionStart > 0 {\n\t\t\t\t\tcandidateOptions = append(candidateOptions, string(in[optionStart:i]))\n\t\t\t\t}\n\t\t\t\toptionStart = i + 1\n\t\t\t}\n\t\t\tif isEnd {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif b == '\"' && (i == 0 || (i > 0 && in[i-1] != '\\\\')) {\n\t\t\t\tinQuote = !inQuote\n\t\t\t}\n\t\t}\n\t\tfor i < len(in) && (in[i] == ' ' || in[i] == '\\t') {\n\t\t\ti++\n\t\t}\n\t\tif i == len(in) {\n\t\t\t// Invalid line: unmatched quote\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\tin = in[i:]\n\t\ti = bytes.IndexAny(in, \" \\t\")\n\t\tif i == -1 {\n\t\t\tin = rest\n\t\t\tcontinue\n\t\t}\n\n\t\tif out, comment, err = parseAuthorizedKey(in[i:]); err == nil {\n\t\t\toptions = candidateOptions\n\t\t\treturn out, comment, options, rest, nil\n\t\t} else {\n\t\t\tlastErr = err\n\t\t}\n\n\t\tin = rest\n\t\tcontinue\n\t}\n\n\tif lastErr != nil {\n\t\treturn nil, \"\", nil, nil, fmt.Errorf(\"ssh: no key found; last parsing error for ignored line: %w\", lastErr)\n\t}\n\n\treturn nil, \"\", nil, nil, errors.New(\"ssh: no key found\")\n}\n\n// ParsePublicKey parses an SSH public key or certificate formatted for use in\n// the SSH wire protocol according to RFC 4253, section 6.6.\nfunc ParsePublicKey(in []byte) (out PublicKey, err error) {\n\talgo, in, ok := parseString(in)\n\tif !ok {\n\t\treturn nil, errShortRead\n\t}\n\tvar rest []byte\n\tout, rest, err = parsePubKey(in, string(algo))\n\tif len(rest) > 0 {\n\t\treturn nil, errors.New(\"ssh: trailing junk in public key\")\n\t}\n\n\treturn out, err\n}\n\n// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH\n// authorized_keys file. The return value ends with newline.\nfunc MarshalAuthorizedKey(key PublicKey) []byte {\n\tb := &bytes.Buffer{}\n\tb.WriteString(key.Type())\n\tb.WriteByte(' ')\n\te := base64.NewEncoder(base64.StdEncoding, b)\n\te.Write(key.Marshal())\n\te.Close()\n\tb.WriteByte('\\n')\n\treturn b.Bytes()\n}\n\n// MarshalPrivateKey returns a PEM block with the private key serialized in the\n// OpenSSH format.\nfunc MarshalPrivateKey(key crypto.PrivateKey, comment string) (*pem.Block, error) {\n\treturn marshalOpenSSHPrivateKey(key, comment, unencryptedOpenSSHMarshaler)\n}\n\n// MarshalPrivateKeyWithPassphrase returns a PEM block holding the encrypted\n// private key serialized in the OpenSSH format.\nfunc MarshalPrivateKeyWithPassphrase(key crypto.PrivateKey, comment string, passphrase []byte) (*pem.Block, error) {\n\treturn marshalOpenSSHPrivateKey(key, comment, passphraseProtectedOpenSSHMarshaler(passphrase))\n}\n\n// PublicKey represents a public key using an unspecified algorithm.\n//\n// Some PublicKeys provided by this package also implement CryptoPublicKey.\ntype PublicKey interface {\n\t// Type returns the key format name, e.g. \"ssh-rsa\".\n\tType() string\n\n\t// Marshal returns the serialized key data in SSH wire format, with the name\n\t// prefix. To unmarshal the returned data, use the ParsePublicKey function.\n\tMarshal() []byte\n\n\t// Verify that sig is a signature on the given data using this key. This\n\t// method will hash the data appropriately first. sig.Format is allowed to\n\t// be any signature algorithm compatible with the key type, the caller\n\t// should check if it has more stringent requirements.\n\tVerify(data []byte, sig *Signature) error\n}\n\n// CryptoPublicKey, if implemented by a PublicKey,\n// returns the underlying crypto.PublicKey form of the key.\ntype CryptoPublicKey interface {\n\tCryptoPublicKey() crypto.PublicKey\n}\n\n// A Signer can create signatures that verify against a public key.\n//\n// Some Signers provided by this package also implement MultiAlgorithmSigner.\ntype Signer interface {\n\t// PublicKey returns the associated PublicKey.\n\tPublicKey() PublicKey\n\n\t// Sign returns a signature for the given data. This method will hash the\n\t// data appropriately first. The signature algorithm is expected to match\n\t// the key format returned by the PublicKey.Type method (and not to be any\n\t// alternative algorithm supported by the key format).\n\tSign(rand io.Reader, data []byte) (*Signature, error)\n}\n\n// An AlgorithmSigner is a Signer that also supports specifying an algorithm to\n// use for signing.\n//\n// An AlgorithmSigner can't advertise the algorithms it supports, unless it also\n// implements MultiAlgorithmSigner, so it should be prepared to be invoked with\n// every algorithm supported by the public key format.\ntype AlgorithmSigner interface {\n\tSigner\n\n\t// SignWithAlgorithm is like Signer.Sign, but allows specifying a desired\n\t// signing algorithm. Callers may pass an empty string for the algorithm in\n\t// which case the AlgorithmSigner will use a default algorithm. This default\n\t// doesn't currently control any behavior in this package.\n\tSignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error)\n}\n\n// MultiAlgorithmSigner is an AlgorithmSigner that also reports the algorithms\n// supported by that signer.\ntype MultiAlgorithmSigner interface {\n\tAlgorithmSigner\n\n\t// Algorithms returns the available algorithms in preference order. The list\n\t// must not be empty, and it must not include certificate types.\n\tAlgorithms() []string\n}\n\n// NewSignerWithAlgorithms returns a signer restricted to the specified\n// algorithms. The algorithms must be set in preference order. The list must not\n// be empty, and it must not include certificate types. An error is returned if\n// the specified algorithms are incompatible with the public key type.\nfunc NewSignerWithAlgorithms(signer AlgorithmSigner, algorithms []string) (MultiAlgorithmSigner, error) {\n\tif len(algorithms) == 0 {\n\t\treturn nil, errors.New(\"ssh: please specify at least one valid signing algorithm\")\n\t}\n\tvar signerAlgos []string\n\tsupportedAlgos := algorithmsForKeyFormat(underlyingAlgo(signer.PublicKey().Type()))\n\tif s, ok := signer.(*multiAlgorithmSigner); ok {\n\t\tsignerAlgos = s.Algorithms()\n\t} else {\n\t\tsignerAlgos = supportedAlgos\n\t}\n\n\tfor _, algo := range algorithms {\n\t\tif !slices.Contains(supportedAlgos, algo) {\n\t\t\treturn nil, fmt.Errorf(\"ssh: algorithm %q is not supported for key type %q\",\n\t\t\t\talgo, signer.PublicKey().Type())\n\t\t}\n\t\tif !slices.Contains(signerAlgos, algo) {\n\t\t\treturn nil, fmt.Errorf(\"ssh: algorithm %q is restricted for the provided signer\", algo)\n\t\t}\n\t}\n\treturn &multiAlgorithmSigner{\n\t\tAlgorithmSigner:     signer,\n\t\tsupportedAlgorithms: algorithms,\n\t}, nil\n}\n\ntype multiAlgorithmSigner struct {\n\tAlgorithmSigner\n\tsupportedAlgorithms []string\n}\n\nfunc (s *multiAlgorithmSigner) Algorithms() []string {\n\treturn s.supportedAlgorithms\n}\n\nfunc (s *multiAlgorithmSigner) isAlgorithmSupported(algorithm string) bool {\n\tif algorithm == \"\" {\n\t\talgorithm = underlyingAlgo(s.PublicKey().Type())\n\t}\n\tfor _, algo := range s.supportedAlgorithms {\n\t\tif algorithm == algo {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (s *multiAlgorithmSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error) {\n\tif !s.isAlgorithmSupported(algorithm) {\n\t\treturn nil, fmt.Errorf(\"ssh: algorithm %q is not supported: %v\", algorithm, s.supportedAlgorithms)\n\t}\n\treturn s.AlgorithmSigner.SignWithAlgorithm(rand, data, algorithm)\n}\n\ntype rsaPublicKey rsa.PublicKey\n\nfunc (r *rsaPublicKey) Type() string {\n\treturn \"ssh-rsa\"\n}\n\n// parseRSA parses an RSA key according to RFC 4253, section 6.6.\nfunc parseRSA(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tE    *big.Int\n\t\tN    *big.Int\n\t\tRest []byte `ssh:\"rest\"`\n\t}\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif w.E.BitLen() > 24 {\n\t\treturn nil, nil, errors.New(\"ssh: exponent too large\")\n\t}\n\te := w.E.Int64()\n\tif e < 3 || e&1 == 0 {\n\t\treturn nil, nil, errors.New(\"ssh: incorrect exponent\")\n\t}\n\n\tvar key rsa.PublicKey\n\tkey.E = int(e)\n\tkey.N = w.N\n\treturn (*rsaPublicKey)(&key), w.Rest, nil\n}\n\nfunc (r *rsaPublicKey) Marshal() []byte {\n\te := new(big.Int).SetInt64(int64(r.E))\n\t// RSA publickey struct layout should match the struct used by\n\t// parseRSACert in the x/crypto/ssh/agent package.\n\twirekey := struct {\n\t\tName string\n\t\tE    *big.Int\n\t\tN    *big.Int\n\t}{\n\t\tKeyAlgoRSA,\n\t\te,\n\t\tr.N,\n\t}\n\treturn Marshal(&wirekey)\n}\n\nfunc (r *rsaPublicKey) Verify(data []byte, sig *Signature) error {\n\tsupportedAlgos := algorithmsForKeyFormat(r.Type())\n\tif !slices.Contains(supportedAlgos, sig.Format) {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, r.Type())\n\t}\n\thash, err := hashFunc(sig.Format)\n\tif err != nil {\n\t\treturn err\n\t}\n\th := hash.New()\n\th.Write(data)\n\tdigest := h.Sum(nil)\n\n\t// Signatures in PKCS1v15 must match the key's modulus in\n\t// length. However with SSH, some signers provide RSA\n\t// signatures which are missing the MSB 0's of the bignum\n\t// represented. With ssh-rsa signatures, this is encouraged by\n\t// the spec (even though e.g. OpenSSH will give the full\n\t// length unconditionally). With rsa-sha2-* signatures, the\n\t// verifier is allowed to support these, even though they are\n\t// out of spec. See RFC 4253 Section 6.6 for ssh-rsa and RFC\n\t// 8332 Section 3 for rsa-sha2-* details.\n\t//\n\t// In practice:\n\t// * OpenSSH always allows \"short\" signatures:\n\t//   https://github.com/openssh/openssh-portable/blob/V_9_8_P1/ssh-rsa.c#L526\n\t//   but always generates padded signatures:\n\t//   https://github.com/openssh/openssh-portable/blob/V_9_8_P1/ssh-rsa.c#L439\n\t//\n\t// * PuTTY versions 0.81 and earlier will generate short\n\t//   signatures for all RSA signature variants. Note that\n\t//   PuTTY is embedded in other software, such as WinSCP and\n\t//   FileZilla. At the time of writing, a patch has been\n\t//   applied to PuTTY to generate padded signatures for\n\t//   rsa-sha2-*, but not yet released:\n\t//   https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=a5bcf3d384e1bf15a51a6923c3724cbbee022d8e\n\t//\n\t// * SSH.NET versions 2024.0.0 and earlier will generate short\n\t//   signatures for all RSA signature variants, fixed in 2024.1.0:\n\t//   https://github.com/sshnet/SSH.NET/releases/tag/2024.1.0\n\t//\n\t// As a result, we pad these up to the key size by inserting\n\t// leading 0's.\n\t//\n\t// Note that support for short signatures with rsa-sha2-* may\n\t// be removed in the future due to such signatures not being\n\t// allowed by the spec.\n\tblob := sig.Blob\n\tkeySize := (*rsa.PublicKey)(r).Size()\n\tif len(blob) < keySize {\n\t\tpadded := make([]byte, keySize)\n\t\tcopy(padded[keySize-len(blob):], blob)\n\t\tblob = padded\n\t}\n\treturn rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), hash, digest, blob)\n}\n\nfunc (r *rsaPublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn (*rsa.PublicKey)(r)\n}\n\ntype dsaPublicKey dsa.PublicKey\n\nfunc (k *dsaPublicKey) Type() string {\n\treturn \"ssh-dss\"\n}\n\nfunc checkDSAParams(param *dsa.Parameters) error {\n\t// SSH specifies FIPS 186-2, which only provided a single size\n\t// (1024 bits) DSA key. FIPS 186-3 allows for larger key\n\t// sizes, which would confuse SSH.\n\tif l := param.P.BitLen(); l != 1024 {\n\t\treturn fmt.Errorf(\"ssh: unsupported DSA key size %d\", l)\n\t}\n\n\treturn nil\n}\n\n// parseDSA parses an DSA key according to RFC 4253, section 6.6.\nfunc parseDSA(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tP, Q, G, Y *big.Int\n\t\tRest       []byte `ssh:\"rest\"`\n\t}\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tparam := dsa.Parameters{\n\t\tP: w.P,\n\t\tQ: w.Q,\n\t\tG: w.G,\n\t}\n\tif err := checkDSAParams(&param); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tkey := &dsaPublicKey{\n\t\tParameters: param,\n\t\tY:          w.Y,\n\t}\n\treturn key, w.Rest, nil\n}\n\nfunc (k *dsaPublicKey) Marshal() []byte {\n\t// DSA publickey struct layout should match the struct used by\n\t// parseDSACert in the x/crypto/ssh/agent package.\n\tw := struct {\n\t\tName       string\n\t\tP, Q, G, Y *big.Int\n\t}{\n\t\tk.Type(),\n\t\tk.P,\n\t\tk.Q,\n\t\tk.G,\n\t\tk.Y,\n\t}\n\n\treturn Marshal(&w)\n}\n\nfunc (k *dsaPublicKey) Verify(data []byte, sig *Signature) error {\n\tif sig.Format != k.Type() {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, k.Type())\n\t}\n\thash, err := hashFunc(sig.Format)\n\tif err != nil {\n\t\treturn err\n\t}\n\th := hash.New()\n\th.Write(data)\n\tdigest := h.Sum(nil)\n\n\t// Per RFC 4253, section 6.6,\n\t// The value for 'dss_signature_blob' is encoded as a string containing\n\t// r, followed by s (which are 160-bit integers, without lengths or\n\t// padding, unsigned, and in network byte order).\n\t// For DSS purposes, sig.Blob should be exactly 40 bytes in length.\n\tif len(sig.Blob) != 40 {\n\t\treturn errors.New(\"ssh: DSA signature parse error\")\n\t}\n\tr := new(big.Int).SetBytes(sig.Blob[:20])\n\ts := new(big.Int).SetBytes(sig.Blob[20:])\n\tif dsa.Verify((*dsa.PublicKey)(k), digest, r, s) {\n\t\treturn nil\n\t}\n\treturn errors.New(\"ssh: signature did not verify\")\n}\n\nfunc (k *dsaPublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn (*dsa.PublicKey)(k)\n}\n\ntype dsaPrivateKey struct {\n\t*dsa.PrivateKey\n}\n\nfunc (k *dsaPrivateKey) PublicKey() PublicKey {\n\treturn (*dsaPublicKey)(&k.PrivateKey.PublicKey)\n}\n\nfunc (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) {\n\treturn k.SignWithAlgorithm(rand, data, k.PublicKey().Type())\n}\n\nfunc (k *dsaPrivateKey) Algorithms() []string {\n\treturn []string{k.PublicKey().Type()}\n}\n\nfunc (k *dsaPrivateKey) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error) {\n\tif algorithm != \"\" && algorithm != k.PublicKey().Type() {\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported signature algorithm %s\", algorithm)\n\t}\n\n\thash, err := hashFunc(k.PublicKey().Type())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\th := hash.New()\n\th.Write(data)\n\tdigest := h.Sum(nil)\n\tr, s, err := dsa.Sign(rand, k.PrivateKey, digest)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsig := make([]byte, 40)\n\trb := r.Bytes()\n\tsb := s.Bytes()\n\n\tcopy(sig[20-len(rb):20], rb)\n\tcopy(sig[40-len(sb):], sb)\n\n\treturn &Signature{\n\t\tFormat: k.PublicKey().Type(),\n\t\tBlob:   sig,\n\t}, nil\n}\n\ntype ecdsaPublicKey ecdsa.PublicKey\n\nfunc (k *ecdsaPublicKey) Type() string {\n\treturn \"ecdsa-sha2-\" + k.nistID()\n}\n\nfunc (k *ecdsaPublicKey) nistID() string {\n\tswitch k.Params().BitSize {\n\tcase 256:\n\t\treturn \"nistp256\"\n\tcase 384:\n\t\treturn \"nistp384\"\n\tcase 521:\n\t\treturn \"nistp521\"\n\t}\n\tpanic(\"ssh: unsupported ecdsa key size\")\n}\n\ntype ed25519PublicKey ed25519.PublicKey\n\nfunc (k ed25519PublicKey) Type() string {\n\treturn KeyAlgoED25519\n}\n\nfunc parseED25519(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tKeyBytes []byte\n\t\tRest     []byte `ssh:\"rest\"`\n\t}\n\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif l := len(w.KeyBytes); l != ed25519.PublicKeySize {\n\t\treturn nil, nil, fmt.Errorf(\"invalid size %d for Ed25519 public key\", l)\n\t}\n\n\treturn ed25519PublicKey(w.KeyBytes), w.Rest, nil\n}\n\nfunc (k ed25519PublicKey) Marshal() []byte {\n\tw := struct {\n\t\tName     string\n\t\tKeyBytes []byte\n\t}{\n\t\tKeyAlgoED25519,\n\t\t[]byte(k),\n\t}\n\treturn Marshal(&w)\n}\n\nfunc (k ed25519PublicKey) Verify(b []byte, sig *Signature) error {\n\tif sig.Format != k.Type() {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, k.Type())\n\t}\n\tif l := len(k); l != ed25519.PublicKeySize {\n\t\treturn fmt.Errorf(\"ssh: invalid size %d for Ed25519 public key\", l)\n\t}\n\n\tif ok := ed25519.Verify(ed25519.PublicKey(k), b, sig.Blob); !ok {\n\t\treturn errors.New(\"ssh: signature did not verify\")\n\t}\n\n\treturn nil\n}\n\nfunc (k ed25519PublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn ed25519.PublicKey(k)\n}\n\nfunc supportedEllipticCurve(curve elliptic.Curve) bool {\n\treturn curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521()\n}\n\n// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1.\nfunc parseECDSA(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tCurve    string\n\t\tKeyBytes []byte\n\t\tRest     []byte `ssh:\"rest\"`\n\t}\n\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tkey := new(ecdsa.PublicKey)\n\n\tswitch w.Curve {\n\tcase \"nistp256\":\n\t\tkey.Curve = elliptic.P256()\n\tcase \"nistp384\":\n\t\tkey.Curve = elliptic.P384()\n\tcase \"nistp521\":\n\t\tkey.Curve = elliptic.P521()\n\tdefault:\n\t\treturn nil, nil, errors.New(\"ssh: unsupported curve\")\n\t}\n\n\tkey.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes)\n\tif key.X == nil || key.Y == nil {\n\t\treturn nil, nil, errors.New(\"ssh: invalid curve point\")\n\t}\n\treturn (*ecdsaPublicKey)(key), w.Rest, nil\n}\n\nfunc (k *ecdsaPublicKey) Marshal() []byte {\n\t// See RFC 5656, section 3.1.\n\tkeyBytes := elliptic.Marshal(k.Curve, k.X, k.Y)\n\t// ECDSA publickey struct layout should match the struct used by\n\t// parseECDSACert in the x/crypto/ssh/agent package.\n\tw := struct {\n\t\tName string\n\t\tID   string\n\t\tKey  []byte\n\t}{\n\t\tk.Type(),\n\t\tk.nistID(),\n\t\tkeyBytes,\n\t}\n\n\treturn Marshal(&w)\n}\n\nfunc (k *ecdsaPublicKey) Verify(data []byte, sig *Signature) error {\n\tif sig.Format != k.Type() {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, k.Type())\n\t}\n\thash, err := hashFunc(sig.Format)\n\tif err != nil {\n\t\treturn err\n\t}\n\th := hash.New()\n\th.Write(data)\n\tdigest := h.Sum(nil)\n\n\t// Per RFC 5656, section 3.1.2,\n\t// The ecdsa_signature_blob value has the following specific encoding:\n\t//    mpint    r\n\t//    mpint    s\n\tvar ecSig struct {\n\t\tR *big.Int\n\t\tS *big.Int\n\t}\n\n\tif err := Unmarshal(sig.Blob, &ecSig); err != nil {\n\t\treturn err\n\t}\n\n\tif ecdsa.Verify((*ecdsa.PublicKey)(k), digest, ecSig.R, ecSig.S) {\n\t\treturn nil\n\t}\n\treturn errors.New(\"ssh: signature did not verify\")\n}\n\nfunc (k *ecdsaPublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn (*ecdsa.PublicKey)(k)\n}\n\n// skFields holds the additional fields present in U2F/FIDO2 signatures.\n// See openssh/PROTOCOL.u2f 'SSH U2F Signatures' for details.\ntype skFields struct {\n\t// Flags contains U2F/FIDO2 flags such as 'user present'\n\tFlags byte\n\t// Counter is a monotonic signature counter which can be\n\t// used to detect concurrent use of a private key, should\n\t// it be extracted from hardware.\n\tCounter uint32\n}\n\ntype skECDSAPublicKey struct {\n\t// application is a URL-like string, typically \"ssh:\" for SSH.\n\t// see openssh/PROTOCOL.u2f for details.\n\tapplication string\n\tecdsa.PublicKey\n}\n\nfunc (k *skECDSAPublicKey) Type() string {\n\treturn KeyAlgoSKECDSA256\n}\n\nfunc (k *skECDSAPublicKey) nistID() string {\n\treturn \"nistp256\"\n}\n\nfunc parseSKECDSA(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tCurve       string\n\t\tKeyBytes    []byte\n\t\tApplication string\n\t\tRest        []byte `ssh:\"rest\"`\n\t}\n\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tkey := new(skECDSAPublicKey)\n\tkey.application = w.Application\n\n\tif w.Curve != \"nistp256\" {\n\t\treturn nil, nil, errors.New(\"ssh: unsupported curve\")\n\t}\n\tkey.Curve = elliptic.P256()\n\n\tkey.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes)\n\tif key.X == nil || key.Y == nil {\n\t\treturn nil, nil, errors.New(\"ssh: invalid curve point\")\n\t}\n\n\treturn key, w.Rest, nil\n}\n\nfunc (k *skECDSAPublicKey) Marshal() []byte {\n\t// See RFC 5656, section 3.1.\n\tkeyBytes := elliptic.Marshal(k.Curve, k.X, k.Y)\n\tw := struct {\n\t\tName        string\n\t\tID          string\n\t\tKey         []byte\n\t\tApplication string\n\t}{\n\t\tk.Type(),\n\t\tk.nistID(),\n\t\tkeyBytes,\n\t\tk.application,\n\t}\n\n\treturn Marshal(&w)\n}\n\nfunc (k *skECDSAPublicKey) Verify(data []byte, sig *Signature) error {\n\tif sig.Format != k.Type() {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, k.Type())\n\t}\n\thash, err := hashFunc(sig.Format)\n\tif err != nil {\n\t\treturn err\n\t}\n\th := hash.New()\n\th.Write([]byte(k.application))\n\tappDigest := h.Sum(nil)\n\n\th.Reset()\n\th.Write(data)\n\tdataDigest := h.Sum(nil)\n\n\tvar ecSig struct {\n\t\tR *big.Int\n\t\tS *big.Int\n\t}\n\tif err := Unmarshal(sig.Blob, &ecSig); err != nil {\n\t\treturn err\n\t}\n\n\tvar skf skFields\n\tif err := Unmarshal(sig.Rest, &skf); err != nil {\n\t\treturn err\n\t}\n\n\tblob := struct {\n\t\tApplicationDigest []byte `ssh:\"rest\"`\n\t\tFlags             byte\n\t\tCounter           uint32\n\t\tMessageDigest     []byte `ssh:\"rest\"`\n\t}{\n\t\tappDigest,\n\t\tskf.Flags,\n\t\tskf.Counter,\n\t\tdataDigest,\n\t}\n\n\toriginal := Marshal(blob)\n\n\th.Reset()\n\th.Write(original)\n\tdigest := h.Sum(nil)\n\n\tif ecdsa.Verify((*ecdsa.PublicKey)(&k.PublicKey), digest, ecSig.R, ecSig.S) {\n\t\treturn nil\n\t}\n\treturn errors.New(\"ssh: signature did not verify\")\n}\n\nfunc (k *skECDSAPublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn &k.PublicKey\n}\n\ntype skEd25519PublicKey struct {\n\t// application is a URL-like string, typically \"ssh:\" for SSH.\n\t// see openssh/PROTOCOL.u2f for details.\n\tapplication string\n\ted25519.PublicKey\n}\n\nfunc (k *skEd25519PublicKey) Type() string {\n\treturn KeyAlgoSKED25519\n}\n\nfunc parseSKEd25519(in []byte) (out PublicKey, rest []byte, err error) {\n\tvar w struct {\n\t\tKeyBytes    []byte\n\t\tApplication string\n\t\tRest        []byte `ssh:\"rest\"`\n\t}\n\n\tif err := Unmarshal(in, &w); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif l := len(w.KeyBytes); l != ed25519.PublicKeySize {\n\t\treturn nil, nil, fmt.Errorf(\"invalid size %d for Ed25519 public key\", l)\n\t}\n\n\tkey := new(skEd25519PublicKey)\n\tkey.application = w.Application\n\tkey.PublicKey = ed25519.PublicKey(w.KeyBytes)\n\n\treturn key, w.Rest, nil\n}\n\nfunc (k *skEd25519PublicKey) Marshal() []byte {\n\tw := struct {\n\t\tName        string\n\t\tKeyBytes    []byte\n\t\tApplication string\n\t}{\n\t\tKeyAlgoSKED25519,\n\t\t[]byte(k.PublicKey),\n\t\tk.application,\n\t}\n\treturn Marshal(&w)\n}\n\nfunc (k *skEd25519PublicKey) Verify(data []byte, sig *Signature) error {\n\tif sig.Format != k.Type() {\n\t\treturn fmt.Errorf(\"ssh: signature type %s for key type %s\", sig.Format, k.Type())\n\t}\n\tif l := len(k.PublicKey); l != ed25519.PublicKeySize {\n\t\treturn fmt.Errorf(\"invalid size %d for Ed25519 public key\", l)\n\t}\n\n\thash, err := hashFunc(sig.Format)\n\tif err != nil {\n\t\treturn err\n\t}\n\th := hash.New()\n\th.Write([]byte(k.application))\n\tappDigest := h.Sum(nil)\n\n\th.Reset()\n\th.Write(data)\n\tdataDigest := h.Sum(nil)\n\n\tvar edSig struct {\n\t\tSignature []byte `ssh:\"rest\"`\n\t}\n\n\tif err := Unmarshal(sig.Blob, &edSig); err != nil {\n\t\treturn err\n\t}\n\n\tvar skf skFields\n\tif err := Unmarshal(sig.Rest, &skf); err != nil {\n\t\treturn err\n\t}\n\n\tblob := struct {\n\t\tApplicationDigest []byte `ssh:\"rest\"`\n\t\tFlags             byte\n\t\tCounter           uint32\n\t\tMessageDigest     []byte `ssh:\"rest\"`\n\t}{\n\t\tappDigest,\n\t\tskf.Flags,\n\t\tskf.Counter,\n\t\tdataDigest,\n\t}\n\n\toriginal := Marshal(blob)\n\n\tif ok := ed25519.Verify(k.PublicKey, original, edSig.Signature); !ok {\n\t\treturn errors.New(\"ssh: signature did not verify\")\n\t}\n\n\treturn nil\n}\n\nfunc (k *skEd25519PublicKey) CryptoPublicKey() crypto.PublicKey {\n\treturn k.PublicKey\n}\n\n// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey,\n// *ecdsa.PrivateKey or any other crypto.Signer and returns a\n// corresponding Signer instance. ECDSA keys must use P-256, P-384 or\n// P-521. DSA keys must use parameter size L1024N160.\nfunc NewSignerFromKey(key interface{}) (Signer, error) {\n\tswitch key := key.(type) {\n\tcase crypto.Signer:\n\t\treturn NewSignerFromSigner(key)\n\tcase *dsa.PrivateKey:\n\t\treturn newDSAPrivateKey(key)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported key type %T\", key)\n\t}\n}\n\nfunc newDSAPrivateKey(key *dsa.PrivateKey) (Signer, error) {\n\tif err := checkDSAParams(&key.PublicKey.Parameters); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &dsaPrivateKey{key}, nil\n}\n\ntype wrappedSigner struct {\n\tsigner crypto.Signer\n\tpubKey PublicKey\n}\n\n// NewSignerFromSigner takes any crypto.Signer implementation and\n// returns a corresponding Signer interface. This can be used, for\n// example, with keys kept in hardware modules.\nfunc NewSignerFromSigner(signer crypto.Signer) (Signer, error) {\n\tpubKey, err := NewPublicKey(signer.Public())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &wrappedSigner{signer, pubKey}, nil\n}\n\nfunc (s *wrappedSigner) PublicKey() PublicKey {\n\treturn s.pubKey\n}\n\nfunc (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) {\n\treturn s.SignWithAlgorithm(rand, data, s.pubKey.Type())\n}\n\nfunc (s *wrappedSigner) Algorithms() []string {\n\treturn algorithmsForKeyFormat(s.pubKey.Type())\n}\n\nfunc (s *wrappedSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm string) (*Signature, error) {\n\tif algorithm == \"\" {\n\t\talgorithm = s.pubKey.Type()\n\t}\n\n\tif !slices.Contains(s.Algorithms(), algorithm) {\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported signature algorithm %q for key format %q\", algorithm, s.pubKey.Type())\n\t}\n\n\thashFunc, err := hashFunc(algorithm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar digest []byte\n\tif hashFunc != 0 {\n\t\th := hashFunc.New()\n\t\th.Write(data)\n\t\tdigest = h.Sum(nil)\n\t} else {\n\t\tdigest = data\n\t}\n\n\tsignature, err := s.signer.Sign(rand, digest, hashFunc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// crypto.Signer.Sign is expected to return an ASN.1-encoded signature\n\t// for ECDSA and DSA, but that's not the encoding expected by SSH, so\n\t// re-encode.\n\tswitch s.pubKey.(type) {\n\tcase *ecdsaPublicKey, *dsaPublicKey:\n\t\ttype asn1Signature struct {\n\t\t\tR, S *big.Int\n\t\t}\n\t\tasn1Sig := new(asn1Signature)\n\t\t_, err := asn1.Unmarshal(signature, asn1Sig)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch s.pubKey.(type) {\n\t\tcase *ecdsaPublicKey:\n\t\t\tsignature = Marshal(asn1Sig)\n\n\t\tcase *dsaPublicKey:\n\t\t\tsignature = make([]byte, 40)\n\t\t\tr := asn1Sig.R.Bytes()\n\t\t\ts := asn1Sig.S.Bytes()\n\t\t\tcopy(signature[20-len(r):20], r)\n\t\t\tcopy(signature[40-len(s):40], s)\n\t\t}\n\t}\n\n\treturn &Signature{\n\t\tFormat: algorithm,\n\t\tBlob:   signature,\n\t}, nil\n}\n\n// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey,\n// or ed25519.PublicKey returns a corresponding PublicKey instance.\n// ECDSA keys must use P-256, P-384 or P-521.\nfunc NewPublicKey(key interface{}) (PublicKey, error) {\n\tswitch key := key.(type) {\n\tcase *rsa.PublicKey:\n\t\treturn (*rsaPublicKey)(key), nil\n\tcase *ecdsa.PublicKey:\n\t\tif !supportedEllipticCurve(key.Curve) {\n\t\t\treturn nil, errors.New(\"ssh: only P-256, P-384 and P-521 EC keys are supported\")\n\t\t}\n\t\treturn (*ecdsaPublicKey)(key), nil\n\tcase *dsa.PublicKey:\n\t\treturn (*dsaPublicKey)(key), nil\n\tcase ed25519.PublicKey:\n\t\tif l := len(key); l != ed25519.PublicKeySize {\n\t\t\treturn nil, fmt.Errorf(\"ssh: invalid size %d for Ed25519 public key\", l)\n\t\t}\n\t\treturn ed25519PublicKey(key), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported key type %T\", key)\n\t}\n}\n\n// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports\n// the same keys as ParseRawPrivateKey. If the private key is encrypted, it\n// will return a PassphraseMissingError.\nfunc ParsePrivateKey(pemBytes []byte) (Signer, error) {\n\tkey, err := ParseRawPrivateKey(pemBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewSignerFromKey(key)\n}\n\n// ParsePrivateKeyWithPassphrase returns a Signer from a PEM encoded private\n// key and passphrase. It supports the same keys as\n// ParseRawPrivateKeyWithPassphrase.\nfunc ParsePrivateKeyWithPassphrase(pemBytes, passphrase []byte) (Signer, error) {\n\tkey, err := ParseRawPrivateKeyWithPassphrase(pemBytes, passphrase)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewSignerFromKey(key)\n}\n\n// encryptedBlock tells whether a private key is\n// encrypted by examining its Proc-Type header\n// for a mention of ENCRYPTED\n// according to RFC 1421 Section 4.6.1.1.\nfunc encryptedBlock(block *pem.Block) bool {\n\treturn strings.Contains(block.Headers[\"Proc-Type\"], \"ENCRYPTED\")\n}\n\n// A PassphraseMissingError indicates that parsing this private key requires a\n// passphrase. Use ParsePrivateKeyWithPassphrase.\ntype PassphraseMissingError struct {\n\t// PublicKey will be set if the private key format includes an unencrypted\n\t// public key along with the encrypted private key.\n\tPublicKey PublicKey\n}\n\nfunc (*PassphraseMissingError) Error() string {\n\treturn \"ssh: this private key is passphrase protected\"\n}\n\n// ParseRawPrivateKey returns a private key from a PEM encoded private key. It supports\n// RSA, DSA, ECDSA, and Ed25519 private keys in PKCS#1, PKCS#8, OpenSSL, and OpenSSH\n// formats. If the private key is encrypted, it will return a PassphraseMissingError.\nfunc ParseRawPrivateKey(pemBytes []byte) (interface{}, error) {\n\tblock, _ := pem.Decode(pemBytes)\n\tif block == nil {\n\t\treturn nil, errors.New(\"ssh: no key found\")\n\t}\n\n\tif encryptedBlock(block) {\n\t\treturn nil, &PassphraseMissingError{}\n\t}\n\n\tswitch block.Type {\n\tcase \"RSA PRIVATE KEY\":\n\t\treturn x509.ParsePKCS1PrivateKey(block.Bytes)\n\t// RFC5208 - https://tools.ietf.org/html/rfc5208\n\tcase \"PRIVATE KEY\":\n\t\treturn x509.ParsePKCS8PrivateKey(block.Bytes)\n\tcase \"EC PRIVATE KEY\":\n\t\treturn x509.ParseECPrivateKey(block.Bytes)\n\tcase \"DSA PRIVATE KEY\":\n\t\treturn ParseDSAPrivateKey(block.Bytes)\n\tcase \"OPENSSH PRIVATE KEY\":\n\t\treturn parseOpenSSHPrivateKey(block.Bytes, unencryptedOpenSSHKey)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported key type %q\", block.Type)\n\t}\n}\n\n// ParseRawPrivateKeyWithPassphrase returns a private key decrypted with\n// passphrase from a PEM encoded private key. If the passphrase is wrong, it\n// will return x509.IncorrectPasswordError.\nfunc ParseRawPrivateKeyWithPassphrase(pemBytes, passphrase []byte) (interface{}, error) {\n\tblock, _ := pem.Decode(pemBytes)\n\tif block == nil {\n\t\treturn nil, errors.New(\"ssh: no key found\")\n\t}\n\n\tif block.Type == \"OPENSSH PRIVATE KEY\" {\n\t\treturn parseOpenSSHPrivateKey(block.Bytes, passphraseProtectedOpenSSHKey(passphrase))\n\t}\n\n\tif !encryptedBlock(block) || !x509.IsEncryptedPEMBlock(block) {\n\t\treturn nil, errors.New(\"ssh: not an encrypted key\")\n\t}\n\n\tbuf, err := x509.DecryptPEMBlock(block, passphrase)\n\tif err != nil {\n\t\tif err == x509.IncorrectPasswordError {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, fmt.Errorf(\"ssh: cannot decode encrypted private keys: %v\", err)\n\t}\n\n\tvar result interface{}\n\n\tswitch block.Type {\n\tcase \"RSA PRIVATE KEY\":\n\t\tresult, err = x509.ParsePKCS1PrivateKey(buf)\n\tcase \"EC PRIVATE KEY\":\n\t\tresult, err = x509.ParseECPrivateKey(buf)\n\tcase \"DSA PRIVATE KEY\":\n\t\tresult, err = ParseDSAPrivateKey(buf)\n\tdefault:\n\t\terr = fmt.Errorf(\"ssh: unsupported key type %q\", block.Type)\n\t}\n\t// Because of deficiencies in the format, DecryptPEMBlock does not always\n\t// detect an incorrect password. In these cases decrypted DER bytes is\n\t// random noise. If the parsing of the key returns an asn1.StructuralError\n\t// we return x509.IncorrectPasswordError.\n\tif _, ok := err.(asn1.StructuralError); ok {\n\t\treturn nil, x509.IncorrectPasswordError\n\t}\n\n\treturn result, err\n}\n\n// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as\n// specified by the OpenSSL DSA man page.\nfunc ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) {\n\tvar k struct {\n\t\tVersion int\n\t\tP       *big.Int\n\t\tQ       *big.Int\n\t\tG       *big.Int\n\t\tPub     *big.Int\n\t\tPriv    *big.Int\n\t}\n\trest, err := asn1.Unmarshal(der, &k)\n\tif err != nil {\n\t\treturn nil, errors.New(\"ssh: failed to parse DSA key: \" + err.Error())\n\t}\n\tif len(rest) > 0 {\n\t\treturn nil, errors.New(\"ssh: garbage after DSA key\")\n\t}\n\n\treturn &dsa.PrivateKey{\n\t\tPublicKey: dsa.PublicKey{\n\t\t\tParameters: dsa.Parameters{\n\t\t\t\tP: k.P,\n\t\t\t\tQ: k.Q,\n\t\t\t\tG: k.G,\n\t\t\t},\n\t\t\tY: k.Pub,\n\t\t},\n\t\tX: k.Priv,\n\t}, nil\n}\n\nfunc unencryptedOpenSSHKey(cipherName, kdfName, kdfOpts string, privKeyBlock []byte) ([]byte, error) {\n\tif kdfName != \"none\" || cipherName != \"none\" {\n\t\treturn nil, &PassphraseMissingError{}\n\t}\n\tif kdfOpts != \"\" {\n\t\treturn nil, errors.New(\"ssh: invalid openssh private key\")\n\t}\n\treturn privKeyBlock, nil\n}\n\nfunc passphraseProtectedOpenSSHKey(passphrase []byte) openSSHDecryptFunc {\n\treturn func(cipherName, kdfName, kdfOpts string, privKeyBlock []byte) ([]byte, error) {\n\t\tif kdfName == \"none\" || cipherName == \"none\" {\n\t\t\treturn nil, errors.New(\"ssh: key is not password protected\")\n\t\t}\n\t\tif kdfName != \"bcrypt\" {\n\t\t\treturn nil, fmt.Errorf(\"ssh: unknown KDF %q, only supports %q\", kdfName, \"bcrypt\")\n\t\t}\n\n\t\tvar opts struct {\n\t\t\tSalt   string\n\t\t\tRounds uint32\n\t\t}\n\t\tif err := Unmarshal([]byte(kdfOpts), &opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tk, err := bcrypt_pbkdf.Key(passphrase, []byte(opts.Salt), int(opts.Rounds), 32+16)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tkey, iv := k[:32], k[32:]\n\n\t\tc, err := aes.NewCipher(key)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch cipherName {\n\t\tcase \"aes256-ctr\":\n\t\t\tctr := cipher.NewCTR(c, iv)\n\t\t\tctr.XORKeyStream(privKeyBlock, privKeyBlock)\n\t\tcase \"aes256-cbc\":\n\t\t\tif len(privKeyBlock)%c.BlockSize() != 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"ssh: invalid encrypted private key length, not a multiple of the block size\")\n\t\t\t}\n\t\t\tcbc := cipher.NewCBCDecrypter(c, iv)\n\t\t\tcbc.CryptBlocks(privKeyBlock, privKeyBlock)\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"ssh: unknown cipher %q, only supports %q or %q\", cipherName, \"aes256-ctr\", \"aes256-cbc\")\n\t\t}\n\n\t\treturn privKeyBlock, nil\n\t}\n}\n\nfunc unencryptedOpenSSHMarshaler(privKeyBlock []byte) ([]byte, string, string, string, error) {\n\tkey := generateOpenSSHPadding(privKeyBlock, 8)\n\treturn key, \"none\", \"none\", \"\", nil\n}\n\nfunc passphraseProtectedOpenSSHMarshaler(passphrase []byte) openSSHEncryptFunc {\n\treturn func(privKeyBlock []byte) ([]byte, string, string, string, error) {\n\t\tsalt := make([]byte, 16)\n\t\tif _, err := rand.Read(salt); err != nil {\n\t\t\treturn nil, \"\", \"\", \"\", err\n\t\t}\n\n\t\topts := struct {\n\t\t\tSalt   []byte\n\t\t\tRounds uint32\n\t\t}{salt, 16}\n\n\t\t// Derive key to encrypt the private key block.\n\t\tk, err := bcrypt_pbkdf.Key(passphrase, salt, int(opts.Rounds), 32+aes.BlockSize)\n\t\tif err != nil {\n\t\t\treturn nil, \"\", \"\", \"\", err\n\t\t}\n\n\t\t// Add padding matching the block size of AES.\n\t\tkeyBlock := generateOpenSSHPadding(privKeyBlock, aes.BlockSize)\n\n\t\t// Encrypt the private key using the derived secret.\n\n\t\tdst := make([]byte, len(keyBlock))\n\t\tkey, iv := k[:32], k[32:]\n\t\tblock, err := aes.NewCipher(key)\n\t\tif err != nil {\n\t\t\treturn nil, \"\", \"\", \"\", err\n\t\t}\n\n\t\tstream := cipher.NewCTR(block, iv)\n\t\tstream.XORKeyStream(dst, keyBlock)\n\n\t\treturn dst, \"aes256-ctr\", \"bcrypt\", string(Marshal(opts)), nil\n\t}\n}\n\nconst privateKeyAuthMagic = \"openssh-key-v1\\x00\"\n\ntype openSSHDecryptFunc func(CipherName, KdfName, KdfOpts string, PrivKeyBlock []byte) ([]byte, error)\ntype openSSHEncryptFunc func(PrivKeyBlock []byte) (ProtectedKeyBlock []byte, cipherName, kdfName, kdfOptions string, err error)\n\ntype openSSHEncryptedPrivateKey struct {\n\tCipherName   string\n\tKdfName      string\n\tKdfOpts      string\n\tNumKeys      uint32\n\tPubKey       []byte\n\tPrivKeyBlock []byte\n\tRest         []byte `ssh:\"rest\"`\n}\n\ntype openSSHPrivateKey struct {\n\tCheck1  uint32\n\tCheck2  uint32\n\tKeytype string\n\tRest    []byte `ssh:\"rest\"`\n}\n\ntype openSSHRSAPrivateKey struct {\n\tN       *big.Int\n\tE       *big.Int\n\tD       *big.Int\n\tIqmp    *big.Int\n\tP       *big.Int\n\tQ       *big.Int\n\tComment string\n\tPad     []byte `ssh:\"rest\"`\n}\n\ntype openSSHEd25519PrivateKey struct {\n\tPub     []byte\n\tPriv    []byte\n\tComment string\n\tPad     []byte `ssh:\"rest\"`\n}\n\ntype openSSHECDSAPrivateKey struct {\n\tCurve   string\n\tPub     []byte\n\tD       *big.Int\n\tComment string\n\tPad     []byte `ssh:\"rest\"`\n}\n\n// parseOpenSSHPrivateKey parses an OpenSSH private key, using the decrypt\n// function to unwrap the encrypted portion. unencryptedOpenSSHKey can be used\n// as the decrypt function to parse an unencrypted private key. See\n// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key.\nfunc parseOpenSSHPrivateKey(key []byte, decrypt openSSHDecryptFunc) (crypto.PrivateKey, error) {\n\tif len(key) < len(privateKeyAuthMagic) || string(key[:len(privateKeyAuthMagic)]) != privateKeyAuthMagic {\n\t\treturn nil, errors.New(\"ssh: invalid openssh private key format\")\n\t}\n\tremaining := key[len(privateKeyAuthMagic):]\n\n\tvar w openSSHEncryptedPrivateKey\n\tif err := Unmarshal(remaining, &w); err != nil {\n\t\treturn nil, err\n\t}\n\tif w.NumKeys != 1 {\n\t\t// We only support single key files, and so does OpenSSH.\n\t\t// https://github.com/openssh/openssh-portable/blob/4103a3ec7/sshkey.c#L4171\n\t\treturn nil, errors.New(\"ssh: multi-key files are not supported\")\n\t}\n\n\tprivKeyBlock, err := decrypt(w.CipherName, w.KdfName, w.KdfOpts, w.PrivKeyBlock)\n\tif err != nil {\n\t\tif err, ok := err.(*PassphraseMissingError); ok {\n\t\t\tpub, errPub := ParsePublicKey(w.PubKey)\n\t\t\tif errPub != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"ssh: failed to parse embedded public key: %v\", errPub)\n\t\t\t}\n\t\t\terr.PublicKey = pub\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tvar pk1 openSSHPrivateKey\n\tif err := Unmarshal(privKeyBlock, &pk1); err != nil || pk1.Check1 != pk1.Check2 {\n\t\tif w.CipherName != \"none\" {\n\t\t\treturn nil, x509.IncorrectPasswordError\n\t\t}\n\t\treturn nil, errors.New(\"ssh: malformed OpenSSH key\")\n\t}\n\n\tswitch pk1.Keytype {\n\tcase KeyAlgoRSA:\n\t\tvar key openSSHRSAPrivateKey\n\t\tif err := Unmarshal(pk1.Rest, &key); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := checkOpenSSHKeyPadding(key.Pad); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpk := &rsa.PrivateKey{\n\t\t\tPublicKey: rsa.PublicKey{\n\t\t\t\tN: key.N,\n\t\t\t\tE: int(key.E.Int64()),\n\t\t\t},\n\t\t\tD:      key.D,\n\t\t\tPrimes: []*big.Int{key.P, key.Q},\n\t\t}\n\n\t\tif err := pk.Validate(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpk.Precompute()\n\n\t\treturn pk, nil\n\tcase KeyAlgoED25519:\n\t\tvar key openSSHEd25519PrivateKey\n\t\tif err := Unmarshal(pk1.Rest, &key); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif len(key.Priv) != ed25519.PrivateKeySize {\n\t\t\treturn nil, errors.New(\"ssh: private key unexpected length\")\n\t\t}\n\n\t\tif err := checkOpenSSHKeyPadding(key.Pad); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpk := ed25519.PrivateKey(make([]byte, ed25519.PrivateKeySize))\n\t\tcopy(pk, key.Priv)\n\t\treturn &pk, nil\n\tcase KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521:\n\t\tvar key openSSHECDSAPrivateKey\n\t\tif err := Unmarshal(pk1.Rest, &key); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := checkOpenSSHKeyPadding(key.Pad); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar curve elliptic.Curve\n\t\tswitch key.Curve {\n\t\tcase \"nistp256\":\n\t\t\tcurve = elliptic.P256()\n\t\tcase \"nistp384\":\n\t\t\tcurve = elliptic.P384()\n\t\tcase \"nistp521\":\n\t\t\tcurve = elliptic.P521()\n\t\tdefault:\n\t\t\treturn nil, errors.New(\"ssh: unhandled elliptic curve: \" + key.Curve)\n\t\t}\n\n\t\tX, Y := elliptic.Unmarshal(curve, key.Pub)\n\t\tif X == nil || Y == nil {\n\t\t\treturn nil, errors.New(\"ssh: failed to unmarshal public key\")\n\t\t}\n\n\t\tif key.D.Cmp(curve.Params().N) >= 0 {\n\t\t\treturn nil, errors.New(\"ssh: scalar is out of range\")\n\t\t}\n\n\t\tx, y := curve.ScalarBaseMult(key.D.Bytes())\n\t\tif x.Cmp(X) != 0 || y.Cmp(Y) != 0 {\n\t\t\treturn nil, errors.New(\"ssh: public key does not match private key\")\n\t\t}\n\n\t\treturn &ecdsa.PrivateKey{\n\t\t\tPublicKey: ecdsa.PublicKey{\n\t\t\t\tCurve: curve,\n\t\t\t\tX:     X,\n\t\t\t\tY:     Y,\n\t\t\t},\n\t\t\tD: key.D,\n\t\t}, nil\n\tdefault:\n\t\treturn nil, errors.New(\"ssh: unhandled key type\")\n\t}\n}\n\nfunc marshalOpenSSHPrivateKey(key crypto.PrivateKey, comment string, encrypt openSSHEncryptFunc) (*pem.Block, error) {\n\tvar w openSSHEncryptedPrivateKey\n\tvar pk1 openSSHPrivateKey\n\n\t// Random check bytes.\n\tvar check uint32\n\tif err := binary.Read(rand.Reader, binary.BigEndian, &check); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpk1.Check1 = check\n\tpk1.Check2 = check\n\tw.NumKeys = 1\n\n\t// Use a []byte directly on ed25519 keys.\n\tif k, ok := key.(*ed25519.PrivateKey); ok {\n\t\tkey = *k\n\t}\n\n\tswitch k := key.(type) {\n\tcase *rsa.PrivateKey:\n\t\tE := new(big.Int).SetInt64(int64(k.PublicKey.E))\n\t\t// Marshal public key:\n\t\t// E and N are in reversed order in the public and private key.\n\t\tpubKey := struct {\n\t\t\tKeyType string\n\t\t\tE       *big.Int\n\t\t\tN       *big.Int\n\t\t}{\n\t\t\tKeyAlgoRSA,\n\t\t\tE, k.PublicKey.N,\n\t\t}\n\t\tw.PubKey = Marshal(pubKey)\n\n\t\t// Marshal private key.\n\t\tkey := openSSHRSAPrivateKey{\n\t\t\tN:       k.PublicKey.N,\n\t\t\tE:       E,\n\t\t\tD:       k.D,\n\t\t\tIqmp:    k.Precomputed.Qinv,\n\t\t\tP:       k.Primes[0],\n\t\t\tQ:       k.Primes[1],\n\t\t\tComment: comment,\n\t\t}\n\t\tpk1.Keytype = KeyAlgoRSA\n\t\tpk1.Rest = Marshal(key)\n\tcase ed25519.PrivateKey:\n\t\tpub := make([]byte, ed25519.PublicKeySize)\n\t\tpriv := make([]byte, ed25519.PrivateKeySize)\n\t\tcopy(pub, k[32:])\n\t\tcopy(priv, k)\n\n\t\t// Marshal public key.\n\t\tpubKey := struct {\n\t\t\tKeyType string\n\t\t\tPub     []byte\n\t\t}{\n\t\t\tKeyAlgoED25519, pub,\n\t\t}\n\t\tw.PubKey = Marshal(pubKey)\n\n\t\t// Marshal private key.\n\t\tkey := openSSHEd25519PrivateKey{\n\t\t\tPub:     pub,\n\t\t\tPriv:    priv,\n\t\t\tComment: comment,\n\t\t}\n\t\tpk1.Keytype = KeyAlgoED25519\n\t\tpk1.Rest = Marshal(key)\n\tcase *ecdsa.PrivateKey:\n\t\tvar curve, keyType string\n\t\tswitch name := k.Curve.Params().Name; name {\n\t\tcase \"P-256\":\n\t\t\tcurve = \"nistp256\"\n\t\t\tkeyType = KeyAlgoECDSA256\n\t\tcase \"P-384\":\n\t\t\tcurve = \"nistp384\"\n\t\t\tkeyType = KeyAlgoECDSA384\n\t\tcase \"P-521\":\n\t\t\tcurve = \"nistp521\"\n\t\t\tkeyType = KeyAlgoECDSA521\n\t\tdefault:\n\t\t\treturn nil, errors.New(\"ssh: unhandled elliptic curve \" + name)\n\t\t}\n\n\t\tpub := elliptic.Marshal(k.Curve, k.PublicKey.X, k.PublicKey.Y)\n\n\t\t// Marshal public key.\n\t\tpubKey := struct {\n\t\t\tKeyType string\n\t\t\tCurve   string\n\t\t\tPub     []byte\n\t\t}{\n\t\t\tkeyType, curve, pub,\n\t\t}\n\t\tw.PubKey = Marshal(pubKey)\n\n\t\t// Marshal private key.\n\t\tkey := openSSHECDSAPrivateKey{\n\t\t\tCurve:   curve,\n\t\t\tPub:     pub,\n\t\t\tD:       k.D,\n\t\t\tComment: comment,\n\t\t}\n\t\tpk1.Keytype = keyType\n\t\tpk1.Rest = Marshal(key)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported key type %T\", k)\n\t}\n\n\tvar err error\n\t// Add padding and encrypt the key if necessary.\n\tw.PrivKeyBlock, w.CipherName, w.KdfName, w.KdfOpts, err = encrypt(Marshal(pk1))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tb := Marshal(w)\n\tblock := &pem.Block{\n\t\tType:  \"OPENSSH PRIVATE KEY\",\n\t\tBytes: append([]byte(privateKeyAuthMagic), b...),\n\t}\n\treturn block, nil\n}\n\nfunc checkOpenSSHKeyPadding(pad []byte) error {\n\tfor i, b := range pad {\n\t\tif int(b) != i+1 {\n\t\t\treturn errors.New(\"ssh: padding not as expected\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc generateOpenSSHPadding(block []byte, blockSize int) []byte {\n\tfor i, l := 0, len(block); (l+i)%blockSize != 0; i++ {\n\t\tblock = append(block, byte(i+1))\n\t}\n\treturn block\n}\n\n// FingerprintLegacyMD5 returns the user presentation of the key's\n// fingerprint as described by RFC 4716 section 4.\nfunc FingerprintLegacyMD5(pubKey PublicKey) string {\n\tmd5sum := md5.Sum(pubKey.Marshal())\n\thexarray := make([]string, len(md5sum))\n\tfor i, c := range md5sum {\n\t\thexarray[i] = hex.EncodeToString([]byte{c})\n\t}\n\treturn strings.Join(hexarray, \":\")\n}\n\n// FingerprintSHA256 returns the user presentation of the key's\n// fingerprint as unpadded base64 encoded sha256 hash.\n// This format was introduced from OpenSSH 6.8.\n// https://www.openssh.com/txt/release-6.8\n// https://tools.ietf.org/html/rfc4648#section-3.2 (unpadded base64 encoding)\nfunc FingerprintSHA256(pubKey PublicKey) string {\n\tsha256sum := sha256.Sum256(pubKey.Marshal())\n\thash := base64.RawStdEncoding.EncodeToString(sha256sum[:])\n\treturn \"SHA256:\" + hash\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/mac.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 ssh\n\n// Message authentication support\n\nimport (\n\t\"crypto/fips140\"\n\t\"crypto/hmac\"\n\t\"crypto/sha1\"\n\t\"crypto/sha256\"\n\t\"crypto/sha512\"\n\t\"hash\"\n\t\"slices\"\n)\n\ntype macMode struct {\n\tkeySize int\n\tetm     bool\n\tnew     func(key []byte) hash.Hash\n}\n\n// truncatingMAC wraps around a hash.Hash and truncates the output digest to\n// a given size.\ntype truncatingMAC struct {\n\tlength int\n\thmac   hash.Hash\n}\n\nfunc (t truncatingMAC) Write(data []byte) (int, error) {\n\treturn t.hmac.Write(data)\n}\n\nfunc (t truncatingMAC) Sum(in []byte) []byte {\n\tout := t.hmac.Sum(in)\n\treturn out[:len(in)+t.length]\n}\n\nfunc (t truncatingMAC) Reset() {\n\tt.hmac.Reset()\n}\n\nfunc (t truncatingMAC) Size() int {\n\treturn t.length\n}\n\nfunc (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() }\n\n// macModes defines the supported MACs. MACs not included are not supported\n// and will not be negotiated, even if explicitly configured. When FIPS mode is\n// enabled, only FIPS-approved algorithms are included.\nvar macModes = map[string]*macMode{}\n\nfunc init() {\n\tmacModes[HMACSHA512ETM] = &macMode{64, true, func(key []byte) hash.Hash {\n\t\treturn hmac.New(sha512.New, key)\n\t}}\n\tmacModes[HMACSHA256ETM] = &macMode{32, true, func(key []byte) hash.Hash {\n\t\treturn hmac.New(sha256.New, key)\n\t}}\n\tmacModes[HMACSHA512] = &macMode{64, false, func(key []byte) hash.Hash {\n\t\treturn hmac.New(sha512.New, key)\n\t}}\n\tmacModes[HMACSHA256] = &macMode{32, false, func(key []byte) hash.Hash {\n\t\treturn hmac.New(sha256.New, key)\n\t}}\n\n\tif fips140.Enabled() {\n\t\tdefaultMACs = slices.DeleteFunc(defaultMACs, func(algo string) bool {\n\t\t\t_, ok := macModes[algo]\n\t\t\treturn !ok\n\t\t})\n\t\treturn\n\t}\n\n\tmacModes[HMACSHA1] = &macMode{20, false, func(key []byte) hash.Hash {\n\t\treturn hmac.New(sha1.New, key)\n\t}}\n\tmacModes[InsecureHMACSHA196] = &macMode{20, false, func(key []byte) hash.Hash {\n\t\treturn truncatingMAC{12, hmac.New(sha1.New, key)}\n\t}}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/messages.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// These are SSH message type numbers. They are scattered around several\n// documents but many were taken from [SSH-PARAMETERS].\nconst (\n\tmsgIgnore        = 2\n\tmsgUnimplemented = 3\n\tmsgDebug         = 4\n\tmsgNewKeys       = 21\n)\n\n// SSH messages:\n//\n// These structures mirror the wire format of the corresponding SSH messages.\n// They are marshaled using reflection with the marshal and unmarshal functions\n// in this file. The only wrinkle is that a final member of type []byte with a\n// ssh tag of \"rest\" receives the remainder of a packet when unmarshaling.\n\n// See RFC 4253, section 11.1.\nconst msgDisconnect = 1\n\n// disconnectMsg is the message that signals a disconnect. It is also\n// the error type returned from mux.Wait()\ntype disconnectMsg struct {\n\tReason   uint32 `sshtype:\"1\"`\n\tMessage  string\n\tLanguage string\n}\n\nfunc (d *disconnectMsg) Error() string {\n\treturn fmt.Sprintf(\"ssh: disconnect, reason %d: %s\", d.Reason, d.Message)\n}\n\n// See RFC 4253, section 7.1.\nconst msgKexInit = 20\n\ntype kexInitMsg struct {\n\tCookie                  [16]byte `sshtype:\"20\"`\n\tKexAlgos                []string\n\tServerHostKeyAlgos      []string\n\tCiphersClientServer     []string\n\tCiphersServerClient     []string\n\tMACsClientServer        []string\n\tMACsServerClient        []string\n\tCompressionClientServer []string\n\tCompressionServerClient []string\n\tLanguagesClientServer   []string\n\tLanguagesServerClient   []string\n\tFirstKexFollows         bool\n\tReserved                uint32\n}\n\n// See RFC 4253, section 8.\n\n// Diffie-Hellman\nconst msgKexDHInit = 30\n\ntype kexDHInitMsg struct {\n\tX *big.Int `sshtype:\"30\"`\n}\n\nconst msgKexECDHInit = 30\n\ntype kexECDHInitMsg struct {\n\tClientPubKey []byte `sshtype:\"30\"`\n}\n\nconst msgKexECDHReply = 31\n\ntype kexECDHReplyMsg struct {\n\tHostKey         []byte `sshtype:\"31\"`\n\tEphemeralPubKey []byte\n\tSignature       []byte\n}\n\nconst msgKexDHReply = 31\n\ntype kexDHReplyMsg struct {\n\tHostKey   []byte `sshtype:\"31\"`\n\tY         *big.Int\n\tSignature []byte\n}\n\n// See RFC 4419, section 5.\nconst msgKexDHGexGroup = 31\n\ntype kexDHGexGroupMsg struct {\n\tP *big.Int `sshtype:\"31\"`\n\tG *big.Int\n}\n\nconst msgKexDHGexInit = 32\n\ntype kexDHGexInitMsg struct {\n\tX *big.Int `sshtype:\"32\"`\n}\n\nconst msgKexDHGexReply = 33\n\ntype kexDHGexReplyMsg struct {\n\tHostKey   []byte `sshtype:\"33\"`\n\tY         *big.Int\n\tSignature []byte\n}\n\nconst msgKexDHGexRequest = 34\n\ntype kexDHGexRequestMsg struct {\n\tMinBits       uint32 `sshtype:\"34\"`\n\tPreferredBits uint32\n\tMaxBits       uint32\n}\n\n// See RFC 4253, section 10.\nconst msgServiceRequest = 5\n\ntype serviceRequestMsg struct {\n\tService string `sshtype:\"5\"`\n}\n\n// See RFC 4253, section 10.\nconst msgServiceAccept = 6\n\ntype serviceAcceptMsg struct {\n\tService string `sshtype:\"6\"`\n}\n\n// See RFC 8308, section 2.3\nconst msgExtInfo = 7\n\ntype extInfoMsg struct {\n\tNumExtensions uint32 `sshtype:\"7\"`\n\tPayload       []byte `ssh:\"rest\"`\n}\n\n// See RFC 4252, section 5.\nconst msgUserAuthRequest = 50\n\ntype userAuthRequestMsg struct {\n\tUser    string `sshtype:\"50\"`\n\tService string\n\tMethod  string\n\tPayload []byte `ssh:\"rest\"`\n}\n\n// Used for debug printouts of packets.\ntype userAuthSuccessMsg struct {\n}\n\n// See RFC 4252, section 5.1\nconst msgUserAuthFailure = 51\n\ntype userAuthFailureMsg struct {\n\tMethods        []string `sshtype:\"51\"`\n\tPartialSuccess bool\n}\n\n// See RFC 4252, section 5.1\nconst msgUserAuthSuccess = 52\n\n// See RFC 4252, section 5.4\nconst msgUserAuthBanner = 53\n\ntype userAuthBannerMsg struct {\n\tMessage string `sshtype:\"53\"`\n\t// unused, but required to allow message parsing\n\tLanguage string\n}\n\n// See RFC 4256, section 3.2\nconst msgUserAuthInfoRequest = 60\nconst msgUserAuthInfoResponse = 61\n\ntype userAuthInfoRequestMsg struct {\n\tName        string `sshtype:\"60\"`\n\tInstruction string\n\tLanguage    string\n\tNumPrompts  uint32\n\tPrompts     []byte `ssh:\"rest\"`\n}\n\n// See RFC 4254, section 5.1.\nconst msgChannelOpen = 90\n\ntype channelOpenMsg struct {\n\tChanType         string `sshtype:\"90\"`\n\tPeersID          uint32\n\tPeersWindow      uint32\n\tMaxPacketSize    uint32\n\tTypeSpecificData []byte `ssh:\"rest\"`\n}\n\nconst msgChannelExtendedData = 95\nconst msgChannelData = 94\n\n// Used for debug print outs of packets.\ntype channelDataMsg struct {\n\tPeersID uint32 `sshtype:\"94\"`\n\tLength  uint32\n\tRest    []byte `ssh:\"rest\"`\n}\n\n// See RFC 4254, section 5.1.\nconst msgChannelOpenConfirm = 91\n\ntype channelOpenConfirmMsg struct {\n\tPeersID          uint32 `sshtype:\"91\"`\n\tMyID             uint32\n\tMyWindow         uint32\n\tMaxPacketSize    uint32\n\tTypeSpecificData []byte `ssh:\"rest\"`\n}\n\n// See RFC 4254, section 5.1.\nconst msgChannelOpenFailure = 92\n\ntype channelOpenFailureMsg struct {\n\tPeersID  uint32 `sshtype:\"92\"`\n\tReason   RejectionReason\n\tMessage  string\n\tLanguage string\n}\n\nconst msgChannelRequest = 98\n\ntype channelRequestMsg struct {\n\tPeersID             uint32 `sshtype:\"98\"`\n\tRequest             string\n\tWantReply           bool\n\tRequestSpecificData []byte `ssh:\"rest\"`\n}\n\n// See RFC 4254, section 5.4.\nconst msgChannelSuccess = 99\n\ntype channelRequestSuccessMsg struct {\n\tPeersID uint32 `sshtype:\"99\"`\n}\n\n// See RFC 4254, section 5.4.\nconst msgChannelFailure = 100\n\ntype channelRequestFailureMsg struct {\n\tPeersID uint32 `sshtype:\"100\"`\n}\n\n// See RFC 4254, section 5.3\nconst msgChannelClose = 97\n\ntype channelCloseMsg struct {\n\tPeersID uint32 `sshtype:\"97\"`\n}\n\n// See RFC 4254, section 5.3\nconst msgChannelEOF = 96\n\ntype channelEOFMsg struct {\n\tPeersID uint32 `sshtype:\"96\"`\n}\n\n// See RFC 4254, section 4\nconst msgGlobalRequest = 80\n\ntype globalRequestMsg struct {\n\tType      string `sshtype:\"80\"`\n\tWantReply bool\n\tData      []byte `ssh:\"rest\"`\n}\n\n// See RFC 4254, section 4\nconst msgRequestSuccess = 81\n\ntype globalRequestSuccessMsg struct {\n\tData []byte `ssh:\"rest\" sshtype:\"81\"`\n}\n\n// See RFC 4254, section 4\nconst msgRequestFailure = 82\n\ntype globalRequestFailureMsg struct {\n\tData []byte `ssh:\"rest\" sshtype:\"82\"`\n}\n\n// See RFC 4254, section 5.2\nconst msgChannelWindowAdjust = 93\n\ntype windowAdjustMsg struct {\n\tPeersID         uint32 `sshtype:\"93\"`\n\tAdditionalBytes uint32\n}\n\n// See RFC 4252, section 7\nconst msgUserAuthPubKeyOk = 60\n\ntype userAuthPubKeyOkMsg struct {\n\tAlgo   string `sshtype:\"60\"`\n\tPubKey []byte\n}\n\n// See RFC 4462, section 3\nconst msgUserAuthGSSAPIResponse = 60\n\ntype userAuthGSSAPIResponse struct {\n\tSupportMech []byte `sshtype:\"60\"`\n}\n\nconst msgUserAuthGSSAPIToken = 61\n\ntype userAuthGSSAPIToken struct {\n\tToken []byte `sshtype:\"61\"`\n}\n\nconst msgUserAuthGSSAPIMIC = 66\n\ntype userAuthGSSAPIMIC struct {\n\tMIC []byte `sshtype:\"66\"`\n}\n\n// See RFC 4462, section 3.9\nconst msgUserAuthGSSAPIErrTok = 64\n\ntype userAuthGSSAPIErrTok struct {\n\tErrorToken []byte `sshtype:\"64\"`\n}\n\n// See RFC 4462, section 3.8\nconst msgUserAuthGSSAPIError = 65\n\ntype userAuthGSSAPIError struct {\n\tMajorStatus uint32 `sshtype:\"65\"`\n\tMinorStatus uint32\n\tMessage     string\n\tLanguageTag string\n}\n\n// Transport layer OpenSSH extension. See [PROTOCOL], section 1.9\nconst msgPing = 192\n\ntype pingMsg struct {\n\tData string `sshtype:\"192\"`\n}\n\n// Transport layer OpenSSH extension. See [PROTOCOL], section 1.9\nconst msgPong = 193\n\ntype pongMsg struct {\n\tData string `sshtype:\"193\"`\n}\n\n// typeTags returns the possible type bytes for the given reflect.Type, which\n// should be a struct. The possible values are separated by a '|' character.\nfunc typeTags(structType reflect.Type) (tags []byte) {\n\ttagStr := structType.Field(0).Tag.Get(\"sshtype\")\n\n\tfor _, tag := range strings.Split(tagStr, \"|\") {\n\t\ti, err := strconv.Atoi(tag)\n\t\tif err == nil {\n\t\t\ttags = append(tags, byte(i))\n\t\t}\n\t}\n\n\treturn tags\n}\n\nfunc fieldError(t reflect.Type, field int, problem string) error {\n\tif problem != \"\" {\n\t\tproblem = \": \" + problem\n\t}\n\treturn fmt.Errorf(\"ssh: unmarshal error for field %s of type %s%s\", t.Field(field).Name, t.Name(), problem)\n}\n\nvar errShortRead = errors.New(\"ssh: short read\")\n\n// Unmarshal parses data in SSH wire format into a structure. The out\n// argument should be a pointer to struct. If the first member of the\n// struct has the \"sshtype\" tag set to a '|'-separated set of numbers\n// in decimal, the packet must start with one of those numbers. In\n// case of error, Unmarshal returns a ParseError or\n// UnexpectedMessageError.\nfunc Unmarshal(data []byte, out interface{}) error {\n\tv := reflect.ValueOf(out).Elem()\n\tstructType := v.Type()\n\texpectedTypes := typeTags(structType)\n\n\tvar expectedType byte\n\tif len(expectedTypes) > 0 {\n\t\texpectedType = expectedTypes[0]\n\t}\n\n\tif len(data) == 0 {\n\t\treturn parseError(expectedType)\n\t}\n\n\tif len(expectedTypes) > 0 {\n\t\tgoodType := false\n\t\tfor _, e := range expectedTypes {\n\t\t\tif e > 0 && data[0] == e {\n\t\t\t\tgoodType = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !goodType {\n\t\t\treturn fmt.Errorf(\"ssh: unexpected message type %d (expected one of %v)\", data[0], expectedTypes)\n\t\t}\n\t\tdata = data[1:]\n\t}\n\n\tvar ok bool\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tfield := v.Field(i)\n\t\tt := field.Type()\n\t\tswitch t.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tif len(data) < 1 {\n\t\t\t\treturn errShortRead\n\t\t\t}\n\t\t\tfield.SetBool(data[0] != 0)\n\t\t\tdata = data[1:]\n\t\tcase reflect.Array:\n\t\t\tif t.Elem().Kind() != reflect.Uint8 {\n\t\t\t\treturn fieldError(structType, i, \"array of unsupported type\")\n\t\t\t}\n\t\t\tif len(data) < t.Len() {\n\t\t\t\treturn errShortRead\n\t\t\t}\n\t\t\tfor j, n := 0, t.Len(); j < n; j++ {\n\t\t\t\tfield.Index(j).Set(reflect.ValueOf(data[j]))\n\t\t\t}\n\t\t\tdata = data[t.Len():]\n\t\tcase reflect.Uint64:\n\t\t\tvar u64 uint64\n\t\t\tif u64, data, ok = parseUint64(data); !ok {\n\t\t\t\treturn errShortRead\n\t\t\t}\n\t\t\tfield.SetUint(u64)\n\t\tcase reflect.Uint32:\n\t\t\tvar u32 uint32\n\t\t\tif u32, data, ok = parseUint32(data); !ok {\n\t\t\t\treturn errShortRead\n\t\t\t}\n\t\t\tfield.SetUint(uint64(u32))\n\t\tcase reflect.Uint8:\n\t\t\tif len(data) < 1 {\n\t\t\t\treturn errShortRead\n\t\t\t}\n\t\t\tfield.SetUint(uint64(data[0]))\n\t\t\tdata = data[1:]\n\t\tcase reflect.String:\n\t\t\tvar s []byte\n\t\t\tif s, data, ok = parseString(data); !ok {\n\t\t\t\treturn fieldError(structType, i, \"\")\n\t\t\t}\n\t\t\tfield.SetString(string(s))\n\t\tcase reflect.Slice:\n\t\t\tswitch t.Elem().Kind() {\n\t\t\tcase reflect.Uint8:\n\t\t\t\tif structType.Field(i).Tag.Get(\"ssh\") == \"rest\" {\n\t\t\t\t\tfield.Set(reflect.ValueOf(data))\n\t\t\t\t\tdata = nil\n\t\t\t\t} else {\n\t\t\t\t\tvar s []byte\n\t\t\t\t\tif s, data, ok = parseString(data); !ok {\n\t\t\t\t\t\treturn errShortRead\n\t\t\t\t\t}\n\t\t\t\t\tfield.Set(reflect.ValueOf(s))\n\t\t\t\t}\n\t\t\tcase reflect.String:\n\t\t\t\tvar nl []string\n\t\t\t\tif nl, data, ok = parseNameList(data); !ok {\n\t\t\t\t\treturn errShortRead\n\t\t\t\t}\n\t\t\t\tfield.Set(reflect.ValueOf(nl))\n\t\t\tdefault:\n\t\t\t\treturn fieldError(structType, i, \"slice of unsupported type\")\n\t\t\t}\n\t\tcase reflect.Ptr:\n\t\t\tif t == bigIntType {\n\t\t\t\tvar n *big.Int\n\t\t\t\tif n, data, ok = parseInt(data); !ok {\n\t\t\t\t\treturn errShortRead\n\t\t\t\t}\n\t\t\t\tfield.Set(reflect.ValueOf(n))\n\t\t\t} else {\n\t\t\t\treturn fieldError(structType, i, \"pointer to unsupported type\")\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fieldError(structType, i, fmt.Sprintf(\"unsupported type: %v\", t))\n\t\t}\n\t}\n\n\tif len(data) != 0 {\n\t\treturn parseError(expectedType)\n\t}\n\n\treturn nil\n}\n\n// Marshal serializes the message in msg to SSH wire format.  The msg\n// argument should be a struct or pointer to struct. If the first\n// member has the \"sshtype\" tag set to a number in decimal, that\n// number is prepended to the result. If the last of member has the\n// \"ssh\" tag set to \"rest\", its contents are appended to the output.\nfunc Marshal(msg interface{}) []byte {\n\tout := make([]byte, 0, 64)\n\treturn marshalStruct(out, msg)\n}\n\nfunc marshalStruct(out []byte, msg interface{}) []byte {\n\tv := reflect.Indirect(reflect.ValueOf(msg))\n\tmsgTypes := typeTags(v.Type())\n\tif len(msgTypes) > 0 {\n\t\tout = append(out, msgTypes[0])\n\t}\n\n\tfor i, n := 0, v.NumField(); i < n; i++ {\n\t\tfield := v.Field(i)\n\t\tswitch t := field.Type(); t.Kind() {\n\t\tcase reflect.Bool:\n\t\t\tvar v uint8\n\t\t\tif field.Bool() {\n\t\t\t\tv = 1\n\t\t\t}\n\t\t\tout = append(out, v)\n\t\tcase reflect.Array:\n\t\t\tif t.Elem().Kind() != reflect.Uint8 {\n\t\t\t\tpanic(fmt.Sprintf(\"array of non-uint8 in field %d: %T\", i, field.Interface()))\n\t\t\t}\n\t\t\tfor j, l := 0, t.Len(); j < l; j++ {\n\t\t\t\tout = append(out, uint8(field.Index(j).Uint()))\n\t\t\t}\n\t\tcase reflect.Uint32:\n\t\t\tout = appendU32(out, uint32(field.Uint()))\n\t\tcase reflect.Uint64:\n\t\t\tout = appendU64(out, uint64(field.Uint()))\n\t\tcase reflect.Uint8:\n\t\t\tout = append(out, uint8(field.Uint()))\n\t\tcase reflect.String:\n\t\t\ts := field.String()\n\t\t\tout = appendInt(out, len(s))\n\t\t\tout = append(out, s...)\n\t\tcase reflect.Slice:\n\t\t\tswitch t.Elem().Kind() {\n\t\t\tcase reflect.Uint8:\n\t\t\t\tif v.Type().Field(i).Tag.Get(\"ssh\") != \"rest\" {\n\t\t\t\t\tout = appendInt(out, field.Len())\n\t\t\t\t}\n\t\t\t\tout = append(out, field.Bytes()...)\n\t\t\tcase reflect.String:\n\t\t\t\toffset := len(out)\n\t\t\t\tout = appendU32(out, 0)\n\t\t\t\tif n := field.Len(); n > 0 {\n\t\t\t\t\tfor j := 0; j < n; j++ {\n\t\t\t\t\t\tf := field.Index(j)\n\t\t\t\t\t\tif j != 0 {\n\t\t\t\t\t\t\tout = append(out, ',')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tout = append(out, f.String()...)\n\t\t\t\t\t}\n\t\t\t\t\t// overwrite length value\n\t\t\t\t\tbinary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4))\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"slice of unknown type in field %d: %T\", i, field.Interface()))\n\t\t\t}\n\t\tcase reflect.Ptr:\n\t\t\tif t == bigIntType {\n\t\t\t\tvar n *big.Int\n\t\t\t\tnValue := reflect.ValueOf(&n)\n\t\t\t\tnValue.Elem().Set(field)\n\t\t\t\tneeded := intLength(n)\n\t\t\t\toldLength := len(out)\n\n\t\t\t\tif cap(out)-len(out) < needed {\n\t\t\t\t\tnewOut := make([]byte, len(out), 2*(len(out)+needed))\n\t\t\t\t\tcopy(newOut, out)\n\t\t\t\t\tout = newOut\n\t\t\t\t}\n\t\t\t\tout = out[:oldLength+needed]\n\t\t\t\tmarshalInt(out[oldLength:], n)\n\t\t\t} else {\n\t\t\t\tpanic(fmt.Sprintf(\"pointer to unknown type in field %d: %T\", i, field.Interface()))\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out\n}\n\nvar bigOne = big.NewInt(1)\n\nfunc parseString(in []byte) (out, rest []byte, ok bool) {\n\tif len(in) < 4 {\n\t\treturn\n\t}\n\tlength := binary.BigEndian.Uint32(in)\n\tin = in[4:]\n\tif uint32(len(in)) < length {\n\t\treturn\n\t}\n\tout = in[:length]\n\trest = in[length:]\n\tok = true\n\treturn\n}\n\nvar (\n\tcomma         = []byte{','}\n\temptyNameList = []string{}\n)\n\nfunc parseNameList(in []byte) (out []string, rest []byte, ok bool) {\n\tcontents, rest, ok := parseString(in)\n\tif !ok {\n\t\treturn\n\t}\n\tif len(contents) == 0 {\n\t\tout = emptyNameList\n\t\treturn\n\t}\n\tparts := bytes.Split(contents, comma)\n\tout = make([]string, len(parts))\n\tfor i, part := range parts {\n\t\tout[i] = string(part)\n\t}\n\treturn\n}\n\nfunc parseInt(in []byte) (out *big.Int, rest []byte, ok bool) {\n\tcontents, rest, ok := parseString(in)\n\tif !ok {\n\t\treturn\n\t}\n\tout = new(big.Int)\n\n\tif len(contents) > 0 && contents[0]&0x80 == 0x80 {\n\t\t// This is a negative number\n\t\tnotBytes := make([]byte, len(contents))\n\t\tfor i := range notBytes {\n\t\t\tnotBytes[i] = ^contents[i]\n\t\t}\n\t\tout.SetBytes(notBytes)\n\t\tout.Add(out, bigOne)\n\t\tout.Neg(out)\n\t} else {\n\t\t// Positive number\n\t\tout.SetBytes(contents)\n\t}\n\tok = true\n\treturn\n}\n\nfunc parseUint32(in []byte) (uint32, []byte, bool) {\n\tif len(in) < 4 {\n\t\treturn 0, nil, false\n\t}\n\treturn binary.BigEndian.Uint32(in), in[4:], true\n}\n\nfunc parseUint64(in []byte) (uint64, []byte, bool) {\n\tif len(in) < 8 {\n\t\treturn 0, nil, false\n\t}\n\treturn binary.BigEndian.Uint64(in), in[8:], true\n}\n\nfunc intLength(n *big.Int) int {\n\tlength := 4 /* length bytes */\n\tif n.Sign() < 0 {\n\t\tnMinus1 := new(big.Int).Neg(n)\n\t\tnMinus1.Sub(nMinus1, bigOne)\n\t\tbitLen := nMinus1.BitLen()\n\t\tif bitLen%8 == 0 {\n\t\t\t// The number will need 0xff padding\n\t\t\tlength++\n\t\t}\n\t\tlength += (bitLen + 7) / 8\n\t} else if n.Sign() == 0 {\n\t\t// A zero is the zero length string\n\t} else {\n\t\tbitLen := n.BitLen()\n\t\tif bitLen%8 == 0 {\n\t\t\t// The number will need 0x00 padding\n\t\t\tlength++\n\t\t}\n\t\tlength += (bitLen + 7) / 8\n\t}\n\n\treturn length\n}\n\nfunc marshalUint32(to []byte, n uint32) []byte {\n\tbinary.BigEndian.PutUint32(to, n)\n\treturn to[4:]\n}\n\nfunc marshalUint64(to []byte, n uint64) []byte {\n\tbinary.BigEndian.PutUint64(to, n)\n\treturn to[8:]\n}\n\nfunc marshalInt(to []byte, n *big.Int) []byte {\n\tlengthBytes := to\n\tto = to[4:]\n\tlength := 0\n\n\tif n.Sign() < 0 {\n\t\t// A negative number has to be converted to two's-complement\n\t\t// form. So we'll subtract 1 and invert. If the\n\t\t// most-significant-bit isn't set then we'll need to pad the\n\t\t// beginning with 0xff in order to keep the number negative.\n\t\tnMinus1 := new(big.Int).Neg(n)\n\t\tnMinus1.Sub(nMinus1, bigOne)\n\t\tbytes := nMinus1.Bytes()\n\t\tfor i := range bytes {\n\t\t\tbytes[i] ^= 0xff\n\t\t}\n\t\tif len(bytes) == 0 || bytes[0]&0x80 == 0 {\n\t\t\tto[0] = 0xff\n\t\t\tto = to[1:]\n\t\t\tlength++\n\t\t}\n\t\tnBytes := copy(to, bytes)\n\t\tto = to[nBytes:]\n\t\tlength += nBytes\n\t} else if n.Sign() == 0 {\n\t\t// A zero is the zero length string\n\t} else {\n\t\tbytes := n.Bytes()\n\t\tif len(bytes) > 0 && bytes[0]&0x80 != 0 {\n\t\t\t// We'll have to pad this with a 0x00 in order to\n\t\t\t// stop it looking like a negative number.\n\t\t\tto[0] = 0\n\t\t\tto = to[1:]\n\t\t\tlength++\n\t\t}\n\t\tnBytes := copy(to, bytes)\n\t\tto = to[nBytes:]\n\t\tlength += nBytes\n\t}\n\n\tlengthBytes[0] = byte(length >> 24)\n\tlengthBytes[1] = byte(length >> 16)\n\tlengthBytes[2] = byte(length >> 8)\n\tlengthBytes[3] = byte(length)\n\treturn to\n}\n\nfunc writeInt(w io.Writer, n *big.Int) {\n\tlength := intLength(n)\n\tbuf := make([]byte, length)\n\tmarshalInt(buf, n)\n\tw.Write(buf)\n}\n\nfunc writeString(w io.Writer, s []byte) {\n\tvar lengthBytes [4]byte\n\tlengthBytes[0] = byte(len(s) >> 24)\n\tlengthBytes[1] = byte(len(s) >> 16)\n\tlengthBytes[2] = byte(len(s) >> 8)\n\tlengthBytes[3] = byte(len(s))\n\tw.Write(lengthBytes[:])\n\tw.Write(s)\n}\n\nfunc stringLength(n int) int {\n\treturn 4 + n\n}\n\nfunc marshalString(to []byte, s []byte) []byte {\n\tto[0] = byte(len(s) >> 24)\n\tto[1] = byte(len(s) >> 16)\n\tto[2] = byte(len(s) >> 8)\n\tto[3] = byte(len(s))\n\tto = to[4:]\n\tcopy(to, s)\n\treturn to[len(s):]\n}\n\nvar bigIntType = reflect.TypeFor[*big.Int]()\n\n// Decode a packet into its corresponding message.\nfunc decode(packet []byte) (interface{}, error) {\n\tvar msg interface{}\n\tswitch packet[0] {\n\tcase msgDisconnect:\n\t\tmsg = new(disconnectMsg)\n\tcase msgServiceRequest:\n\t\tmsg = new(serviceRequestMsg)\n\tcase msgServiceAccept:\n\t\tmsg = new(serviceAcceptMsg)\n\tcase msgExtInfo:\n\t\tmsg = new(extInfoMsg)\n\tcase msgKexInit:\n\t\tmsg = new(kexInitMsg)\n\tcase msgKexDHInit:\n\t\tmsg = new(kexDHInitMsg)\n\tcase msgKexDHReply:\n\t\tmsg = new(kexDHReplyMsg)\n\tcase msgUserAuthRequest:\n\t\tmsg = new(userAuthRequestMsg)\n\tcase msgUserAuthSuccess:\n\t\treturn new(userAuthSuccessMsg), nil\n\tcase msgUserAuthFailure:\n\t\tmsg = new(userAuthFailureMsg)\n\tcase msgUserAuthBanner:\n\t\tmsg = new(userAuthBannerMsg)\n\tcase msgUserAuthPubKeyOk:\n\t\tmsg = new(userAuthPubKeyOkMsg)\n\tcase msgGlobalRequest:\n\t\tmsg = new(globalRequestMsg)\n\tcase msgRequestSuccess:\n\t\tmsg = new(globalRequestSuccessMsg)\n\tcase msgRequestFailure:\n\t\tmsg = new(globalRequestFailureMsg)\n\tcase msgChannelOpen:\n\t\tmsg = new(channelOpenMsg)\n\tcase msgChannelData:\n\t\tmsg = new(channelDataMsg)\n\tcase msgChannelOpenConfirm:\n\t\tmsg = new(channelOpenConfirmMsg)\n\tcase msgChannelOpenFailure:\n\t\tmsg = new(channelOpenFailureMsg)\n\tcase msgChannelWindowAdjust:\n\t\tmsg = new(windowAdjustMsg)\n\tcase msgChannelEOF:\n\t\tmsg = new(channelEOFMsg)\n\tcase msgChannelClose:\n\t\tmsg = new(channelCloseMsg)\n\tcase msgChannelRequest:\n\t\tmsg = new(channelRequestMsg)\n\tcase msgChannelSuccess:\n\t\tmsg = new(channelRequestSuccessMsg)\n\tcase msgChannelFailure:\n\t\tmsg = new(channelRequestFailureMsg)\n\tcase msgUserAuthGSSAPIToken:\n\t\tmsg = new(userAuthGSSAPIToken)\n\tcase msgUserAuthGSSAPIMIC:\n\t\tmsg = new(userAuthGSSAPIMIC)\n\tcase msgUserAuthGSSAPIErrTok:\n\t\tmsg = new(userAuthGSSAPIErrTok)\n\tcase msgUserAuthGSSAPIError:\n\t\tmsg = new(userAuthGSSAPIError)\n\tdefault:\n\t\treturn nil, unexpectedMessageError(0, packet[0])\n\t}\n\tif err := Unmarshal(packet, msg); err != nil {\n\t\treturn nil, err\n\t}\n\treturn msg, nil\n}\n\nvar packetTypeNames = map[byte]string{\n\tmsgDisconnect:          \"disconnectMsg\",\n\tmsgServiceRequest:      \"serviceRequestMsg\",\n\tmsgServiceAccept:       \"serviceAcceptMsg\",\n\tmsgExtInfo:             \"extInfoMsg\",\n\tmsgKexInit:             \"kexInitMsg\",\n\tmsgKexDHInit:           \"kexDHInitMsg\",\n\tmsgKexDHReply:          \"kexDHReplyMsg\",\n\tmsgUserAuthRequest:     \"userAuthRequestMsg\",\n\tmsgUserAuthSuccess:     \"userAuthSuccessMsg\",\n\tmsgUserAuthFailure:     \"userAuthFailureMsg\",\n\tmsgUserAuthPubKeyOk:    \"userAuthPubKeyOkMsg\",\n\tmsgGlobalRequest:       \"globalRequestMsg\",\n\tmsgRequestSuccess:      \"globalRequestSuccessMsg\",\n\tmsgRequestFailure:      \"globalRequestFailureMsg\",\n\tmsgChannelOpen:         \"channelOpenMsg\",\n\tmsgChannelData:         \"channelDataMsg\",\n\tmsgChannelOpenConfirm:  \"channelOpenConfirmMsg\",\n\tmsgChannelOpenFailure:  \"channelOpenFailureMsg\",\n\tmsgChannelWindowAdjust: \"windowAdjustMsg\",\n\tmsgChannelEOF:          \"channelEOFMsg\",\n\tmsgChannelClose:        \"channelCloseMsg\",\n\tmsgChannelRequest:      \"channelRequestMsg\",\n\tmsgChannelSuccess:      \"channelRequestSuccessMsg\",\n\tmsgChannelFailure:      \"channelRequestFailureMsg\",\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/mlkem.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\npackage ssh\n\nimport (\n\t\"crypto\"\n\t\"crypto/mlkem\"\n\t\"crypto/sha256\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"golang.org/x/crypto/curve25519\"\n)\n\n// mlkem768WithCurve25519sha256 implements the hybrid ML-KEM768 with\n// curve25519-sha256 key exchange method, as described by\n// draft-kampanakis-curdle-ssh-pq-ke-05 section 2.3.3.\ntype mlkem768WithCurve25519sha256 struct{}\n\nfunc (kex *mlkem768WithCurve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) {\n\tvar c25519kp curve25519KeyPair\n\tif err := c25519kp.generate(rand); err != nil {\n\t\treturn nil, err\n\t}\n\n\tseed := make([]byte, mlkem.SeedSize)\n\tif _, err := io.ReadFull(rand, seed); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmlkemDk, err := mlkem.NewDecapsulationKey768(seed)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thybridKey := append(mlkemDk.EncapsulationKey().Bytes(), c25519kp.pub[:]...)\n\tif err := c.writePacket(Marshal(&kexECDHInitMsg{hybridKey})); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar reply kexECDHReplyMsg\n\tif err = Unmarshal(packet, &reply); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(reply.EphemeralPubKey) != mlkem.CiphertextSize768+32 {\n\t\treturn nil, errors.New(\"ssh: peer's mlkem768x25519 public value has wrong length\")\n\t}\n\n\t// Perform KEM decapsulate operation to obtain shared key from ML-KEM.\n\tmlkem768Secret, err := mlkemDk.Decapsulate(reply.EphemeralPubKey[:mlkem.CiphertextSize768])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Complete Curve25519 ECDH to obtain its shared key.\n\tc25519Secret, err := curve25519.X25519(c25519kp.priv[:], reply.EphemeralPubKey[mlkem.CiphertextSize768:])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: peer's mlkem768x25519 public value is not valid: %w\", err)\n\t}\n\t// Compute actual shared key.\n\th := sha256.New()\n\th.Write(mlkem768Secret)\n\th.Write(c25519Secret)\n\tsecret := h.Sum(nil)\n\n\th.Reset()\n\tmagics.write(h)\n\twriteString(h, reply.HostKey)\n\twriteString(h, hybridKey)\n\twriteString(h, reply.EphemeralPubKey)\n\n\tK := make([]byte, stringLength(len(secret)))\n\tmarshalString(K, secret)\n\th.Write(K)\n\n\treturn &kexResult{\n\t\tH:         h.Sum(nil),\n\t\tK:         K,\n\t\tHostKey:   reply.HostKey,\n\t\tSignature: reply.Signature,\n\t\tHash:      crypto.SHA256,\n\t}, nil\n}\n\nfunc (kex *mlkem768WithCurve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (*kexResult, error) {\n\tpacket, err := c.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kexInit kexECDHInitMsg\n\tif err = Unmarshal(packet, &kexInit); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(kexInit.ClientPubKey) != mlkem.EncapsulationKeySize768+32 {\n\t\treturn nil, errors.New(\"ssh: peer's ML-KEM768/curve25519 public value has wrong length\")\n\t}\n\n\tencapsulationKey, err := mlkem.NewEncapsulationKey768(kexInit.ClientPubKey[:mlkem.EncapsulationKeySize768])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: peer's ML-KEM768 encapsulation key is not valid: %w\", err)\n\t}\n\t// Perform KEM encapsulate operation to obtain ciphertext and shared key.\n\tmlkem768Secret, mlkem768Ciphertext := encapsulationKey.Encapsulate()\n\n\t// Perform server side of Curve25519 ECDH to obtain server public value and\n\t// shared key.\n\tvar c25519kp curve25519KeyPair\n\tif err := c25519kp.generate(rand); err != nil {\n\t\treturn nil, err\n\t}\n\tc25519Secret, err := curve25519.X25519(c25519kp.priv[:], kexInit.ClientPubKey[mlkem.EncapsulationKeySize768:])\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: peer's ML-KEM768/curve25519 public value is not valid: %w\", err)\n\t}\n\thybridKey := append(mlkem768Ciphertext, c25519kp.pub[:]...)\n\n\t// Compute actual shared key.\n\th := sha256.New()\n\th.Write(mlkem768Secret)\n\th.Write(c25519Secret)\n\tsecret := h.Sum(nil)\n\n\thostKeyBytes := priv.PublicKey().Marshal()\n\n\th.Reset()\n\tmagics.write(h)\n\twriteString(h, hostKeyBytes)\n\twriteString(h, kexInit.ClientPubKey)\n\twriteString(h, hybridKey)\n\n\tK := make([]byte, stringLength(len(secret)))\n\tmarshalString(K, secret)\n\th.Write(K)\n\n\tH := h.Sum(nil)\n\n\tsig, err := signAndMarshal(priv, rand, H, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treply := kexECDHReplyMsg{\n\t\tEphemeralPubKey: hybridKey,\n\t\tHostKey:         hostKeyBytes,\n\t\tSignature:       sig,\n\t}\n\tif err := c.writePacket(Marshal(&reply)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &kexResult{\n\t\tH:         H,\n\t\tK:         K,\n\t\tHostKey:   hostKeyBytes,\n\t\tSignature: sig,\n\t\tHash:      crypto.SHA256,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/mux.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\npackage ssh\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// debugMux, if set, causes messages in the connection protocol to be\n// logged.\nconst debugMux = false\n\n// chanList is a thread safe channel list.\ntype chanList struct {\n\t// protects concurrent access to chans\n\tsync.Mutex\n\n\t// chans are indexed by the local id of the channel, which the\n\t// other side should send in the PeersId field.\n\tchans []*channel\n\n\t// This is a debugging aid: it offsets all IDs by this\n\t// amount. This helps distinguish otherwise identical\n\t// server/client muxes\n\toffset uint32\n}\n\n// Assigns a channel ID to the given channel.\nfunc (c *chanList) add(ch *channel) uint32 {\n\tc.Lock()\n\tdefer c.Unlock()\n\tfor i := range c.chans {\n\t\tif c.chans[i] == nil {\n\t\t\tc.chans[i] = ch\n\t\t\treturn uint32(i) + c.offset\n\t\t}\n\t}\n\tc.chans = append(c.chans, ch)\n\treturn uint32(len(c.chans)-1) + c.offset\n}\n\n// getChan returns the channel for the given ID.\nfunc (c *chanList) getChan(id uint32) *channel {\n\tid -= c.offset\n\n\tc.Lock()\n\tdefer c.Unlock()\n\tif id < uint32(len(c.chans)) {\n\t\treturn c.chans[id]\n\t}\n\treturn nil\n}\n\nfunc (c *chanList) remove(id uint32) {\n\tid -= c.offset\n\tc.Lock()\n\tif id < uint32(len(c.chans)) {\n\t\tc.chans[id] = nil\n\t}\n\tc.Unlock()\n}\n\n// dropAll forgets all channels it knows, returning them in a slice.\nfunc (c *chanList) dropAll() []*channel {\n\tc.Lock()\n\tdefer c.Unlock()\n\tvar r []*channel\n\n\tfor _, ch := range c.chans {\n\t\tif ch == nil {\n\t\t\tcontinue\n\t\t}\n\t\tr = append(r, ch)\n\t}\n\tc.chans = nil\n\treturn r\n}\n\n// mux represents the state for the SSH connection protocol, which\n// multiplexes many channels onto a single packet transport.\ntype mux struct {\n\tconn     packetConn\n\tchanList chanList\n\n\tincomingChannels chan NewChannel\n\n\tglobalSentMu     sync.Mutex\n\tglobalResponses  chan interface{}\n\tincomingRequests chan *Request\n\n\terrCond *sync.Cond\n\terr     error\n}\n\n// When debugging, each new chanList instantiation has a different\n// offset.\nvar globalOff uint32\n\nfunc (m *mux) Wait() error {\n\tm.errCond.L.Lock()\n\tdefer m.errCond.L.Unlock()\n\tfor m.err == nil {\n\t\tm.errCond.Wait()\n\t}\n\treturn m.err\n}\n\n// newMux returns a mux that runs over the given connection.\nfunc newMux(p packetConn) *mux {\n\tm := &mux{\n\t\tconn:             p,\n\t\tincomingChannels: make(chan NewChannel, chanSize),\n\t\tglobalResponses:  make(chan interface{}, 1),\n\t\tincomingRequests: make(chan *Request, chanSize),\n\t\terrCond:          newCond(),\n\t}\n\tif debugMux {\n\t\tm.chanList.offset = atomic.AddUint32(&globalOff, 1)\n\t}\n\n\tgo m.loop()\n\treturn m\n}\n\nfunc (m *mux) sendMessage(msg interface{}) error {\n\tp := Marshal(msg)\n\tif debugMux {\n\t\tlog.Printf(\"send global(%d): %#v\", m.chanList.offset, msg)\n\t}\n\treturn m.conn.writePacket(p)\n}\n\nfunc (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) {\n\tif wantReply {\n\t\tm.globalSentMu.Lock()\n\t\tdefer m.globalSentMu.Unlock()\n\t}\n\n\tif err := m.sendMessage(globalRequestMsg{\n\t\tType:      name,\n\t\tWantReply: wantReply,\n\t\tData:      payload,\n\t}); err != nil {\n\t\treturn false, nil, err\n\t}\n\n\tif !wantReply {\n\t\treturn false, nil, nil\n\t}\n\n\tmsg, ok := <-m.globalResponses\n\tif !ok {\n\t\treturn false, nil, io.EOF\n\t}\n\tswitch msg := msg.(type) {\n\tcase *globalRequestFailureMsg:\n\t\treturn false, msg.Data, nil\n\tcase *globalRequestSuccessMsg:\n\t\treturn true, msg.Data, nil\n\tdefault:\n\t\treturn false, nil, fmt.Errorf(\"ssh: unexpected response to request: %#v\", msg)\n\t}\n}\n\n// ackRequest must be called after processing a global request that\n// has WantReply set.\nfunc (m *mux) ackRequest(ok bool, data []byte) error {\n\tif ok {\n\t\treturn m.sendMessage(globalRequestSuccessMsg{Data: data})\n\t}\n\treturn m.sendMessage(globalRequestFailureMsg{Data: data})\n}\n\nfunc (m *mux) Close() error {\n\treturn m.conn.Close()\n}\n\n// loop runs the connection machine. It will process packets until an\n// error is encountered. To synchronize on loop exit, use mux.Wait.\nfunc (m *mux) loop() {\n\tvar err error\n\tfor err == nil {\n\t\terr = m.onePacket()\n\t}\n\n\tfor _, ch := range m.chanList.dropAll() {\n\t\tch.close()\n\t}\n\n\tclose(m.incomingChannels)\n\tclose(m.incomingRequests)\n\tclose(m.globalResponses)\n\n\tm.conn.Close()\n\n\tm.errCond.L.Lock()\n\tm.err = err\n\tm.errCond.Broadcast()\n\tm.errCond.L.Unlock()\n\n\tif debugMux {\n\t\tlog.Println(\"loop exit\", err)\n\t}\n}\n\n// onePacket reads and processes one packet.\nfunc (m *mux) onePacket() error {\n\tpacket, err := m.conn.readPacket()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif debugMux {\n\t\tif packet[0] == msgChannelData || packet[0] == msgChannelExtendedData {\n\t\t\tlog.Printf(\"decoding(%d): data packet - %d bytes\", m.chanList.offset, len(packet))\n\t\t} else {\n\t\t\tp, _ := decode(packet)\n\t\t\tlog.Printf(\"decoding(%d): %d %#v - %d bytes\", m.chanList.offset, packet[0], p, len(packet))\n\t\t}\n\t}\n\n\tswitch packet[0] {\n\tcase msgChannelOpen:\n\t\treturn m.handleChannelOpen(packet)\n\tcase msgGlobalRequest, msgRequestSuccess, msgRequestFailure:\n\t\treturn m.handleGlobalPacket(packet)\n\tcase msgPing:\n\t\tvar msg pingMsg\n\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to unmarshal ping@openssh.com message: %w\", err)\n\t\t}\n\t\treturn m.sendMessage(pongMsg(msg))\n\t}\n\n\t// assume a channel packet.\n\tif len(packet) < 5 {\n\t\treturn parseError(packet[0])\n\t}\n\tid := binary.BigEndian.Uint32(packet[1:])\n\tch := m.chanList.getChan(id)\n\tif ch == nil {\n\t\treturn m.handleUnknownChannelPacket(id, packet)\n\t}\n\n\treturn ch.handlePacket(packet)\n}\n\nfunc (m *mux) handleGlobalPacket(packet []byte) error {\n\tmsg, err := decode(packet)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch msg := msg.(type) {\n\tcase *globalRequestMsg:\n\t\tm.incomingRequests <- &Request{\n\t\t\tType:      msg.Type,\n\t\t\tWantReply: msg.WantReply,\n\t\t\tPayload:   msg.Data,\n\t\t\tmux:       m,\n\t\t}\n\tcase *globalRequestSuccessMsg, *globalRequestFailureMsg:\n\t\tm.globalResponses <- msg\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"not a global message %#v\", msg))\n\t}\n\n\treturn nil\n}\n\n// handleChannelOpen schedules a channel to be Accept()ed.\nfunc (m *mux) handleChannelOpen(packet []byte) error {\n\tvar msg channelOpenMsg\n\tif err := Unmarshal(packet, &msg); err != nil {\n\t\treturn err\n\t}\n\n\tif msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 {\n\t\tfailMsg := channelOpenFailureMsg{\n\t\t\tPeersID:  msg.PeersID,\n\t\t\tReason:   ConnectionFailed,\n\t\t\tMessage:  \"invalid request\",\n\t\t\tLanguage: \"en_US.UTF-8\",\n\t\t}\n\t\treturn m.sendMessage(failMsg)\n\t}\n\n\tc := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData)\n\tc.remoteId = msg.PeersID\n\tc.maxRemotePayload = msg.MaxPacketSize\n\tc.remoteWin.add(msg.PeersWindow)\n\tm.incomingChannels <- c\n\treturn nil\n}\n\nfunc (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) {\n\tch, err := m.openChannel(chanType, extra)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\treturn ch, ch.incomingRequests, nil\n}\n\nfunc (m *mux) openChannel(chanType string, extra []byte) (*channel, error) {\n\tch := m.newChannel(chanType, channelOutbound, extra)\n\n\tch.maxIncomingPayload = channelMaxPacket\n\n\topen := channelOpenMsg{\n\t\tChanType:         chanType,\n\t\tPeersWindow:      ch.myWindow,\n\t\tMaxPacketSize:    ch.maxIncomingPayload,\n\t\tTypeSpecificData: extra,\n\t\tPeersID:          ch.localId,\n\t}\n\tif err := m.sendMessage(open); err != nil {\n\t\treturn nil, err\n\t}\n\n\tswitch msg := (<-ch.msg).(type) {\n\tcase *channelOpenConfirmMsg:\n\t\treturn ch, nil\n\tcase *channelOpenFailureMsg:\n\t\treturn nil, &OpenChannelError{msg.Reason, msg.Message}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unexpected packet in response to channel open: %T\", msg)\n\t}\n}\n\nfunc (m *mux) handleUnknownChannelPacket(id uint32, packet []byte) error {\n\tmsg, err := decode(packet)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch msg := msg.(type) {\n\t// RFC 4254 section 5.4 says unrecognized channel requests should\n\t// receive a failure response.\n\tcase *channelRequestMsg:\n\t\tif msg.WantReply {\n\t\t\treturn m.sendMessage(channelRequestFailureMsg{\n\t\t\t\tPeersID: msg.PeersID,\n\t\t\t})\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"ssh: invalid channel %d\", id)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/server.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 ssh\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"slices\"\n\t\"strings\"\n)\n\n// The Permissions type holds fine-grained permissions that are\n// specific to a user or a specific authentication method for a user.\n// The Permissions value for a successful authentication attempt is\n// available in ServerConn, so it can be used to pass information from\n// the user-authentication phase to the application layer.\ntype Permissions struct {\n\t// CriticalOptions indicate restrictions to the default\n\t// permissions, and are typically used in conjunction with\n\t// user certificates. The standard for SSH certificates\n\t// defines \"force-command\" (only allow the given command to\n\t// execute) and \"source-address\" (only allow connections from\n\t// the given address). The SSH package currently only enforces\n\t// the \"source-address\" critical option. It is up to server\n\t// implementations to enforce other critical options, such as\n\t// \"force-command\", by checking them after the SSH handshake\n\t// is successful. In general, SSH servers should reject\n\t// connections that specify critical options that are unknown\n\t// or not supported.\n\tCriticalOptions map[string]string\n\n\t// Extensions are extra functionality that the server may\n\t// offer on authenticated connections. Lack of support for an\n\t// extension does not preclude authenticating a user. Common\n\t// extensions are \"permit-agent-forwarding\",\n\t// \"permit-X11-forwarding\". The Go SSH library currently does\n\t// not act on any extension, and it is up to server\n\t// implementations to honor them. Extensions can be used to\n\t// pass data from the authentication callbacks to the server\n\t// application layer.\n\tExtensions map[string]string\n\n\t// ExtraData allows to store user defined data.\n\tExtraData map[any]any\n}\n\ntype GSSAPIWithMICConfig struct {\n\t// AllowLogin, must be set, is called when gssapi-with-mic\n\t// authentication is selected (RFC 4462 section 3). The srcName is from the\n\t// results of the GSS-API authentication. The format is username@DOMAIN.\n\t// GSSAPI just guarantees to the server who the user is, but not if they can log in, and with what permissions.\n\t// This callback is called after the user identity is established with GSSAPI to decide if the user can login with\n\t// which permissions. If the user is allowed to login, it should return a nil error.\n\tAllowLogin func(conn ConnMetadata, srcName string) (*Permissions, error)\n\n\t// Server must be set. It's the implementation\n\t// of the GSSAPIServer interface. See GSSAPIServer interface for details.\n\tServer GSSAPIServer\n}\n\n// SendAuthBanner implements [ServerPreAuthConn].\nfunc (s *connection) SendAuthBanner(msg string) error {\n\treturn s.transport.writePacket(Marshal(&userAuthBannerMsg{\n\t\tMessage: msg,\n\t}))\n}\n\nfunc (*connection) unexportedMethodForFutureProofing() {}\n\n// ServerPreAuthConn is the interface available on an incoming server\n// connection before authentication has completed.\ntype ServerPreAuthConn interface {\n\tunexportedMethodForFutureProofing() // permits growing ServerPreAuthConn safely later, ala testing.TB\n\n\tConnMetadata\n\n\t// SendAuthBanner sends a banner message to the client.\n\t// It returns an error once the authentication phase has ended.\n\tSendAuthBanner(string) error\n}\n\n// ServerConfig holds server specific configuration data.\ntype ServerConfig struct {\n\t// Config contains configuration shared between client and server.\n\tConfig\n\n\t// PublicKeyAuthAlgorithms specifies the supported client public key\n\t// authentication algorithms. Note that this should not include certificate\n\t// types since those use the underlying algorithm. This list is sent to the\n\t// client if it supports the server-sig-algs extension. Order is irrelevant.\n\t// If unspecified then a default set of algorithms is used.\n\tPublicKeyAuthAlgorithms []string\n\n\thostKeys []Signer\n\n\t// NoClientAuth is true if clients are allowed to connect without\n\t// authenticating.\n\t// To determine NoClientAuth at runtime, set NoClientAuth to true\n\t// and the optional NoClientAuthCallback to a non-nil value.\n\tNoClientAuth bool\n\n\t// NoClientAuthCallback, if non-nil, is called when a user\n\t// attempts to authenticate with auth method \"none\".\n\t// NoClientAuth must also be set to true for this be used, or\n\t// this func is unused.\n\tNoClientAuthCallback func(ConnMetadata) (*Permissions, error)\n\n\t// MaxAuthTries specifies the maximum number of authentication attempts\n\t// permitted per connection. If set to a negative number, the number of\n\t// attempts are unlimited. If set to zero, the number of attempts are limited\n\t// to 6.\n\tMaxAuthTries int\n\n\t// PasswordCallback, if non-nil, is called when a user\n\t// attempts to authenticate using a password.\n\tPasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error)\n\n\t// PublicKeyCallback, if non-nil, is called when a client\n\t// offers a public key for authentication. It must return a nil error\n\t// if the given public key can be used to authenticate the\n\t// given user. For example, see CertChecker.Authenticate. A\n\t// call to this function does not guarantee that the key\n\t// offered is in fact used to authenticate. To record any data\n\t// depending on the public key, store it inside a\n\t// Permissions.Extensions entry.\n\tPublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error)\n\n\t// VerifiedPublicKeyCallback, if non-nil, is called after a client\n\t// successfully confirms having control over a key that was previously\n\t// approved by PublicKeyCallback. The permissions object passed to the\n\t// callback is the one returned by PublicKeyCallback for the given public\n\t// key and its ownership is transferred to the callback. The returned\n\t// Permissions object can be the same object, optionally modified, or a\n\t// completely new object. If VerifiedPublicKeyCallback is non-nil,\n\t// PublicKeyCallback is not allowed to return a PartialSuccessError, which\n\t// can instead be returned by VerifiedPublicKeyCallback.\n\t//\n\t// VerifiedPublicKeyCallback does not affect which authentication methods\n\t// are included in the list of methods that can be attempted by the client.\n\tVerifiedPublicKeyCallback func(conn ConnMetadata, key PublicKey, permissions *Permissions,\n\t\tsignatureAlgorithm string) (*Permissions, error)\n\n\t// KeyboardInteractiveCallback, if non-nil, is called when\n\t// keyboard-interactive authentication is selected (RFC\n\t// 4256). The client object's Challenge function should be\n\t// used to query the user. The callback may offer multiple\n\t// Challenge rounds. To avoid information leaks, the client\n\t// should be presented a challenge even if the user is\n\t// unknown.\n\tKeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error)\n\n\t// AuthLogCallback, if non-nil, is called to log all authentication\n\t// attempts.\n\tAuthLogCallback func(conn ConnMetadata, method string, err error)\n\n\t// PreAuthConnCallback, if non-nil, is called upon receiving a new connection\n\t// before any authentication has started. The provided ServerPreAuthConn\n\t// can be used at any time before authentication is complete, including\n\t// after this callback has returned.\n\tPreAuthConnCallback func(ServerPreAuthConn)\n\n\t// ServerVersion is the version identification string to announce in\n\t// the public handshake.\n\t// If empty, a reasonable default is used.\n\t// Note that RFC 4253 section 4.2 requires that this string start with\n\t// \"SSH-2.0-\".\n\tServerVersion string\n\n\t// BannerCallback, if present, is called and the return string is sent to\n\t// the client after key exchange completed but before authentication.\n\tBannerCallback func(conn ConnMetadata) string\n\n\t// GSSAPIWithMICConfig includes gssapi server and callback, which if both non-nil, is used\n\t// when gssapi-with-mic authentication is selected (RFC 4462 section 3).\n\tGSSAPIWithMICConfig *GSSAPIWithMICConfig\n}\n\n// AddHostKey adds a private key as a host key. If an existing host\n// key exists with the same public key format, it is replaced. Each server\n// config must have at least one host key.\nfunc (s *ServerConfig) AddHostKey(key Signer) {\n\tfor i, k := range s.hostKeys {\n\t\tif k.PublicKey().Type() == key.PublicKey().Type() {\n\t\t\ts.hostKeys[i] = key\n\t\t\treturn\n\t\t}\n\t}\n\n\ts.hostKeys = append(s.hostKeys, key)\n}\n\n// cachedPubKey contains the results of querying whether a public key is\n// acceptable for a user. This is a FIFO cache.\ntype cachedPubKey struct {\n\tuser       string\n\tpubKeyData []byte\n\tresult     error\n\tperms      *Permissions\n}\n\n// maxCachedPubKeys is the number of cache entries we store.\n//\n// Due to consistent misuse of the PublicKeyCallback API, we have reduced this\n// to 1, such that the only key in the cache is the most recently seen one. This\n// forces the behavior that the last call to PublicKeyCallback will always be\n// with the key that is used for authentication.\nconst maxCachedPubKeys = 1\n\n// pubKeyCache caches tests for public keys.  Since SSH clients\n// will query whether a public key is acceptable before attempting to\n// authenticate with it, we end up with duplicate queries for public\n// key validity.  The cache only applies to a single ServerConn.\ntype pubKeyCache struct {\n\tkeys []cachedPubKey\n}\n\n// get returns the result for a given user/algo/key tuple.\nfunc (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) {\n\tfor _, k := range c.keys {\n\t\tif k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) {\n\t\t\treturn k, true\n\t\t}\n\t}\n\treturn cachedPubKey{}, false\n}\n\n// add adds the given tuple to the cache.\nfunc (c *pubKeyCache) add(candidate cachedPubKey) {\n\tif len(c.keys) >= maxCachedPubKeys {\n\t\tc.keys = c.keys[1:]\n\t}\n\tc.keys = append(c.keys, candidate)\n}\n\n// ServerConn is an authenticated SSH connection, as seen from the\n// server\ntype ServerConn struct {\n\tConn\n\n\t// If the succeeding authentication callback returned a\n\t// non-nil Permissions pointer, it is stored here.\n\tPermissions *Permissions\n}\n\n// NewServerConn starts a new SSH server with c as the underlying\n// transport.  It starts with a handshake and, if the handshake is\n// unsuccessful, it closes the connection and returns an error.  The\n// Request and NewChannel channels must be serviced, or the connection\n// will hang.\n//\n// The returned error may be of type *ServerAuthError for\n// authentication errors.\nfunc NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) {\n\tfullConf := *config\n\tfullConf.SetDefaults()\n\tif fullConf.MaxAuthTries == 0 {\n\t\tfullConf.MaxAuthTries = 6\n\t}\n\tif len(fullConf.PublicKeyAuthAlgorithms) == 0 {\n\t\tfullConf.PublicKeyAuthAlgorithms = defaultPubKeyAuthAlgos\n\t} else {\n\t\tfor _, algo := range fullConf.PublicKeyAuthAlgorithms {\n\t\t\tif !slices.Contains(SupportedAlgorithms().PublicKeyAuths, algo) && !slices.Contains(InsecureAlgorithms().PublicKeyAuths, algo) {\n\t\t\t\tc.Close()\n\t\t\t\treturn nil, nil, nil, fmt.Errorf(\"ssh: unsupported public key authentication algorithm %s\", algo)\n\t\t\t}\n\t\t}\n\t}\n\n\ts := &connection{\n\t\tsshConn: sshConn{conn: c},\n\t}\n\tperms, err := s.serverHandshake(&fullConf)\n\tif err != nil {\n\t\tc.Close()\n\t\treturn nil, nil, nil, err\n\t}\n\treturn &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil\n}\n\n// signAndMarshal signs the data with the appropriate algorithm,\n// and serializes the result in SSH wire format. algo is the negotiate\n// algorithm and may be a certificate type.\nfunc signAndMarshal(k AlgorithmSigner, rand io.Reader, data []byte, algo string) ([]byte, error) {\n\tsig, err := k.SignWithAlgorithm(rand, data, underlyingAlgo(algo))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn Marshal(sig), nil\n}\n\n// handshake performs key exchange and user authentication.\nfunc (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) {\n\tif len(config.hostKeys) == 0 {\n\t\treturn nil, errors.New(\"ssh: server has no host keys\")\n\t}\n\n\tif !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil &&\n\t\tconfig.KeyboardInteractiveCallback == nil && (config.GSSAPIWithMICConfig == nil ||\n\t\tconfig.GSSAPIWithMICConfig.AllowLogin == nil || config.GSSAPIWithMICConfig.Server == nil) {\n\t\treturn nil, errors.New(\"ssh: no authentication methods configured but NoClientAuth is also false\")\n\t}\n\n\tif config.ServerVersion != \"\" {\n\t\ts.serverVersion = []byte(config.ServerVersion)\n\t} else {\n\t\ts.serverVersion = []byte(packageVersion)\n\t}\n\tvar err error\n\ts.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttr := newTransport(s.sshConn.conn, config.Rand, false /* not client */)\n\ts.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config)\n\n\tif err := s.transport.waitSession(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We just did the key change, so the session ID is established.\n\ts.sessionID = s.transport.getSessionID()\n\ts.algorithms = s.transport.getAlgorithms()\n\n\tvar packet []byte\n\tif packet, err = s.transport.readPacket(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar serviceRequest serviceRequestMsg\n\tif err = Unmarshal(packet, &serviceRequest); err != nil {\n\t\treturn nil, err\n\t}\n\tif serviceRequest.Service != serviceUserAuth {\n\t\treturn nil, errors.New(\"ssh: requested service '\" + serviceRequest.Service + \"' before authenticating\")\n\t}\n\tserviceAccept := serviceAcceptMsg{\n\t\tService: serviceUserAuth,\n\t}\n\tif err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tperms, err := s.serverAuthenticate(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ts.mux = newMux(s.transport)\n\treturn perms, err\n}\n\nfunc checkSourceAddress(addr net.Addr, sourceAddrs string) error {\n\tif addr == nil {\n\t\treturn errors.New(\"ssh: no address known for client, but source-address match required\")\n\t}\n\n\ttcpAddr, ok := addr.(*net.TCPAddr)\n\tif !ok {\n\t\treturn fmt.Errorf(\"ssh: remote address %v is not an TCP address when checking source-address match\", addr)\n\t}\n\n\tfor _, sourceAddr := range strings.Split(sourceAddrs, \",\") {\n\t\tif allowedIP := net.ParseIP(sourceAddr); allowedIP != nil {\n\t\t\tif allowedIP.Equal(tcpAddr.IP) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t} else {\n\t\t\t_, ipNet, err := net.ParseCIDR(sourceAddr)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"ssh: error parsing source-address restriction %q: %v\", sourceAddr, err)\n\t\t\t}\n\n\t\t\tif ipNet.Contains(tcpAddr.IP) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fmt.Errorf(\"ssh: remote address %v is not allowed because of source-address restriction\", addr)\n}\n\nfunc gssExchangeToken(gssapiConfig *GSSAPIWithMICConfig, token []byte, s *connection,\n\tsessionID []byte, userAuthReq userAuthRequestMsg) (authErr error, perms *Permissions, err error) {\n\tgssAPIServer := gssapiConfig.Server\n\tdefer gssAPIServer.DeleteSecContext()\n\tvar srcName string\n\tfor {\n\t\tvar (\n\t\t\toutToken     []byte\n\t\t\tneedContinue bool\n\t\t)\n\t\toutToken, srcName, needContinue, err = gssAPIServer.AcceptSecContext(token)\n\t\tif err != nil {\n\t\t\treturn err, nil, nil\n\t\t}\n\t\tif len(outToken) != 0 {\n\t\t\tif err := s.transport.writePacket(Marshal(&userAuthGSSAPIToken{\n\t\t\t\tToken: outToken,\n\t\t\t})); err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t}\n\t\tif !needContinue {\n\t\t\tbreak\n\t\t}\n\t\tpacket, err := s.transport.readPacket()\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tuserAuthGSSAPITokenReq := &userAuthGSSAPIToken{}\n\t\tif err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\ttoken = userAuthGSSAPITokenReq.Token\n\t}\n\tpacket, err := s.transport.readPacket()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tuserAuthGSSAPIMICReq := &userAuthGSSAPIMIC{}\n\tif err := Unmarshal(packet, userAuthGSSAPIMICReq); err != nil {\n\t\treturn nil, nil, err\n\t}\n\tmic := buildMIC(string(sessionID), userAuthReq.User, userAuthReq.Service, userAuthReq.Method)\n\tif err := gssAPIServer.VerifyMIC(mic, userAuthGSSAPIMICReq.MIC); err != nil {\n\t\treturn err, nil, nil\n\t}\n\tperms, authErr = gssapiConfig.AllowLogin(s, srcName)\n\treturn authErr, perms, nil\n}\n\n// isAlgoCompatible checks if the signature format is compatible with the\n// selected algorithm taking into account edge cases that occur with old\n// clients.\nfunc isAlgoCompatible(algo, sigFormat string) bool {\n\t// Compatibility for old clients.\n\t//\n\t// For certificate authentication with OpenSSH 7.2-7.7 signature format can\n\t// be rsa-sha2-256 or rsa-sha2-512 for the algorithm\n\t// ssh-rsa-cert-v01@openssh.com.\n\t//\n\t// With gpg-agent < 2.2.6 the algorithm can be rsa-sha2-256 or rsa-sha2-512\n\t// for signature format ssh-rsa.\n\tif isRSA(algo) && isRSA(sigFormat) {\n\t\treturn true\n\t}\n\t// Standard case: the underlying algorithm must match the signature format.\n\treturn underlyingAlgo(algo) == sigFormat\n}\n\n// ServerAuthError represents server authentication errors and is\n// sometimes returned by NewServerConn. It appends any authentication\n// errors that may occur, and is returned if all of the authentication\n// methods provided by the user failed to authenticate.\ntype ServerAuthError struct {\n\t// Errors contains authentication errors returned by the authentication\n\t// callback methods. The first entry is typically ErrNoAuth.\n\tErrors []error\n}\n\nfunc (l ServerAuthError) Error() string {\n\tvar errs []string\n\tfor _, err := range l.Errors {\n\t\terrs = append(errs, err.Error())\n\t}\n\treturn \"[\" + strings.Join(errs, \", \") + \"]\"\n}\n\n// ServerAuthCallbacks defines server-side authentication callbacks.\ntype ServerAuthCallbacks struct {\n\t// PasswordCallback behaves like [ServerConfig.PasswordCallback].\n\tPasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error)\n\n\t// PublicKeyCallback behaves like [ServerConfig.PublicKeyCallback].\n\tPublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error)\n\n\t// KeyboardInteractiveCallback behaves like [ServerConfig.KeyboardInteractiveCallback].\n\tKeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error)\n\n\t// GSSAPIWithMICConfig behaves like [ServerConfig.GSSAPIWithMICConfig].\n\tGSSAPIWithMICConfig *GSSAPIWithMICConfig\n}\n\n// PartialSuccessError can be returned by any of the [ServerConfig]\n// authentication callbacks to indicate to the client that authentication has\n// partially succeeded, but further steps are required.\ntype PartialSuccessError struct {\n\t// Next defines the authentication callbacks to apply to further steps. The\n\t// available methods communicated to the client are based on the non-nil\n\t// ServerAuthCallbacks fields.\n\tNext ServerAuthCallbacks\n}\n\nfunc (p *PartialSuccessError) Error() string {\n\treturn \"ssh: authenticated with partial success\"\n}\n\n// ErrNoAuth is the error value returned if no\n// authentication method has been passed yet. This happens as a normal\n// part of the authentication loop, since the client first tries\n// 'none' authentication to discover available methods.\n// It is returned in ServerAuthError.Errors from NewServerConn.\nvar ErrNoAuth = errors.New(\"ssh: no auth passed yet\")\n\n// BannerError is an error that can be returned by authentication handlers in\n// ServerConfig to send a banner message to the client.\ntype BannerError struct {\n\tErr     error\n\tMessage string\n}\n\nfunc (b *BannerError) Unwrap() error {\n\treturn b.Err\n}\n\nfunc (b *BannerError) Error() string {\n\tif b.Err == nil {\n\t\treturn b.Message\n\t}\n\treturn b.Err.Error()\n}\n\nfunc (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) {\n\tif config.PreAuthConnCallback != nil {\n\t\tconfig.PreAuthConnCallback(s)\n\t}\n\n\tsessionID := s.transport.getSessionID()\n\tvar cache pubKeyCache\n\tvar perms *Permissions\n\n\tauthFailures := 0\n\tnoneAuthCount := 0\n\tvar authErrs []error\n\tvar calledBannerCallback bool\n\tpartialSuccessReturned := false\n\t// Set the initial authentication callbacks from the config. They can be\n\t// changed if a PartialSuccessError is returned.\n\tauthConfig := ServerAuthCallbacks{\n\t\tPasswordCallback:            config.PasswordCallback,\n\t\tPublicKeyCallback:           config.PublicKeyCallback,\n\t\tKeyboardInteractiveCallback: config.KeyboardInteractiveCallback,\n\t\tGSSAPIWithMICConfig:         config.GSSAPIWithMICConfig,\n\t}\n\nuserAuthLoop:\n\tfor {\n\t\tif authFailures >= config.MaxAuthTries && config.MaxAuthTries > 0 {\n\t\t\tdiscMsg := &disconnectMsg{\n\t\t\t\tReason:  2,\n\t\t\t\tMessage: \"too many authentication failures\",\n\t\t\t}\n\n\t\t\tif err := s.transport.writePacket(Marshal(discMsg)); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tauthErrs = append(authErrs, discMsg)\n\t\t\treturn nil, &ServerAuthError{Errors: authErrs}\n\t\t}\n\n\t\tvar userAuthReq userAuthRequestMsg\n\t\tif packet, err := s.transport.readPacket(); err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn nil, &ServerAuthError{Errors: authErrs}\n\t\t\t}\n\t\t\treturn nil, err\n\t\t} else if err = Unmarshal(packet, &userAuthReq); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif userAuthReq.Service != serviceSSH {\n\t\t\treturn nil, errors.New(\"ssh: client attempted to negotiate for unknown service: \" + userAuthReq.Service)\n\t\t}\n\n\t\tif s.user != userAuthReq.User && partialSuccessReturned {\n\t\t\treturn nil, fmt.Errorf(\"ssh: client changed the user after a partial success authentication, previous user %q, current user %q\",\n\t\t\t\ts.user, userAuthReq.User)\n\t\t}\n\n\t\ts.user = userAuthReq.User\n\n\t\tif !calledBannerCallback && config.BannerCallback != nil {\n\t\t\tcalledBannerCallback = true\n\t\t\tif msg := config.BannerCallback(s); msg != \"\" {\n\t\t\t\tif err := s.SendAuthBanner(msg); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tperms = nil\n\t\tauthErr := ErrNoAuth\n\n\t\tswitch userAuthReq.Method {\n\t\tcase \"none\":\n\t\t\tnoneAuthCount++\n\t\t\t// We don't allow none authentication after a partial success\n\t\t\t// response.\n\t\t\tif config.NoClientAuth && !partialSuccessReturned {\n\t\t\t\tif config.NoClientAuthCallback != nil {\n\t\t\t\t\tperms, authErr = config.NoClientAuthCallback(s)\n\t\t\t\t} else {\n\t\t\t\t\tauthErr = nil\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"password\":\n\t\t\tif authConfig.PasswordCallback == nil {\n\t\t\t\tauthErr = errors.New(\"ssh: password auth not configured\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tpayload := userAuthReq.Payload\n\t\t\tif len(payload) < 1 || payload[0] != 0 {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\t\t\tpayload = payload[1:]\n\t\t\tpassword, payload, ok := parseString(payload)\n\t\t\tif !ok || len(payload) > 0 {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\n\t\t\tperms, authErr = authConfig.PasswordCallback(s, password)\n\t\tcase \"keyboard-interactive\":\n\t\t\tif authConfig.KeyboardInteractiveCallback == nil {\n\t\t\t\tauthErr = errors.New(\"ssh: keyboard-interactive auth not configured\")\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tprompter := &sshClientKeyboardInteractive{s}\n\t\t\tperms, authErr = authConfig.KeyboardInteractiveCallback(s, prompter.Challenge)\n\t\tcase \"publickey\":\n\t\t\tif authConfig.PublicKeyCallback == nil {\n\t\t\t\tauthErr = errors.New(\"ssh: publickey auth not configured\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tpayload := userAuthReq.Payload\n\t\t\tif len(payload) < 1 {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\t\t\tisQuery := payload[0] == 0\n\t\t\tpayload = payload[1:]\n\t\t\talgoBytes, payload, ok := parseString(payload)\n\t\t\tif !ok {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\t\t\talgo := string(algoBytes)\n\t\t\tif !slices.Contains(config.PublicKeyAuthAlgorithms, underlyingAlgo(algo)) {\n\t\t\t\tauthErr = fmt.Errorf(\"ssh: algorithm %q not accepted\", algo)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tpubKeyData, payload, ok := parseString(payload)\n\t\t\tif !ok {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\n\t\t\tpubKey, err := ParsePublicKey(pubKeyData)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tcandidate, ok := cache.get(s.user, pubKeyData)\n\t\t\tif !ok {\n\t\t\t\tcandidate.user = s.user\n\t\t\t\tcandidate.pubKeyData = pubKeyData\n\t\t\t\tcandidate.perms, candidate.result = authConfig.PublicKeyCallback(s, pubKey)\n\t\t\t\t_, isPartialSuccessError := candidate.result.(*PartialSuccessError)\n\t\t\t\tif isPartialSuccessError && config.VerifiedPublicKeyCallback != nil {\n\t\t\t\t\treturn nil, errors.New(\"ssh: invalid library usage: PublicKeyCallback must not return partial success when VerifiedPublicKeyCallback is defined\")\n\t\t\t\t}\n\n\t\t\t\tif (candidate.result == nil || isPartialSuccessError) &&\n\t\t\t\t\tcandidate.perms != nil &&\n\t\t\t\t\tcandidate.perms.CriticalOptions != nil &&\n\t\t\t\t\tcandidate.perms.CriticalOptions[sourceAddressCriticalOption] != \"\" {\n\t\t\t\t\tif err := checkSourceAddress(\n\t\t\t\t\t\ts.RemoteAddr(),\n\t\t\t\t\t\tcandidate.perms.CriticalOptions[sourceAddressCriticalOption]); err != nil {\n\t\t\t\t\t\tcandidate.result = err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcache.add(candidate)\n\t\t\t}\n\n\t\t\tif isQuery {\n\t\t\t\t// The client can query if the given public key\n\t\t\t\t// would be okay.\n\n\t\t\t\tif len(payload) > 0 {\n\t\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t\t}\n\t\t\t\t_, isPartialSuccessError := candidate.result.(*PartialSuccessError)\n\t\t\t\tif candidate.result == nil || isPartialSuccessError {\n\t\t\t\t\tokMsg := userAuthPubKeyOkMsg{\n\t\t\t\t\t\tAlgo:   algo,\n\t\t\t\t\t\tPubKey: pubKeyData,\n\t\t\t\t\t}\n\t\t\t\t\tif err = s.transport.writePacket(Marshal(&okMsg)); err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue userAuthLoop\n\t\t\t\t}\n\t\t\t\tauthErr = candidate.result\n\t\t\t} else {\n\t\t\t\tsig, payload, ok := parseSignature(payload)\n\t\t\t\tif !ok || len(payload) > 0 {\n\t\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t\t}\n\t\t\t\t// Ensure the declared public key algo is compatible with the\n\t\t\t\t// decoded one. This check will ensure we don't accept e.g.\n\t\t\t\t// ssh-rsa-cert-v01@openssh.com algorithm with ssh-rsa public\n\t\t\t\t// key type. The algorithm and public key type must be\n\t\t\t\t// consistent: both must be certificate algorithms, or neither.\n\t\t\t\tif !slices.Contains(algorithmsForKeyFormat(pubKey.Type()), algo) {\n\t\t\t\t\tauthErr = fmt.Errorf(\"ssh: public key type %q not compatible with selected algorithm %q\",\n\t\t\t\t\t\tpubKey.Type(), algo)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// Ensure the public key algo and signature algo\n\t\t\t\t// are supported.  Compare the private key\n\t\t\t\t// algorithm name that corresponds to algo with\n\t\t\t\t// sig.Format.  This is usually the same, but\n\t\t\t\t// for certs, the names differ.\n\t\t\t\tif !slices.Contains(config.PublicKeyAuthAlgorithms, sig.Format) {\n\t\t\t\t\tauthErr = fmt.Errorf(\"ssh: algorithm %q not accepted\", sig.Format)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !isAlgoCompatible(algo, sig.Format) {\n\t\t\t\t\tauthErr = fmt.Errorf(\"ssh: signature %q not compatible with selected algorithm %q\", sig.Format, algo)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tsignedData := buildDataSignedForAuth(sessionID, userAuthReq, algo, pubKeyData)\n\n\t\t\t\tif err := pubKey.Verify(signedData, sig); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tauthErr = candidate.result\n\t\t\t\tperms = candidate.perms\n\t\t\t\tif authErr == nil && config.VerifiedPublicKeyCallback != nil {\n\t\t\t\t\t// Only call VerifiedPublicKeyCallback after the key has been accepted\n\t\t\t\t\t// and successfully verified. If authErr is non-nil, the key is not\n\t\t\t\t\t// considered verified and the callback must not run.\n\t\t\t\t\tperms, authErr = config.VerifiedPublicKeyCallback(s, pubKey, perms, algo)\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"gssapi-with-mic\":\n\t\t\tif authConfig.GSSAPIWithMICConfig == nil {\n\t\t\t\tauthErr = errors.New(\"ssh: gssapi-with-mic auth not configured\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tgssapiConfig := authConfig.GSSAPIWithMICConfig\n\t\t\tuserAuthRequestGSSAPI, err := parseGSSAPIPayload(userAuthReq.Payload)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, parseError(msgUserAuthRequest)\n\t\t\t}\n\t\t\t// OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication.\n\t\t\tif userAuthRequestGSSAPI.N == 0 {\n\t\t\t\tauthErr = fmt.Errorf(\"ssh: Mechanism negotiation is not supported\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar i uint32\n\t\t\tpresent := false\n\t\t\tfor i = 0; i < userAuthRequestGSSAPI.N; i++ {\n\t\t\t\tif userAuthRequestGSSAPI.OIDS[i].Equal(krb5Mesh) {\n\t\t\t\t\tpresent = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !present {\n\t\t\t\tauthErr = fmt.Errorf(\"ssh: GSSAPI authentication must use the Kerberos V5 mechanism\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Initial server response, see RFC 4462 section 3.3.\n\t\t\tif err := s.transport.writePacket(Marshal(&userAuthGSSAPIResponse{\n\t\t\t\tSupportMech: krb5OID,\n\t\t\t})); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\t// Exchange token, see RFC 4462 section 3.4.\n\t\t\tpacket, err := s.transport.readPacket()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tuserAuthGSSAPITokenReq := &userAuthGSSAPIToken{}\n\t\t\tif err := Unmarshal(packet, userAuthGSSAPITokenReq); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tauthErr, perms, err = gssExchangeToken(gssapiConfig, userAuthGSSAPITokenReq.Token, s, sessionID,\n\t\t\t\tuserAuthReq)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\tdefault:\n\t\t\tauthErr = fmt.Errorf(\"ssh: unknown method %q\", userAuthReq.Method)\n\t\t}\n\n\t\tauthErrs = append(authErrs, authErr)\n\n\t\tif config.AuthLogCallback != nil {\n\t\t\tconfig.AuthLogCallback(s, userAuthReq.Method, authErr)\n\t\t}\n\n\t\tvar bannerErr *BannerError\n\t\tif errors.As(authErr, &bannerErr) {\n\t\t\tif bannerErr.Message != \"\" {\n\t\t\t\tif err := s.SendAuthBanner(bannerErr.Message); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif authErr == nil {\n\t\t\tbreak userAuthLoop\n\t\t}\n\n\t\tvar failureMsg userAuthFailureMsg\n\n\t\tif partialSuccess, ok := authErr.(*PartialSuccessError); ok {\n\t\t\t// After a partial success error we don't allow changing the user\n\t\t\t// name and execute the NoClientAuthCallback.\n\t\t\tpartialSuccessReturned = true\n\n\t\t\t// In case a partial success is returned, the server may send\n\t\t\t// a new set of authentication methods.\n\t\t\tauthConfig = partialSuccess.Next\n\n\t\t\t// Reset pubkey cache, as the new PublicKeyCallback might\n\t\t\t// accept a different set of public keys.\n\t\t\tcache = pubKeyCache{}\n\n\t\t\t// Send back a partial success message to the user.\n\t\t\tfailureMsg.PartialSuccess = true\n\t\t} else {\n\t\t\t// Allow initial attempt of 'none' without penalty.\n\t\t\tif authFailures > 0 || userAuthReq.Method != \"none\" || noneAuthCount != 1 {\n\t\t\t\tauthFailures++\n\t\t\t}\n\t\t\tif config.MaxAuthTries > 0 && authFailures >= config.MaxAuthTries {\n\t\t\t\t// If we have hit the max attempts, don't bother sending the\n\t\t\t\t// final SSH_MSG_USERAUTH_FAILURE message, since there are\n\t\t\t\t// no more authentication methods which can be attempted,\n\t\t\t\t// and this message may cause the client to re-attempt\n\t\t\t\t// authentication while we send the disconnect message.\n\t\t\t\t// Continue, and trigger the disconnect at the start of\n\t\t\t\t// the loop.\n\t\t\t\t//\n\t\t\t\t// The SSH specification is somewhat confusing about this,\n\t\t\t\t// RFC 4252 Section 5.1 requires each authentication failure\n\t\t\t\t// be responded to with a respective SSH_MSG_USERAUTH_FAILURE\n\t\t\t\t// message, but Section 4 says the server should disconnect\n\t\t\t\t// after some number of attempts, but it isn't explicit which\n\t\t\t\t// message should take precedence (i.e. should there be a failure\n\t\t\t\t// message than a disconnect message, or if we are going to\n\t\t\t\t// disconnect, should we only send that message.)\n\t\t\t\t//\n\t\t\t\t// Either way, OpenSSH disconnects immediately after the last\n\t\t\t\t// failed authentication attempt, and given they are typically\n\t\t\t\t// considered the golden implementation it seems reasonable\n\t\t\t\t// to match that behavior.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif authConfig.PasswordCallback != nil {\n\t\t\tfailureMsg.Methods = append(failureMsg.Methods, \"password\")\n\t\t}\n\t\tif authConfig.PublicKeyCallback != nil {\n\t\t\tfailureMsg.Methods = append(failureMsg.Methods, \"publickey\")\n\t\t}\n\t\tif authConfig.KeyboardInteractiveCallback != nil {\n\t\t\tfailureMsg.Methods = append(failureMsg.Methods, \"keyboard-interactive\")\n\t\t}\n\t\tif authConfig.GSSAPIWithMICConfig != nil && authConfig.GSSAPIWithMICConfig.Server != nil &&\n\t\t\tauthConfig.GSSAPIWithMICConfig.AllowLogin != nil {\n\t\t\tfailureMsg.Methods = append(failureMsg.Methods, \"gssapi-with-mic\")\n\t\t}\n\n\t\tif len(failureMsg.Methods) == 0 {\n\t\t\treturn nil, errors.New(\"ssh: no authentication methods available\")\n\t\t}\n\n\t\tif err := s.transport.writePacket(Marshal(&failureMsg)); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil {\n\t\treturn nil, err\n\t}\n\treturn perms, nil\n}\n\n// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by\n// asking the client on the other side of a ServerConn.\ntype sshClientKeyboardInteractive struct {\n\t*connection\n}\n\nfunc (c *sshClientKeyboardInteractive) Challenge(name, instruction string, questions []string, echos []bool) (answers []string, err error) {\n\tif len(questions) != len(echos) {\n\t\treturn nil, errors.New(\"ssh: echos and questions must have equal length\")\n\t}\n\n\tvar prompts []byte\n\tfor i := range questions {\n\t\tprompts = appendString(prompts, questions[i])\n\t\tprompts = appendBool(prompts, echos[i])\n\t}\n\n\tif err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{\n\t\tName:        name,\n\t\tInstruction: instruction,\n\t\tNumPrompts:  uint32(len(questions)),\n\t\tPrompts:     prompts,\n\t})); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpacket, err := c.transport.readPacket()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif packet[0] != msgUserAuthInfoResponse {\n\t\treturn nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0])\n\t}\n\tpacket = packet[1:]\n\n\tn, packet, ok := parseUint32(packet)\n\tif !ok || int(n) != len(questions) {\n\t\treturn nil, parseError(msgUserAuthInfoResponse)\n\t}\n\n\tfor i := uint32(0); i < n; i++ {\n\t\tans, rest, ok := parseString(packet)\n\t\tif !ok {\n\t\t\treturn nil, parseError(msgUserAuthInfoResponse)\n\t\t}\n\n\t\tanswers = append(answers, string(ans))\n\t\tpacket = rest\n\t}\n\tif len(packet) != 0 {\n\t\treturn nil, errors.New(\"ssh: junk at end of message\")\n\t}\n\n\treturn answers, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/session.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 ssh\n\n// Session implements an interactive session described in\n// \"RFC 4254, section 6\".\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n)\n\ntype Signal string\n\n// POSIX signals as listed in RFC 4254 Section 6.10.\nconst (\n\tSIGABRT Signal = \"ABRT\"\n\tSIGALRM Signal = \"ALRM\"\n\tSIGFPE  Signal = \"FPE\"\n\tSIGHUP  Signal = \"HUP\"\n\tSIGILL  Signal = \"ILL\"\n\tSIGINT  Signal = \"INT\"\n\tSIGKILL Signal = \"KILL\"\n\tSIGPIPE Signal = \"PIPE\"\n\tSIGQUIT Signal = \"QUIT\"\n\tSIGSEGV Signal = \"SEGV\"\n\tSIGTERM Signal = \"TERM\"\n\tSIGUSR1 Signal = \"USR1\"\n\tSIGUSR2 Signal = \"USR2\"\n)\n\nvar signals = map[Signal]int{\n\tSIGABRT: 6,\n\tSIGALRM: 14,\n\tSIGFPE:  8,\n\tSIGHUP:  1,\n\tSIGILL:  4,\n\tSIGINT:  2,\n\tSIGKILL: 9,\n\tSIGPIPE: 13,\n\tSIGQUIT: 3,\n\tSIGSEGV: 11,\n\tSIGTERM: 15,\n}\n\ntype TerminalModes map[uint8]uint32\n\n// POSIX terminal mode flags as listed in RFC 4254 Section 8.\nconst (\n\ttty_OP_END    = 0\n\tVINTR         = 1\n\tVQUIT         = 2\n\tVERASE        = 3\n\tVKILL         = 4\n\tVEOF          = 5\n\tVEOL          = 6\n\tVEOL2         = 7\n\tVSTART        = 8\n\tVSTOP         = 9\n\tVSUSP         = 10\n\tVDSUSP        = 11\n\tVREPRINT      = 12\n\tVWERASE       = 13\n\tVLNEXT        = 14\n\tVFLUSH        = 15\n\tVSWTCH        = 16\n\tVSTATUS       = 17\n\tVDISCARD      = 18\n\tIGNPAR        = 30\n\tPARMRK        = 31\n\tINPCK         = 32\n\tISTRIP        = 33\n\tINLCR         = 34\n\tIGNCR         = 35\n\tICRNL         = 36\n\tIUCLC         = 37\n\tIXON          = 38\n\tIXANY         = 39\n\tIXOFF         = 40\n\tIMAXBEL       = 41\n\tIUTF8         = 42 // RFC 8160\n\tISIG          = 50\n\tICANON        = 51\n\tXCASE         = 52\n\tECHO          = 53\n\tECHOE         = 54\n\tECHOK         = 55\n\tECHONL        = 56\n\tNOFLSH        = 57\n\tTOSTOP        = 58\n\tIEXTEN        = 59\n\tECHOCTL       = 60\n\tECHOKE        = 61\n\tPENDIN        = 62\n\tOPOST         = 70\n\tOLCUC         = 71\n\tONLCR         = 72\n\tOCRNL         = 73\n\tONOCR         = 74\n\tONLRET        = 75\n\tCS7           = 90\n\tCS8           = 91\n\tPARENB        = 92\n\tPARODD        = 93\n\tTTY_OP_ISPEED = 128\n\tTTY_OP_OSPEED = 129\n)\n\n// A Session represents a connection to a remote command or shell.\ntype Session struct {\n\t// Stdin specifies the remote process's standard input.\n\t// If Stdin is nil, the remote process reads from an empty\n\t// bytes.Buffer.\n\tStdin io.Reader\n\n\t// Stdout and Stderr specify the remote process's standard\n\t// output and error.\n\t//\n\t// If either is nil, Run connects the corresponding file\n\t// descriptor to an instance of io.Discard. There is a\n\t// fixed amount of buffering that is shared for the two streams.\n\t// If either blocks it may eventually cause the remote\n\t// command to block.\n\tStdout io.Writer\n\tStderr io.Writer\n\n\tch        Channel // the channel backing this session\n\tstarted   bool    // true once Start, Run or Shell is invoked.\n\tcopyFuncs []func() error\n\terrors    chan error // one send per copyFunc\n\n\t// true if pipe method is active\n\tstdinpipe, stdoutpipe, stderrpipe bool\n\n\t// stdinPipeWriter is non-nil if StdinPipe has not been called\n\t// and Stdin was specified by the user; it is the write end of\n\t// a pipe connecting Session.Stdin to the stdin channel.\n\tstdinPipeWriter io.WriteCloser\n\n\texitStatus chan error\n}\n\n// SendRequest sends an out-of-band channel request on the SSH channel\n// underlying the session.\nfunc (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) {\n\treturn s.ch.SendRequest(name, wantReply, payload)\n}\n\nfunc (s *Session) Close() error {\n\treturn s.ch.Close()\n}\n\n// RFC 4254 Section 6.4.\ntype setenvRequest struct {\n\tName  string\n\tValue string\n}\n\n// Setenv sets an environment variable that will be applied to any\n// command executed by Shell or Run.\nfunc (s *Session) Setenv(name, value string) error {\n\tmsg := setenvRequest{\n\t\tName:  name,\n\t\tValue: value,\n\t}\n\tok, err := s.ch.SendRequest(\"env\", true, Marshal(&msg))\n\tif err == nil && !ok {\n\t\terr = errors.New(\"ssh: setenv failed\")\n\t}\n\treturn err\n}\n\n// RFC 4254 Section 6.2.\ntype ptyRequestMsg struct {\n\tTerm     string\n\tColumns  uint32\n\tRows     uint32\n\tWidth    uint32\n\tHeight   uint32\n\tModelist string\n}\n\n// RequestPty requests the association of a pty with the session on the remote host.\nfunc (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error {\n\tvar tm []byte\n\tfor k, v := range termmodes {\n\t\tkv := struct {\n\t\t\tKey byte\n\t\t\tVal uint32\n\t\t}{k, v}\n\n\t\ttm = append(tm, Marshal(&kv)...)\n\t}\n\ttm = append(tm, tty_OP_END)\n\treq := ptyRequestMsg{\n\t\tTerm:     term,\n\t\tColumns:  uint32(w),\n\t\tRows:     uint32(h),\n\t\tWidth:    uint32(w * 8),\n\t\tHeight:   uint32(h * 8),\n\t\tModelist: string(tm),\n\t}\n\tok, err := s.ch.SendRequest(\"pty-req\", true, Marshal(&req))\n\tif err == nil && !ok {\n\t\terr = errors.New(\"ssh: pty-req failed\")\n\t}\n\treturn err\n}\n\n// RFC 4254 Section 6.5.\ntype subsystemRequestMsg struct {\n\tSubsystem string\n}\n\n// RequestSubsystem requests the association of a subsystem with the session on the remote host.\n// A subsystem is a predefined command that runs in the background when the ssh session is initiated\nfunc (s *Session) RequestSubsystem(subsystem string) error {\n\tmsg := subsystemRequestMsg{\n\t\tSubsystem: subsystem,\n\t}\n\tok, err := s.ch.SendRequest(\"subsystem\", true, Marshal(&msg))\n\tif err == nil && !ok {\n\t\terr = errors.New(\"ssh: subsystem request failed\")\n\t}\n\treturn err\n}\n\n// RFC 4254 Section 6.7.\ntype ptyWindowChangeMsg struct {\n\tColumns uint32\n\tRows    uint32\n\tWidth   uint32\n\tHeight  uint32\n}\n\n// WindowChange informs the remote host about a terminal window dimension change to h rows and w columns.\nfunc (s *Session) WindowChange(h, w int) error {\n\treq := ptyWindowChangeMsg{\n\t\tColumns: uint32(w),\n\t\tRows:    uint32(h),\n\t\tWidth:   uint32(w * 8),\n\t\tHeight:  uint32(h * 8),\n\t}\n\t_, err := s.ch.SendRequest(\"window-change\", false, Marshal(&req))\n\treturn err\n}\n\n// RFC 4254 Section 6.9.\ntype signalMsg struct {\n\tSignal string\n}\n\n// Signal sends the given signal to the remote process.\n// sig is one of the SIG* constants.\nfunc (s *Session) Signal(sig Signal) error {\n\tmsg := signalMsg{\n\t\tSignal: string(sig),\n\t}\n\n\t_, err := s.ch.SendRequest(\"signal\", false, Marshal(&msg))\n\treturn err\n}\n\n// RFC 4254 Section 6.5.\ntype execMsg struct {\n\tCommand string\n}\n\n// Start runs cmd on the remote host. Typically, the remote\n// server passes cmd to the shell for interpretation.\n// A Session only accepts one call to Run, Start or Shell.\nfunc (s *Session) Start(cmd string) error {\n\tif s.started {\n\t\treturn errors.New(\"ssh: session already started\")\n\t}\n\treq := execMsg{\n\t\tCommand: cmd,\n\t}\n\n\tok, err := s.ch.SendRequest(\"exec\", true, Marshal(&req))\n\tif err == nil && !ok {\n\t\terr = fmt.Errorf(\"ssh: command %v failed\", cmd)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.start()\n}\n\n// Run runs cmd on the remote host. Typically, the remote\n// server passes cmd to the shell for interpretation.\n// A Session only accepts one call to Run, Start, Shell, Output,\n// or CombinedOutput.\n//\n// The returned error is nil if the command runs, has no problems\n// copying stdin, stdout, and stderr, and exits with a zero exit\n// status.\n//\n// If the remote server does not send an exit status, an error of type\n// *ExitMissingError is returned. If the command completes\n// unsuccessfully or is interrupted by a signal, the error is of type\n// *ExitError. Other error types may be returned for I/O problems.\nfunc (s *Session) Run(cmd string) error {\n\terr := s.Start(cmd)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.Wait()\n}\n\n// Output runs cmd on the remote host and returns its standard output.\nfunc (s *Session) Output(cmd string) ([]byte, error) {\n\tif s.Stdout != nil {\n\t\treturn nil, errors.New(\"ssh: Stdout already set\")\n\t}\n\tvar b bytes.Buffer\n\ts.Stdout = &b\n\terr := s.Run(cmd)\n\treturn b.Bytes(), err\n}\n\ntype singleWriter struct {\n\tb  bytes.Buffer\n\tmu sync.Mutex\n}\n\nfunc (w *singleWriter) Write(p []byte) (int, error) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\treturn w.b.Write(p)\n}\n\n// CombinedOutput runs cmd on the remote host and returns its combined\n// standard output and standard error.\nfunc (s *Session) CombinedOutput(cmd string) ([]byte, error) {\n\tif s.Stdout != nil {\n\t\treturn nil, errors.New(\"ssh: Stdout already set\")\n\t}\n\tif s.Stderr != nil {\n\t\treturn nil, errors.New(\"ssh: Stderr already set\")\n\t}\n\tvar b singleWriter\n\ts.Stdout = &b\n\ts.Stderr = &b\n\terr := s.Run(cmd)\n\treturn b.b.Bytes(), err\n}\n\n// Shell starts a login shell on the remote host. A Session only\n// accepts one call to Run, Start, Shell, Output, or CombinedOutput.\nfunc (s *Session) Shell() error {\n\tif s.started {\n\t\treturn errors.New(\"ssh: session already started\")\n\t}\n\n\tok, err := s.ch.SendRequest(\"shell\", true, nil)\n\tif err == nil && !ok {\n\t\treturn errors.New(\"ssh: could not start shell\")\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.start()\n}\n\nfunc (s *Session) start() error {\n\ts.started = true\n\n\ttype F func(*Session)\n\tfor _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} {\n\t\tsetupFd(s)\n\t}\n\n\ts.errors = make(chan error, len(s.copyFuncs))\n\tfor _, fn := range s.copyFuncs {\n\t\tgo func(fn func() error) {\n\t\t\ts.errors <- fn()\n\t\t}(fn)\n\t}\n\treturn nil\n}\n\n// Wait waits for the remote command to exit.\n//\n// The returned error is nil if the command runs, has no problems\n// copying stdin, stdout, and stderr, and exits with a zero exit\n// status.\n//\n// If the remote server does not send an exit status, an error of type\n// *ExitMissingError is returned. If the command completes\n// unsuccessfully or is interrupted by a signal, the error is of type\n// *ExitError. Other error types may be returned for I/O problems.\nfunc (s *Session) Wait() error {\n\tif !s.started {\n\t\treturn errors.New(\"ssh: session not started\")\n\t}\n\twaitErr := <-s.exitStatus\n\n\tif s.stdinPipeWriter != nil {\n\t\ts.stdinPipeWriter.Close()\n\t}\n\tvar copyError error\n\tfor range s.copyFuncs {\n\t\tif err := <-s.errors; err != nil && copyError == nil {\n\t\t\tcopyError = err\n\t\t}\n\t}\n\tif waitErr != nil {\n\t\treturn waitErr\n\t}\n\treturn copyError\n}\n\nfunc (s *Session) wait(reqs <-chan *Request) error {\n\twm := Waitmsg{status: -1}\n\t// Wait for msg channel to be closed before returning.\n\tfor msg := range reqs {\n\t\tswitch msg.Type {\n\t\tcase \"exit-status\":\n\t\t\twm.status = int(binary.BigEndian.Uint32(msg.Payload))\n\t\tcase \"exit-signal\":\n\t\t\tvar sigval struct {\n\t\t\t\tSignal     string\n\t\t\t\tCoreDumped bool\n\t\t\t\tError      string\n\t\t\t\tLang       string\n\t\t\t}\n\t\t\tif err := Unmarshal(msg.Payload, &sigval); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Must sanitize strings?\n\t\t\twm.signal = sigval.Signal\n\t\t\twm.msg = sigval.Error\n\t\t\twm.lang = sigval.Lang\n\t\tdefault:\n\t\t\t// This handles keepalives and matches\n\t\t\t// OpenSSH's behaviour.\n\t\t\tif msg.WantReply {\n\t\t\t\tmsg.Reply(false, nil)\n\t\t\t}\n\t\t}\n\t}\n\tif wm.status == 0 {\n\t\treturn nil\n\t}\n\tif wm.status == -1 {\n\t\t// exit-status was never sent from server\n\t\tif wm.signal == \"\" {\n\t\t\t// signal was not sent either.  RFC 4254\n\t\t\t// section 6.10 recommends against this\n\t\t\t// behavior, but it is allowed, so we let\n\t\t\t// clients handle it.\n\t\t\treturn &ExitMissingError{}\n\t\t}\n\t\twm.status = 128\n\t\tif _, ok := signals[Signal(wm.signal)]; ok {\n\t\t\twm.status += signals[Signal(wm.signal)]\n\t\t}\n\t}\n\n\treturn &ExitError{wm}\n}\n\n// ExitMissingError is returned if a session is torn down cleanly, but\n// the server sends no confirmation of the exit status.\ntype ExitMissingError struct{}\n\nfunc (e *ExitMissingError) Error() string {\n\treturn \"wait: remote command exited without exit status or exit signal\"\n}\n\nfunc (s *Session) stdin() {\n\tif s.stdinpipe {\n\t\treturn\n\t}\n\tvar stdin io.Reader\n\tif s.Stdin == nil {\n\t\tstdin = new(bytes.Buffer)\n\t} else {\n\t\tr, w := io.Pipe()\n\t\tgo func() {\n\t\t\t_, err := io.Copy(w, s.Stdin)\n\t\t\tw.CloseWithError(err)\n\t\t}()\n\t\tstdin, s.stdinPipeWriter = r, w\n\t}\n\ts.copyFuncs = append(s.copyFuncs, func() error {\n\t\t_, err := io.Copy(s.ch, stdin)\n\t\tif err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF {\n\t\t\terr = err1\n\t\t}\n\t\treturn err\n\t})\n}\n\nfunc (s *Session) stdout() {\n\tif s.stdoutpipe {\n\t\treturn\n\t}\n\tif s.Stdout == nil {\n\t\ts.Stdout = io.Discard\n\t}\n\ts.copyFuncs = append(s.copyFuncs, func() error {\n\t\t_, err := io.Copy(s.Stdout, s.ch)\n\t\treturn err\n\t})\n}\n\nfunc (s *Session) stderr() {\n\tif s.stderrpipe {\n\t\treturn\n\t}\n\tif s.Stderr == nil {\n\t\ts.Stderr = io.Discard\n\t}\n\ts.copyFuncs = append(s.copyFuncs, func() error {\n\t\t_, err := io.Copy(s.Stderr, s.ch.Stderr())\n\t\treturn err\n\t})\n}\n\n// sessionStdin reroutes Close to CloseWrite.\ntype sessionStdin struct {\n\tio.Writer\n\tch Channel\n}\n\nfunc (s *sessionStdin) Close() error {\n\treturn s.ch.CloseWrite()\n}\n\n// StdinPipe returns a pipe that will be connected to the\n// remote command's standard input when the command starts.\nfunc (s *Session) StdinPipe() (io.WriteCloser, error) {\n\tif s.Stdin != nil {\n\t\treturn nil, errors.New(\"ssh: Stdin already set\")\n\t}\n\tif s.started {\n\t\treturn nil, errors.New(\"ssh: StdinPipe after process started\")\n\t}\n\ts.stdinpipe = true\n\treturn &sessionStdin{s.ch, s.ch}, nil\n}\n\n// StdoutPipe returns a pipe that will be connected to the\n// remote command's standard output when the command starts.\n// There is a fixed amount of buffering that is shared between\n// stdout and stderr streams. If the StdoutPipe reader is\n// not serviced fast enough it may eventually cause the\n// remote command to block.\nfunc (s *Session) StdoutPipe() (io.Reader, error) {\n\tif s.Stdout != nil {\n\t\treturn nil, errors.New(\"ssh: Stdout already set\")\n\t}\n\tif s.started {\n\t\treturn nil, errors.New(\"ssh: StdoutPipe after process started\")\n\t}\n\ts.stdoutpipe = true\n\treturn s.ch, nil\n}\n\n// StderrPipe returns a pipe that will be connected to the\n// remote command's standard error when the command starts.\n// There is a fixed amount of buffering that is shared between\n// stdout and stderr streams. If the StderrPipe reader is\n// not serviced fast enough it may eventually cause the\n// remote command to block.\nfunc (s *Session) StderrPipe() (io.Reader, error) {\n\tif s.Stderr != nil {\n\t\treturn nil, errors.New(\"ssh: Stderr already set\")\n\t}\n\tif s.started {\n\t\treturn nil, errors.New(\"ssh: StderrPipe after process started\")\n\t}\n\ts.stderrpipe = true\n\treturn s.ch.Stderr(), nil\n}\n\n// newSession returns a new interactive session on the remote host.\nfunc newSession(ch Channel, reqs <-chan *Request) (*Session, error) {\n\ts := &Session{\n\t\tch: ch,\n\t}\n\ts.exitStatus = make(chan error, 1)\n\tgo func() {\n\t\ts.exitStatus <- s.wait(reqs)\n\t}()\n\n\treturn s, nil\n}\n\n// An ExitError reports unsuccessful completion of a remote command.\ntype ExitError struct {\n\tWaitmsg\n}\n\nfunc (e *ExitError) Error() string {\n\treturn e.Waitmsg.String()\n}\n\n// Waitmsg stores the information about an exited remote command\n// as reported by Wait.\ntype Waitmsg struct {\n\tstatus int\n\tsignal string\n\tmsg    string\n\tlang   string\n}\n\n// ExitStatus returns the exit status of the remote command.\nfunc (w Waitmsg) ExitStatus() int {\n\treturn w.status\n}\n\n// Signal returns the exit signal of the remote command if\n// it was terminated violently.\nfunc (w Waitmsg) Signal() string {\n\treturn w.signal\n}\n\n// Msg returns the exit message given by the remote command\nfunc (w Waitmsg) Msg() string {\n\treturn w.msg\n}\n\n// Lang returns the language tag. See RFC 3066\nfunc (w Waitmsg) Lang() string {\n\treturn w.lang\n}\n\nfunc (w Waitmsg) String() string {\n\tstr := fmt.Sprintf(\"Process exited with status %v\", w.status)\n\tif w.signal != \"\" {\n\t\tstr += fmt.Sprintf(\" from signal %v\", w.signal)\n\t}\n\tif w.msg != \"\" {\n\t\tstr += fmt.Sprintf(\". Reason was: %v\", w.msg)\n\t}\n\treturn str\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/ssh_gss.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 ssh\n\nimport (\n\t\"encoding/asn1\"\n\t\"errors\"\n)\n\nvar krb5OID []byte\n\nfunc init() {\n\tkrb5OID, _ = asn1.Marshal(krb5Mesh)\n}\n\n// GSSAPIClient provides the API to plug-in GSSAPI authentication for client logins.\ntype GSSAPIClient interface {\n\t// InitSecContext initiates the establishment of a security context for GSS-API between the\n\t// ssh client and ssh server. Initially the token parameter should be specified as nil.\n\t// The routine may return a outputToken which should be transferred to\n\t// the ssh server, where the ssh server will present it to\n\t// AcceptSecContext. If no token need be sent, InitSecContext will indicate this by setting\n\t// needContinue to false. To complete the context\n\t// establishment, one or more reply tokens may be required from the ssh\n\t// server;if so, InitSecContext will return a needContinue which is true.\n\t// In this case, InitSecContext should be called again when the\n\t// reply token is received from the ssh server, passing the reply\n\t// token to InitSecContext via the token parameters.\n\t// See RFC 2743 section 2.2.1 and RFC 4462 section 3.4.\n\tInitSecContext(target string, token []byte, isGSSDelegCreds bool) (outputToken []byte, needContinue bool, err error)\n\t// GetMIC generates a cryptographic MIC for the SSH2 message, and places\n\t// the MIC in a token for transfer to the ssh server.\n\t// The contents of the MIC field are obtained by calling GSS_GetMIC()\n\t// over the following, using the GSS-API context that was just\n\t// established:\n\t//  string    session identifier\n\t//  byte      SSH_MSG_USERAUTH_REQUEST\n\t//  string    user name\n\t//  string    service\n\t//  string    \"gssapi-with-mic\"\n\t// See RFC 2743 section 2.3.1 and RFC 4462 3.5.\n\tGetMIC(micFiled []byte) ([]byte, error)\n\t// Whenever possible, it should be possible for\n\t// DeleteSecContext() calls to be successfully processed even\n\t// if other calls cannot succeed, thereby enabling context-related\n\t// resources to be released.\n\t// In addition to deleting established security contexts,\n\t// gss_delete_sec_context must also be able to delete \"half-built\"\n\t// security contexts resulting from an incomplete sequence of\n\t// InitSecContext()/AcceptSecContext() calls.\n\t// See RFC 2743 section 2.2.3.\n\tDeleteSecContext() error\n}\n\n// GSSAPIServer provides the API to plug in GSSAPI authentication for server logins.\ntype GSSAPIServer interface {\n\t// AcceptSecContext allows a remotely initiated security context between the application\n\t// and a remote peer to be established by the ssh client. The routine may return a\n\t// outputToken which should be transferred to the ssh client,\n\t// where the ssh client will present it to InitSecContext.\n\t// If no token need be sent, AcceptSecContext will indicate this\n\t// by setting the needContinue to false. To\n\t// complete the context establishment, one or more reply tokens may be\n\t// required from the ssh client. if so, AcceptSecContext\n\t// will return a needContinue which is true, in which case it\n\t// should be called again when the reply token is received from the ssh\n\t// client, passing the token to AcceptSecContext via the\n\t// token parameters.\n\t// The srcName return value is the authenticated username.\n\t// See RFC 2743 section 2.2.2 and RFC 4462 section 3.4.\n\tAcceptSecContext(token []byte) (outputToken []byte, srcName string, needContinue bool, err error)\n\t// VerifyMIC verifies that a cryptographic MIC, contained in the token parameter,\n\t// fits the supplied message is received from the ssh client.\n\t// See RFC 2743 section 2.3.2.\n\tVerifyMIC(micField []byte, micToken []byte) error\n\t// Whenever possible, it should be possible for\n\t// DeleteSecContext() calls to be successfully processed even\n\t// if other calls cannot succeed, thereby enabling context-related\n\t// resources to be released.\n\t// In addition to deleting established security contexts,\n\t// gss_delete_sec_context must also be able to delete \"half-built\"\n\t// security contexts resulting from an incomplete sequence of\n\t// InitSecContext()/AcceptSecContext() calls.\n\t// See RFC 2743 section 2.2.3.\n\tDeleteSecContext() error\n}\n\nvar (\n\t// OpenSSH supports Kerberos V5 mechanism only for GSS-API authentication,\n\t// so we also support the krb5 mechanism only.\n\t// See RFC 1964 section 1.\n\tkrb5Mesh = asn1.ObjectIdentifier{1, 2, 840, 113554, 1, 2, 2}\n)\n\n// The GSS-API authentication method is initiated when the client sends an SSH_MSG_USERAUTH_REQUEST\n// See RFC 4462 section 3.2.\ntype userAuthRequestGSSAPI struct {\n\tN    uint32\n\tOIDS []asn1.ObjectIdentifier\n}\n\nfunc parseGSSAPIPayload(payload []byte) (*userAuthRequestGSSAPI, error) {\n\tn, rest, ok := parseUint32(payload)\n\tif !ok {\n\t\treturn nil, errors.New(\"parse uint32 failed\")\n\t}\n\t// Each ASN.1 encoded OID must have a minimum\n\t// of 2 bytes; 64 maximum mechanisms is an\n\t// arbitrary, but reasonable ceiling.\n\tconst maxMechs = 64\n\tif n > maxMechs || int(n)*2 > len(rest) {\n\t\treturn nil, errors.New(\"invalid mechanism count\")\n\t}\n\ts := &userAuthRequestGSSAPI{\n\t\tN:    n,\n\t\tOIDS: make([]asn1.ObjectIdentifier, n),\n\t}\n\tfor i := 0; i < int(n); i++ {\n\t\tvar (\n\t\t\tdesiredMech []byte\n\t\t\terr         error\n\t\t)\n\t\tdesiredMech, rest, ok = parseString(rest)\n\t\tif !ok {\n\t\t\treturn nil, errors.New(\"parse string failed\")\n\t\t}\n\t\tif rest, err = asn1.Unmarshal(desiredMech, &s.OIDS[i]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn s, nil\n}\n\n// See RFC 4462 section 3.6.\nfunc buildMIC(sessionID string, username string, service string, authMethod string) []byte {\n\tout := make([]byte, 0, 0)\n\tout = appendString(out, sessionID)\n\tout = append(out, msgUserAuthRequest)\n\tout = appendString(out, username)\n\tout = appendString(out, service)\n\tout = appendString(out, authMethod)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/streamlocal.go",
    "content": "package ssh\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n)\n\n// streamLocalChannelOpenDirectMsg is a struct used for SSH_MSG_CHANNEL_OPEN message\n// with \"direct-streamlocal@openssh.com\" string.\n//\n// See openssh-portable/PROTOCOL, section 2.4. connection: Unix domain socket forwarding\n// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL#L235\ntype streamLocalChannelOpenDirectMsg struct {\n\tsocketPath string\n\treserved0  string\n\treserved1  uint32\n}\n\n// forwardedStreamLocalPayload is a struct used for SSH_MSG_CHANNEL_OPEN message\n// with \"forwarded-streamlocal@openssh.com\" string.\ntype forwardedStreamLocalPayload struct {\n\tSocketPath string\n\tReserved0  string\n}\n\n// streamLocalChannelForwardMsg is a struct used for SSH2_MSG_GLOBAL_REQUEST message\n// with \"streamlocal-forward@openssh.com\"/\"cancel-streamlocal-forward@openssh.com\" string.\ntype streamLocalChannelForwardMsg struct {\n\tsocketPath string\n}\n\n// ListenUnix is similar to ListenTCP but uses a Unix domain socket.\nfunc (c *Client) ListenUnix(socketPath string) (net.Listener, error) {\n\tc.handleForwardsOnce.Do(c.handleForwards)\n\tm := streamLocalChannelForwardMsg{\n\t\tsocketPath,\n\t}\n\t// send message\n\tok, _, err := c.SendRequest(\"streamlocal-forward@openssh.com\", true, Marshal(&m))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !ok {\n\t\treturn nil, errors.New(\"ssh: streamlocal-forward@openssh.com request denied by peer\")\n\t}\n\tch := c.forwards.add(\"unix\", socketPath)\n\n\treturn &unixListener{socketPath, c, ch}, nil\n}\n\nfunc (c *Client) dialStreamLocal(socketPath string) (Channel, error) {\n\tmsg := streamLocalChannelOpenDirectMsg{\n\t\tsocketPath: socketPath,\n\t}\n\tch, in, err := c.OpenChannel(\"direct-streamlocal@openssh.com\", Marshal(&msg))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgo DiscardRequests(in)\n\treturn ch, err\n}\n\ntype unixListener struct {\n\tsocketPath string\n\n\tconn *Client\n\tin   <-chan forward\n}\n\n// Accept waits for and returns the next connection to the listener.\nfunc (l *unixListener) Accept() (net.Conn, error) {\n\ts, ok := <-l.in\n\tif !ok {\n\t\treturn nil, io.EOF\n\t}\n\tch, incoming, err := s.newCh.Accept()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgo DiscardRequests(incoming)\n\n\treturn &chanConn{\n\t\tChannel: ch,\n\t\tladdr: &net.UnixAddr{\n\t\t\tName: l.socketPath,\n\t\t\tNet:  \"unix\",\n\t\t},\n\t\traddr: &net.UnixAddr{\n\t\t\tName: \"@\",\n\t\t\tNet:  \"unix\",\n\t\t},\n\t}, nil\n}\n\n// Close closes the listener.\nfunc (l *unixListener) Close() error {\n\t// this also closes the listener.\n\tl.conn.forwards.remove(\"unix\", l.socketPath)\n\tm := streamLocalChannelForwardMsg{\n\t\tl.socketPath,\n\t}\n\tok, _, err := l.conn.SendRequest(\"cancel-streamlocal-forward@openssh.com\", true, Marshal(&m))\n\tif err == nil && !ok {\n\t\terr = errors.New(\"ssh: cancel-streamlocal-forward@openssh.com failed\")\n\t}\n\treturn err\n}\n\n// Addr returns the listener's network address.\nfunc (l *unixListener) Addr() net.Addr {\n\treturn &net.UnixAddr{\n\t\tName: l.socketPath,\n\t\tNet:  \"unix\",\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/tcpip.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 ssh\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/rand\"\n\t\"net\"\n\t\"net/netip\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// Listen requests the remote peer open a listening socket on\n// addr. Incoming connections will be available by calling Accept on\n// the returned net.Listener. The listener must be serviced, or the\n// SSH connection may hang.\n// N must be \"tcp\", \"tcp4\", \"tcp6\", or \"unix\".\n//\n// If the address is a hostname, it is sent to the remote peer as-is, without\n// being resolved locally, and the Listener Addr method will return a zero IP.\nfunc (c *Client) Listen(n, addr string) (net.Listener, error) {\n\tswitch n {\n\tcase \"tcp\", \"tcp4\", \"tcp6\":\n\t\thost, portStr, err := net.SplitHostPort(addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tport, err := strconv.ParseInt(portStr, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn c.listenTCPInternal(host, int(port))\n\tcase \"unix\":\n\t\treturn c.ListenUnix(addr)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported protocol: %s\", n)\n\t}\n}\n\n// Automatic port allocation is broken with OpenSSH before 6.0. See\n// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017.  In\n// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0,\n// rather than the actual port number. This means you can never open\n// two different listeners with auto allocated ports. We work around\n// this by trying explicit ports until we succeed.\n\nconst openSSHPrefix = \"OpenSSH_\"\n\nvar portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano()))\n\n// isBrokenOpenSSHVersion returns true if the given version string\n// specifies a version of OpenSSH that is known to have a bug in port\n// forwarding.\nfunc isBrokenOpenSSHVersion(versionStr string) bool {\n\ti := strings.Index(versionStr, openSSHPrefix)\n\tif i < 0 {\n\t\treturn false\n\t}\n\ti += len(openSSHPrefix)\n\tj := i\n\tfor ; j < len(versionStr); j++ {\n\t\tif versionStr[j] < '0' || versionStr[j] > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tversion, _ := strconv.Atoi(versionStr[i:j])\n\treturn version < 6\n}\n\n// autoPortListenWorkaround simulates automatic port allocation by\n// trying random ports repeatedly.\nfunc (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) {\n\tvar sshListener net.Listener\n\tvar err error\n\tconst tries = 10\n\tfor i := 0; i < tries; i++ {\n\t\taddr := *laddr\n\t\taddr.Port = 1024 + portRandomizer.Intn(60000)\n\t\tsshListener, err = c.ListenTCP(&addr)\n\t\tif err == nil {\n\t\t\tladdr.Port = addr.Port\n\t\t\treturn sshListener, err\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"ssh: listen on random port failed after %d tries: %v\", tries, err)\n}\n\n// RFC 4254 7.1\ntype channelForwardMsg struct {\n\taddr  string\n\trport uint32\n}\n\n// handleForwards starts goroutines handling forwarded connections.\n// It's called on first use by (*Client).ListenTCP to not launch\n// goroutines until needed.\nfunc (c *Client) handleForwards() {\n\tgo c.forwards.handleChannels(c.HandleChannelOpen(\"forwarded-tcpip\"))\n\tgo c.forwards.handleChannels(c.HandleChannelOpen(\"forwarded-streamlocal@openssh.com\"))\n}\n\n// ListenTCP requests the remote peer open a listening socket\n// on laddr. Incoming connections will be available by calling\n// Accept on the returned net.Listener.\n//\n// ListenTCP accepts an IP address, to provide a hostname use [Client.Listen]\n// with \"tcp\", \"tcp4\", or \"tcp6\" network instead.\nfunc (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) {\n\tc.handleForwardsOnce.Do(c.handleForwards)\n\tif laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) {\n\t\treturn c.autoPortListenWorkaround(laddr)\n\t}\n\n\treturn c.listenTCPInternal(laddr.IP.String(), laddr.Port)\n}\n\nfunc (c *Client) listenTCPInternal(host string, port int) (net.Listener, error) {\n\tc.handleForwardsOnce.Do(c.handleForwards)\n\n\tm := channelForwardMsg{\n\t\thost,\n\t\tuint32(port),\n\t}\n\t// send message\n\tok, resp, err := c.SendRequest(\"tcpip-forward\", true, Marshal(&m))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !ok {\n\t\treturn nil, errors.New(\"ssh: tcpip-forward request denied by peer\")\n\t}\n\n\t// If the original port was 0, then the remote side will\n\t// supply a real port number in the response.\n\tif port == 0 {\n\t\tvar p struct {\n\t\t\tPort uint32\n\t\t}\n\t\tif err := Unmarshal(resp, &p); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tport = int(p.Port)\n\t}\n\t// Construct a local address placeholder for the remote listener. If the\n\t// original host is an IP address, preserve it so that Listener.Addr()\n\t// reports the same IP. If the host is a hostname or cannot be parsed as an\n\t// IP, fall back to IPv4zero. The port field is always set, even if the\n\t// original port was 0, because in that case the remote server will assign\n\t// one, allowing callers to determine which port was selected.\n\tip := net.IPv4zero\n\tif parsed, err := netip.ParseAddr(host); err == nil {\n\t\tip = net.IP(parsed.AsSlice())\n\t}\n\tladdr := &net.TCPAddr{\n\t\tIP:   ip,\n\t\tPort: port,\n\t}\n\taddr := net.JoinHostPort(host, strconv.FormatInt(int64(port), 10))\n\tch := c.forwards.add(\"tcp\", addr)\n\n\treturn &tcpListener{laddr, addr, c, ch}, nil\n}\n\n// forwardList stores a mapping between remote\n// forward requests and the tcpListeners.\ntype forwardList struct {\n\tsync.Mutex\n\tentries []forwardEntry\n}\n\n// forwardEntry represents an established mapping of a laddr on a\n// remote ssh server to a channel connected to a tcpListener.\ntype forwardEntry struct {\n\taddr    string // host:port or socket path\n\tnetwork string // tcp or unix\n\tc       chan forward\n}\n\n// forward represents an incoming forwarded tcpip connection. The\n// arguments to add/remove/lookup should be address as specified in\n// the original forward-request.\ntype forward struct {\n\tnewCh NewChannel // the ssh client channel underlying this forward\n\traddr net.Addr   // the raddr of the incoming connection\n}\n\nfunc (l *forwardList) add(n, addr string) chan forward {\n\tl.Lock()\n\tdefer l.Unlock()\n\tf := forwardEntry{\n\t\taddr:    addr,\n\t\tnetwork: n,\n\t\tc:       make(chan forward, 1),\n\t}\n\tl.entries = append(l.entries, f)\n\treturn f.c\n}\n\n// See RFC 4254, section 7.2\ntype forwardedTCPPayload struct {\n\tAddr       string\n\tPort       uint32\n\tOriginAddr string\n\tOriginPort uint32\n}\n\n// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr.\nfunc parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) {\n\tif port == 0 || port > 65535 {\n\t\treturn nil, fmt.Errorf(\"ssh: port number out of range: %d\", port)\n\t}\n\tip, err := netip.ParseAddr(addr)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh: cannot parse IP address %q\", addr)\n\t}\n\treturn &net.TCPAddr{IP: net.IP(ip.AsSlice()), Port: int(port)}, nil\n}\n\nfunc (l *forwardList) handleChannels(in <-chan NewChannel) {\n\tfor ch := range in {\n\t\tvar (\n\t\t\taddr    string\n\t\t\tnetwork string\n\t\t\traddr   net.Addr\n\t\t\terr     error\n\t\t)\n\t\tswitch channelType := ch.ChannelType(); channelType {\n\t\tcase \"forwarded-tcpip\":\n\t\t\tvar payload forwardedTCPPayload\n\t\t\tif err = Unmarshal(ch.ExtraData(), &payload); err != nil {\n\t\t\t\tch.Reject(ConnectionFailed, \"could not parse forwarded-tcpip payload: \"+err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// RFC 4254 section 7.2 specifies that incoming addresses should\n\t\t\t// list the address that was connected, in string format. It is the\n\t\t\t// same address used in the tcpip-forward request. The originator\n\t\t\t// address is an IP address instead.\n\t\t\taddr = net.JoinHostPort(payload.Addr, strconv.FormatUint(uint64(payload.Port), 10))\n\n\t\t\traddr, err = parseTCPAddr(payload.OriginAddr, payload.OriginPort)\n\t\t\tif err != nil {\n\t\t\t\tch.Reject(ConnectionFailed, err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnetwork = \"tcp\"\n\t\tcase \"forwarded-streamlocal@openssh.com\":\n\t\t\tvar payload forwardedStreamLocalPayload\n\t\t\tif err = Unmarshal(ch.ExtraData(), &payload); err != nil {\n\t\t\t\tch.Reject(ConnectionFailed, \"could not parse forwarded-streamlocal@openssh.com payload: \"+err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\taddr = payload.SocketPath\n\t\t\traddr = &net.UnixAddr{\n\t\t\t\tName: \"@\",\n\t\t\t\tNet:  \"unix\",\n\t\t\t}\n\t\t\tnetwork = \"unix\"\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"ssh: unknown channel type %s\", channelType))\n\t\t}\n\t\tif ok := l.forward(network, addr, raddr, ch); !ok {\n\t\t\t// Section 7.2, implementations MUST reject spurious incoming\n\t\t\t// connections.\n\t\t\tch.Reject(Prohibited, \"no forward for address\")\n\t\t\tcontinue\n\t\t}\n\n\t}\n}\n\n// remove removes the forward entry, and the channel feeding its\n// listener.\nfunc (l *forwardList) remove(n, addr string) {\n\tl.Lock()\n\tdefer l.Unlock()\n\tfor i, f := range l.entries {\n\t\tif n == f.network && addr == f.addr {\n\t\t\tl.entries = append(l.entries[:i], l.entries[i+1:]...)\n\t\t\tclose(f.c)\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// closeAll closes and clears all forwards.\nfunc (l *forwardList) closeAll() {\n\tl.Lock()\n\tdefer l.Unlock()\n\tfor _, f := range l.entries {\n\t\tclose(f.c)\n\t}\n\tl.entries = nil\n}\n\nfunc (l *forwardList) forward(n, addr string, raddr net.Addr, ch NewChannel) bool {\n\tl.Lock()\n\tdefer l.Unlock()\n\tfor _, f := range l.entries {\n\t\tif n == f.network && addr == f.addr {\n\t\t\tf.c <- forward{newCh: ch, raddr: raddr}\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\ntype tcpListener struct {\n\tladdr *net.TCPAddr\n\taddr  string\n\n\tconn *Client\n\tin   <-chan forward\n}\n\n// Accept waits for and returns the next connection to the listener.\nfunc (l *tcpListener) Accept() (net.Conn, error) {\n\ts, ok := <-l.in\n\tif !ok {\n\t\treturn nil, io.EOF\n\t}\n\tch, incoming, err := s.newCh.Accept()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgo DiscardRequests(incoming)\n\n\treturn &chanConn{\n\t\tChannel: ch,\n\t\tladdr:   l.laddr,\n\t\traddr:   s.raddr,\n\t}, nil\n}\n\n// Close closes the listener.\nfunc (l *tcpListener) Close() error {\n\thost, port, err := net.SplitHostPort(l.addr)\n\tif err != nil {\n\t\treturn err\n\t}\n\trport, err := strconv.ParseUint(port, 10, 32)\n\tif err != nil {\n\t\treturn err\n\t}\n\tm := channelForwardMsg{\n\t\thost,\n\t\tuint32(rport),\n\t}\n\n\t// this also closes the listener.\n\tl.conn.forwards.remove(\"tcp\", l.addr)\n\tok, _, err := l.conn.SendRequest(\"cancel-tcpip-forward\", true, Marshal(&m))\n\tif err == nil && !ok {\n\t\terr = errors.New(\"ssh: cancel-tcpip-forward failed\")\n\t}\n\treturn err\n}\n\n// Addr returns the listener's network address.\nfunc (l *tcpListener) Addr() net.Addr {\n\treturn l.laddr\n}\n\n// DialContext initiates a connection to the addr from the remote host.\n//\n// The provided Context must be non-nil. If the context expires before the\n// connection is complete, an error is returned. Once successfully connected,\n// any expiration of the context will not affect the connection.\n//\n// See func Dial for additional information.\nfunc (c *Client) DialContext(ctx context.Context, n, addr string) (net.Conn, error) {\n\tif err := ctx.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\ttype connErr struct {\n\t\tconn net.Conn\n\t\terr  error\n\t}\n\tch := make(chan connErr)\n\tgo func() {\n\t\tconn, err := c.Dial(n, addr)\n\t\tselect {\n\t\tcase ch <- connErr{conn, err}:\n\t\tcase <-ctx.Done():\n\t\t\tif conn != nil {\n\t\t\t\tconn.Close()\n\t\t\t}\n\t\t}\n\t}()\n\tselect {\n\tcase res := <-ch:\n\t\treturn res.conn, res.err\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\t}\n}\n\n// Dial initiates a connection to the addr from the remote host.\n// The resulting connection has a zero LocalAddr() and RemoteAddr().\nfunc (c *Client) Dial(n, addr string) (net.Conn, error) {\n\tvar ch Channel\n\tswitch n {\n\tcase \"tcp\", \"tcp4\", \"tcp6\":\n\t\t// Parse the address into host and numeric port.\n\t\thost, portString, err := net.SplitHostPort(addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tport, err := strconv.ParseUint(portString, 10, 16)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tch, err = c.dial(net.IPv4zero.String(), 0, host, int(port))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// Use a zero address for local and remote address.\n\t\tzeroAddr := &net.TCPAddr{\n\t\t\tIP:   net.IPv4zero,\n\t\t\tPort: 0,\n\t\t}\n\t\treturn &chanConn{\n\t\t\tChannel: ch,\n\t\t\tladdr:   zeroAddr,\n\t\t\traddr:   zeroAddr,\n\t\t}, nil\n\tcase \"unix\":\n\t\tvar err error\n\t\tch, err = c.dialStreamLocal(addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &chanConn{\n\t\t\tChannel: ch,\n\t\t\tladdr: &net.UnixAddr{\n\t\t\t\tName: \"@\",\n\t\t\t\tNet:  \"unix\",\n\t\t\t},\n\t\t\traddr: &net.UnixAddr{\n\t\t\t\tName: addr,\n\t\t\t\tNet:  \"unix\",\n\t\t\t},\n\t\t}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported protocol: %s\", n)\n\t}\n}\n\n// DialTCP connects to the remote address raddr on the network net,\n// which must be \"tcp\", \"tcp4\", or \"tcp6\".  If laddr is not nil, it is used\n// as the local address for the connection.\nfunc (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) {\n\tif laddr == nil {\n\t\tladdr = &net.TCPAddr{\n\t\t\tIP:   net.IPv4zero,\n\t\t\tPort: 0,\n\t\t}\n\t}\n\tch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &chanConn{\n\t\tChannel: ch,\n\t\tladdr:   laddr,\n\t\traddr:   raddr,\n\t}, nil\n}\n\n// RFC 4254 7.2\ntype channelOpenDirectMsg struct {\n\traddr string\n\trport uint32\n\tladdr string\n\tlport uint32\n}\n\nfunc (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) {\n\tmsg := channelOpenDirectMsg{\n\t\traddr: raddr,\n\t\trport: uint32(rport),\n\t\tladdr: laddr,\n\t\tlport: uint32(lport),\n\t}\n\tch, in, err := c.OpenChannel(\"direct-tcpip\", Marshal(&msg))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgo DiscardRequests(in)\n\treturn ch, nil\n}\n\ntype tcpChan struct {\n\tChannel // the backing channel\n}\n\n// chanConn fulfills the net.Conn interface without\n// the tcpChan having to hold laddr or raddr directly.\ntype chanConn struct {\n\tChannel\n\tladdr, raddr net.Addr\n}\n\n// LocalAddr returns the local network address.\nfunc (t *chanConn) LocalAddr() net.Addr {\n\treturn t.laddr\n}\n\n// RemoteAddr returns the remote network address.\nfunc (t *chanConn) RemoteAddr() net.Addr {\n\treturn t.raddr\n}\n\n// SetDeadline sets the read and write deadlines associated\n// with the connection.\nfunc (t *chanConn) SetDeadline(deadline time.Time) error {\n\tif err := t.SetReadDeadline(deadline); err != nil {\n\t\treturn err\n\t}\n\treturn t.SetWriteDeadline(deadline)\n}\n\n// SetReadDeadline sets the read deadline.\n// A zero value for t means Read will not time out.\n// After the deadline, the error from Read will implement net.Error\n// with Timeout() == true.\nfunc (t *chanConn) SetReadDeadline(deadline time.Time) error {\n\t// for compatibility with previous version,\n\t// the error message contains \"tcpChan\"\n\treturn errors.New(\"ssh: tcpChan: deadline not supported\")\n}\n\n// SetWriteDeadline exists to satisfy the net.Conn interface\n// but is not implemented by this type.  It always returns an error.\nfunc (t *chanConn) SetWriteDeadline(deadline time.Time) error {\n\treturn errors.New(\"ssh: tcpChan: deadline not supported\")\n}\n"
  },
  {
    "path": "vendor/golang.org/x/crypto/ssh/transport.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 ssh\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n)\n\n// debugTransport if set, will print packet types as they go over the\n// wire. No message decoding is done, to minimize the impact on timing.\nconst debugTransport = false\n\n// packetConn represents a transport that implements packet based\n// operations.\ntype packetConn interface {\n\t// Encrypt and send a packet of data to the remote peer.\n\twritePacket(packet []byte) error\n\n\t// Read a packet from the connection. The read is blocking,\n\t// i.e. if error is nil, then the returned byte slice is\n\t// always non-empty.\n\treadPacket() ([]byte, error)\n\n\t// Close closes the write-side of the connection.\n\tClose() error\n}\n\n// transport is the keyingTransport that implements the SSH packet\n// protocol.\ntype transport struct {\n\treader connectionState\n\twriter connectionState\n\n\tbufReader *bufio.Reader\n\tbufWriter *bufio.Writer\n\trand      io.Reader\n\tisClient  bool\n\tio.Closer\n\n\tstrictMode     bool\n\tinitialKEXDone bool\n}\n\n// packetCipher represents a combination of SSH encryption/MAC\n// protocol.  A single instance should be used for one direction only.\ntype packetCipher interface {\n\t// writeCipherPacket encrypts the packet and writes it to w. The\n\t// contents of the packet are generally scrambled.\n\twriteCipherPacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error\n\n\t// readCipherPacket reads and decrypts a packet of data. The\n\t// returned packet may be overwritten by future calls of\n\t// readPacket.\n\treadCipherPacket(seqnum uint32, r io.Reader) ([]byte, error)\n}\n\n// connectionState represents one side (read or write) of the\n// connection. This is necessary because each direction has its own\n// keys, and can even have its own algorithms\ntype connectionState struct {\n\tpacketCipher\n\tseqNum           uint32\n\tdir              direction\n\tpendingKeyChange chan packetCipher\n}\n\nfunc (t *transport) setStrictMode() error {\n\tif t.reader.seqNum != 1 {\n\t\treturn errors.New(\"ssh: sequence number != 1 when strict KEX mode requested\")\n\t}\n\tt.strictMode = true\n\treturn nil\n}\n\nfunc (t *transport) setInitialKEXDone() {\n\tt.initialKEXDone = true\n}\n\n// prepareKeyChange sets up key material for a keychange. The key changes in\n// both directions are triggered by reading and writing a msgNewKey packet\n// respectively.\nfunc (t *transport) prepareKeyChange(algs *NegotiatedAlgorithms, kexResult *kexResult) error {\n\tciph, err := newPacketCipher(t.reader.dir, algs.Read, kexResult)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt.reader.pendingKeyChange <- ciph\n\n\tciph, err = newPacketCipher(t.writer.dir, algs.Write, kexResult)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt.writer.pendingKeyChange <- ciph\n\n\treturn nil\n}\n\nfunc (t *transport) printPacket(p []byte, write bool) {\n\tif len(p) == 0 {\n\t\treturn\n\t}\n\twho := \"server\"\n\tif t.isClient {\n\t\twho = \"client\"\n\t}\n\twhat := \"read\"\n\tif write {\n\t\twhat = \"write\"\n\t}\n\n\tlog.Println(what, who, p[0])\n}\n\n// Read and decrypt next packet.\nfunc (t *transport) readPacket() (p []byte, err error) {\n\tfor {\n\t\tp, err = t.reader.readPacket(t.bufReader, t.strictMode)\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t\t// in strict mode we pass through DEBUG and IGNORE packets only during the initial KEX\n\t\tif len(p) == 0 || (t.strictMode && !t.initialKEXDone) || (p[0] != msgIgnore && p[0] != msgDebug) {\n\t\t\tbreak\n\t\t}\n\t}\n\tif debugTransport {\n\t\tt.printPacket(p, false)\n\t}\n\n\treturn p, err\n}\n\nfunc (s *connectionState) readPacket(r *bufio.Reader, strictMode bool) ([]byte, error) {\n\tpacket, err := s.packetCipher.readCipherPacket(s.seqNum, r)\n\ts.seqNum++\n\tif err == nil && len(packet) == 0 {\n\t\terr = errors.New(\"ssh: zero length packet\")\n\t}\n\n\tif len(packet) > 0 {\n\t\tswitch packet[0] {\n\t\tcase msgNewKeys:\n\t\t\tselect {\n\t\t\tcase cipher := <-s.pendingKeyChange:\n\t\t\t\ts.packetCipher = cipher\n\t\t\t\tif strictMode {\n\t\t\t\t\ts.seqNum = 0\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, errors.New(\"ssh: got bogus newkeys message\")\n\t\t\t}\n\n\t\tcase msgDisconnect:\n\t\t\t// Transform a disconnect message into an\n\t\t\t// error. Since this is lowest level at which\n\t\t\t// we interpret message types, doing it here\n\t\t\t// ensures that we don't have to handle it\n\t\t\t// elsewhere.\n\t\t\tvar msg disconnectMsg\n\t\t\tif err := Unmarshal(packet, &msg); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn nil, &msg\n\t\t}\n\t}\n\n\t// The packet may point to an internal buffer, so copy the\n\t// packet out here.\n\tfresh := make([]byte, len(packet))\n\tcopy(fresh, packet)\n\n\treturn fresh, err\n}\n\nfunc (t *transport) writePacket(packet []byte) error {\n\tif debugTransport {\n\t\tt.printPacket(packet, true)\n\t}\n\treturn t.writer.writePacket(t.bufWriter, t.rand, packet, t.strictMode)\n}\n\nfunc (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte, strictMode bool) error {\n\tchangeKeys := len(packet) > 0 && packet[0] == msgNewKeys\n\n\terr := s.packetCipher.writeCipherPacket(s.seqNum, w, rand, packet)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err = w.Flush(); err != nil {\n\t\treturn err\n\t}\n\ts.seqNum++\n\tif changeKeys {\n\t\tselect {\n\t\tcase cipher := <-s.pendingKeyChange:\n\t\t\ts.packetCipher = cipher\n\t\t\tif strictMode {\n\t\t\t\ts.seqNum = 0\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"ssh: no key material for msgNewKeys\")\n\t\t}\n\t}\n\treturn err\n}\n\nfunc newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport {\n\tt := &transport{\n\t\tbufReader: bufio.NewReader(rwc),\n\t\tbufWriter: bufio.NewWriter(rwc),\n\t\trand:      rand,\n\t\treader: connectionState{\n\t\t\tpacketCipher:     &streamPacketCipher{cipher: noneCipher{}},\n\t\t\tpendingKeyChange: make(chan packetCipher, 1),\n\t\t},\n\t\twriter: connectionState{\n\t\t\tpacketCipher:     &streamPacketCipher{cipher: noneCipher{}},\n\t\t\tpendingKeyChange: make(chan packetCipher, 1),\n\t\t},\n\t\tCloser: rwc,\n\t}\n\tt.isClient = isClient\n\n\tif isClient {\n\t\tt.reader.dir = serverKeys\n\t\tt.writer.dir = clientKeys\n\t} else {\n\t\tt.reader.dir = clientKeys\n\t\tt.writer.dir = serverKeys\n\t}\n\n\treturn t\n}\n\ntype direction struct {\n\tivTag     []byte\n\tkeyTag    []byte\n\tmacKeyTag []byte\n}\n\nvar (\n\tserverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}}\n\tclientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}}\n)\n\n// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as\n// described in RFC 4253, section 6.4. direction should either be serverKeys\n// (to setup server->client keys) or clientKeys (for client->server keys).\nfunc newPacketCipher(d direction, algs DirectionAlgorithms, kex *kexResult) (packetCipher, error) {\n\tcipherMode := cipherModes[algs.Cipher]\n\tif cipherMode == nil {\n\t\treturn nil, fmt.Errorf(\"ssh: unsupported cipher %v\", algs.Cipher)\n\t}\n\n\tiv := make([]byte, cipherMode.ivSize)\n\tkey := make([]byte, cipherMode.keySize)\n\n\tgenerateKeyMaterial(iv, d.ivTag, kex)\n\tgenerateKeyMaterial(key, d.keyTag, kex)\n\n\tvar macKey []byte\n\tif !aeadCiphers[algs.Cipher] {\n\t\tmacMode := macModes[algs.MAC]\n\t\tmacKey = make([]byte, macMode.keySize)\n\t\tgenerateKeyMaterial(macKey, d.macKeyTag, kex)\n\t}\n\n\treturn cipherModes[algs.Cipher].create(key, iv, macKey, algs)\n}\n\n// generateKeyMaterial fills out with key material generated from tag, K, H\n// and sessionId, as specified in RFC 4253, section 7.2.\nfunc generateKeyMaterial(out, tag []byte, r *kexResult) {\n\tvar digestsSoFar []byte\n\n\th := r.Hash.New()\n\tfor len(out) > 0 {\n\t\th.Reset()\n\t\th.Write(r.K)\n\t\th.Write(r.H)\n\n\t\tif len(digestsSoFar) == 0 {\n\t\t\th.Write(tag)\n\t\t\th.Write(r.SessionID)\n\t\t} else {\n\t\t\th.Write(digestsSoFar)\n\t\t}\n\n\t\tdigest := h.Sum(nil)\n\t\tn := copy(out, digest)\n\t\tout = out[n:]\n\t\tif len(out) > 0 {\n\t\t\tdigestsSoFar = append(digestsSoFar, digest...)\n\t\t}\n\t}\n}\n\nconst packageVersion = \"SSH-2.0-Go\"\n\n// Sends and receives a version line.  The versionLine string should\n// be US ASCII, start with \"SSH-2.0-\", and should not include a\n// newline. exchangeVersions returns the other side's version line.\nfunc exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) {\n\t// Contrary to the RFC, we do not ignore lines that don't\n\t// start with \"SSH-2.0-\" to make the library usable with\n\t// nonconforming servers.\n\tfor _, c := range versionLine {\n\t\t// The spec disallows non US-ASCII chars, and\n\t\t// specifically forbids null chars.\n\t\tif c < 32 {\n\t\t\treturn nil, errors.New(\"ssh: junk character in version line\")\n\t\t}\n\t}\n\tif _, err = rw.Write(append(versionLine, '\\r', '\\n')); err != nil {\n\t\treturn\n\t}\n\n\tthem, err = readVersion(rw)\n\treturn them, err\n}\n\n// maxVersionStringBytes is the maximum number of bytes that we'll\n// accept as a version string. RFC 4253 section 4.2 limits this at 255\n// chars\nconst maxVersionStringBytes = 255\n\n// Read version string as specified by RFC 4253, section 4.2.\nfunc readVersion(r io.Reader) ([]byte, error) {\n\tversionString := make([]byte, 0, 64)\n\tvar ok bool\n\tvar buf [1]byte\n\n\tfor length := 0; length < maxVersionStringBytes; length++ {\n\t\t_, err := io.ReadFull(r, buf[:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// The RFC says that the version should be terminated with \\r\\n\n\t\t// but several SSH servers actually only send a \\n.\n\t\tif buf[0] == '\\n' {\n\t\t\tif !bytes.HasPrefix(versionString, []byte(\"SSH-\")) {\n\t\t\t\t// RFC 4253 says we need to ignore all version string lines\n\t\t\t\t// except the one containing the SSH version (provided that\n\t\t\t\t// all the lines do not exceed 255 bytes in total).\n\t\t\t\tversionString = versionString[:0]\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tok = true\n\t\t\tbreak\n\t\t}\n\n\t\t// non ASCII chars are disallowed, but we are lenient,\n\t\t// since Go doesn't use null-terminated strings.\n\n\t\t// The RFC allows a comment after a space, however,\n\t\t// all of it (version and comments) goes into the\n\t\t// session hash.\n\t\tversionString = append(versionString, buf[0])\n\t}\n\n\tif !ok {\n\t\treturn nil, errors.New(\"ssh: overflow reading version string\")\n\t}\n\n\t// There might be a '\\r' on the end which we should remove.\n\tif len(versionString) > 0 && versionString[len(versionString)-1] == '\\r' {\n\t\tversionString = versionString[:len(versionString)-1]\n\t}\n\treturn versionString, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sync/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/sync/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/sync/errgroup/errgroup.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// Package errgroup provides synchronization, error propagation, and Context\n// cancellation for groups of goroutines working on subtasks of a common task.\n//\n// [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks\n// returning errors.\npackage errgroup\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n)\n\ntype token struct{}\n\n// A Group is a collection of goroutines working on subtasks that are part of\n// the same overall task. A Group should not be reused for different tasks.\n//\n// A zero Group is valid, has no limit on the number of active goroutines,\n// and does not cancel on error.\ntype Group struct {\n\tcancel func(error)\n\n\twg sync.WaitGroup\n\n\tsem chan token\n\n\terrOnce sync.Once\n\terr     error\n}\n\nfunc (g *Group) done() {\n\tif g.sem != nil {\n\t\t<-g.sem\n\t}\n\tg.wg.Done()\n}\n\n// WithContext returns a new Group and an associated Context derived from ctx.\n//\n// The derived Context is canceled the first time a function passed to Go\n// returns a non-nil error or the first time Wait returns, whichever occurs\n// first.\nfunc WithContext(ctx context.Context) (*Group, context.Context) {\n\tctx, cancel := context.WithCancelCause(ctx)\n\treturn &Group{cancel: cancel}, ctx\n}\n\n// Wait blocks until all function calls from the Go method have returned, then\n// returns the first non-nil error (if any) from them.\nfunc (g *Group) Wait() error {\n\tg.wg.Wait()\n\tif g.cancel != nil {\n\t\tg.cancel(g.err)\n\t}\n\treturn g.err\n}\n\n// Go calls the given function in a new goroutine.\n//\n// The first call to Go must happen before a Wait.\n// It blocks until the new goroutine can be added without the number of\n// goroutines in the group exceeding the configured limit.\n//\n// The first goroutine in the group that returns a non-nil error will\n// cancel the associated Context, if any. The error will be returned\n// by Wait.\nfunc (g *Group) Go(f func() error) {\n\tif g.sem != nil {\n\t\tg.sem <- token{}\n\t}\n\n\tg.wg.Add(1)\n\tgo func() {\n\t\tdefer g.done()\n\n\t\t// It is tempting to propagate panics from f()\n\t\t// up to the goroutine that calls Wait, but\n\t\t// it creates more problems than it solves:\n\t\t// - it delays panics arbitrarily,\n\t\t//   making bugs harder to detect;\n\t\t// - it turns f's panic stack into a mere value,\n\t\t//   hiding it from crash-monitoring tools;\n\t\t// - it risks deadlocks that hide the panic entirely,\n\t\t//   if f's panic leaves the program in a state\n\t\t//   that prevents the Wait call from being reached.\n\t\t// See #53757, #74275, #74304, #74306.\n\n\t\tif err := f(); err != nil {\n\t\t\tg.errOnce.Do(func() {\n\t\t\t\tg.err = err\n\t\t\t\tif g.cancel != nil {\n\t\t\t\t\tg.cancel(g.err)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}()\n}\n\n// TryGo calls the given function in a new goroutine only if the number of\n// active goroutines in the group is currently below the configured limit.\n//\n// The return value reports whether the goroutine was started.\nfunc (g *Group) TryGo(f func() error) bool {\n\tif g.sem != nil {\n\t\tselect {\n\t\tcase g.sem <- token{}:\n\t\t\t// Note: this allows barging iff channels in general allow barging.\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\n\tg.wg.Add(1)\n\tgo func() {\n\t\tdefer g.done()\n\n\t\tif err := f(); err != nil {\n\t\t\tg.errOnce.Do(func() {\n\t\t\t\tg.err = err\n\t\t\t\tif g.cancel != nil {\n\t\t\t\t\tg.cancel(g.err)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}()\n\treturn true\n}\n\n// SetLimit limits the number of active goroutines in this group to at most n.\n// A negative value indicates no limit.\n// A limit of zero will prevent any new goroutines from being added.\n//\n// Any subsequent call to the Go method will block until it can add an active\n// goroutine without exceeding the configured limit.\n//\n// The limit must not be modified while any goroutines in the group are active.\nfunc (g *Group) SetLimit(n int) {\n\tif n < 0 {\n\t\tg.sem = nil\n\t\treturn\n\t}\n\tif active := len(g.sem); active != 0 {\n\t\tpanic(fmt.Errorf(\"errgroup: modify limit while %v goroutines in the group are still active\", active))\n\t}\n\tg.sem = make(chan token, n)\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/cpu/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/cpu/asm_darwin_x86_gc.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 darwin && amd64 && gc\n\n#include \"textflag.h\"\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_sysctlbyname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctlbyname(SB)\nGLOBL\t·libc_sysctlbyname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctlbyname_trampoline_addr(SB)/8, $libc_sysctlbyname_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/byteorder.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 cpu\n\nimport (\n\t\"runtime\"\n)\n\n// byteOrder is a subset of encoding/binary.ByteOrder.\ntype byteOrder interface {\n\tUint32([]byte) uint32\n\tUint64([]byte) uint64\n}\n\ntype littleEndian struct{}\ntype bigEndian struct{}\n\nfunc (littleEndian) Uint32(b []byte) uint32 {\n\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n}\n\nfunc (littleEndian) Uint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n}\n\nfunc (bigEndian) Uint32(b []byte) uint32 {\n\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24\n}\n\nfunc (bigEndian) Uint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |\n\t\tuint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56\n}\n\n// hostByteOrder returns littleEndian on little-endian machines and\n// bigEndian on big-endian machines.\nfunc hostByteOrder() byteOrder {\n\tswitch runtime.GOARCH {\n\tcase \"386\", \"amd64\", \"amd64p32\",\n\t\t\"alpha\",\n\t\t\"arm\", \"arm64\",\n\t\t\"loong64\",\n\t\t\"mipsle\", \"mips64le\", \"mips64p32le\",\n\t\t\"nios2\",\n\t\t\"ppc64le\",\n\t\t\"riscv\", \"riscv64\",\n\t\t\"sh\":\n\t\treturn littleEndian{}\n\tcase \"armbe\", \"arm64be\",\n\t\t\"m68k\",\n\t\t\"mips\", \"mips64\", \"mips64p32\",\n\t\t\"ppc\", \"ppc64\",\n\t\t\"s390\", \"s390x\",\n\t\t\"shbe\",\n\t\t\"sparc\", \"sparc64\":\n\t\treturn bigEndian{}\n\t}\n\tpanic(\"unknown architecture\")\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu.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// Package cpu implements processor feature detection for\n// various CPU architectures.\npackage cpu\n\nimport (\n\t\"os\"\n\t\"strings\"\n)\n\n// Initialized reports whether the CPU features were initialized.\n//\n// For some GOOS/GOARCH combinations initialization of the CPU features depends\n// on reading an operating specific file, e.g. /proc/self/auxv on linux/arm\n// Initialized will report false if reading the file fails.\nvar Initialized bool\n\n// CacheLinePad is used to pad structs to avoid false sharing.\ntype CacheLinePad struct{ _ [cacheLineSize]byte }\n\n// X86 contains the supported CPU features of the\n// current X86/AMD64 platform. If the current platform\n// is not X86/AMD64 then all feature flags are false.\n//\n// X86 is padded to avoid false sharing. Further the HasAVX\n// and HasAVX2 are only set if the OS supports XMM and YMM\n// registers in addition to the CPUID feature bit being set.\nvar X86 struct {\n\t_                   CacheLinePad\n\tHasAES              bool // AES hardware implementation (AES NI)\n\tHasADX              bool // Multi-precision add-carry instruction extensions\n\tHasAVX              bool // Advanced vector extension\n\tHasAVX2             bool // Advanced vector extension 2\n\tHasAVX512           bool // Advanced vector extension 512\n\tHasAVX512F          bool // Advanced vector extension 512 Foundation Instructions\n\tHasAVX512CD         bool // Advanced vector extension 512 Conflict Detection Instructions\n\tHasAVX512ER         bool // Advanced vector extension 512 Exponential and Reciprocal Instructions\n\tHasAVX512PF         bool // Advanced vector extension 512 Prefetch Instructions\n\tHasAVX512VL         bool // Advanced vector extension 512 Vector Length Extensions\n\tHasAVX512BW         bool // Advanced vector extension 512 Byte and Word Instructions\n\tHasAVX512DQ         bool // Advanced vector extension 512 Doubleword and Quadword Instructions\n\tHasAVX512IFMA       bool // Advanced vector extension 512 Integer Fused Multiply Add\n\tHasAVX512VBMI       bool // Advanced vector extension 512 Vector Byte Manipulation Instructions\n\tHasAVX5124VNNIW     bool // Advanced vector extension 512 Vector Neural Network Instructions Word variable precision\n\tHasAVX5124FMAPS     bool // Advanced vector extension 512 Fused Multiply Accumulation Packed Single precision\n\tHasAVX512VPOPCNTDQ  bool // Advanced vector extension 512 Double and quad word population count instructions\n\tHasAVX512VPCLMULQDQ bool // Advanced vector extension 512 Vector carry-less multiply operations\n\tHasAVX512VNNI       bool // Advanced vector extension 512 Vector Neural Network Instructions\n\tHasAVX512GFNI       bool // Advanced vector extension 512 Galois field New Instructions\n\tHasAVX512VAES       bool // Advanced vector extension 512 Vector AES instructions\n\tHasAVX512VBMI2      bool // Advanced vector extension 512 Vector Byte Manipulation Instructions 2\n\tHasAVX512BITALG     bool // Advanced vector extension 512 Bit Algorithms\n\tHasAVX512BF16       bool // Advanced vector extension 512 BFloat16 Instructions\n\tHasAMXTile          bool // Advanced Matrix Extension Tile instructions\n\tHasAMXInt8          bool // Advanced Matrix Extension Int8 instructions\n\tHasAMXBF16          bool // Advanced Matrix Extension BFloat16 instructions\n\tHasBMI1             bool // Bit manipulation instruction set 1\n\tHasBMI2             bool // Bit manipulation instruction set 2\n\tHasCX16             bool // Compare and exchange 16 Bytes\n\tHasERMS             bool // Enhanced REP for MOVSB and STOSB\n\tHasFMA              bool // Fused-multiply-add instructions\n\tHasOSXSAVE          bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers.\n\tHasPCLMULQDQ        bool // PCLMULQDQ instruction - most often used for AES-GCM\n\tHasPOPCNT           bool // Hamming weight instruction POPCNT.\n\tHasRDRAND           bool // RDRAND instruction (on-chip random number generator)\n\tHasRDSEED           bool // RDSEED instruction (on-chip random number generator)\n\tHasSSE2             bool // Streaming SIMD extension 2 (always available on amd64)\n\tHasSSE3             bool // Streaming SIMD extension 3\n\tHasSSSE3            bool // Supplemental streaming SIMD extension 3\n\tHasSSE41            bool // Streaming SIMD extension 4 and 4.1\n\tHasSSE42            bool // Streaming SIMD extension 4 and 4.2\n\tHasAVXIFMA          bool // Advanced vector extension Integer Fused Multiply Add\n\tHasAVXVNNI          bool // Advanced vector extension Vector Neural Network Instructions\n\tHasAVXVNNIInt8      bool // Advanced vector extension Vector Neural Network Int8 instructions\n\t_                   CacheLinePad\n}\n\n// ARM64 contains the supported CPU features of the\n// current ARMv8(aarch64) platform. If the current platform\n// is not arm64 then all feature flags are false.\nvar ARM64 struct {\n\t_           CacheLinePad\n\tHasFP       bool // Floating-point instruction set (always available)\n\tHasASIMD    bool // Advanced SIMD (always available)\n\tHasEVTSTRM  bool // Event stream support\n\tHasAES      bool // AES hardware implementation\n\tHasPMULL    bool // Polynomial multiplication instruction set\n\tHasSHA1     bool // SHA1 hardware implementation\n\tHasSHA2     bool // SHA2 hardware implementation\n\tHasCRC32    bool // CRC32 hardware implementation\n\tHasATOMICS  bool // Atomic memory operation instruction set\n\tHasFPHP     bool // Half precision floating-point instruction set\n\tHasASIMDHP  bool // Advanced SIMD half precision instruction set\n\tHasCPUID    bool // CPUID identification scheme registers\n\tHasASIMDRDM bool // Rounding double multiply add/subtract instruction set\n\tHasJSCVT    bool // Javascript conversion from floating-point to integer\n\tHasFCMA     bool // Floating-point multiplication and addition of complex numbers\n\tHasLRCPC    bool // Release Consistent processor consistent support\n\tHasDCPOP    bool // Persistent memory support\n\tHasSHA3     bool // SHA3 hardware implementation\n\tHasSM3      bool // SM3 hardware implementation\n\tHasSM4      bool // SM4 hardware implementation\n\tHasASIMDDP  bool // Advanced SIMD double precision instruction set\n\tHasSHA512   bool // SHA512 hardware implementation\n\tHasSVE      bool // Scalable Vector Extensions\n\tHasSVE2     bool // Scalable Vector Extensions 2\n\tHasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32\n\tHasDIT      bool // Data Independent Timing support\n\tHasI8MM     bool // Advanced SIMD Int8 matrix multiplication instructions\n\t_           CacheLinePad\n}\n\n// ARM contains the supported CPU features of the current ARM (32-bit) platform.\n// All feature flags are false if:\n//  1. the current platform is not arm, or\n//  2. the current operating system is not Linux.\nvar ARM struct {\n\t_           CacheLinePad\n\tHasSWP      bool // SWP instruction support\n\tHasHALF     bool // Half-word load and store support\n\tHasTHUMB    bool // ARM Thumb instruction set\n\tHas26BIT    bool // Address space limited to 26-bits\n\tHasFASTMUL  bool // 32-bit operand, 64-bit result multiplication support\n\tHasFPA      bool // Floating point arithmetic support\n\tHasVFP      bool // Vector floating point support\n\tHasEDSP     bool // DSP Extensions support\n\tHasJAVA     bool // Java instruction set\n\tHasIWMMXT   bool // Intel Wireless MMX technology support\n\tHasCRUNCH   bool // MaverickCrunch context switching and handling\n\tHasTHUMBEE  bool // Thumb EE instruction set\n\tHasNEON     bool // NEON instruction set\n\tHasVFPv3    bool // Vector floating point version 3 support\n\tHasVFPv3D16 bool // Vector floating point version 3 D8-D15\n\tHasTLS      bool // Thread local storage support\n\tHasVFPv4    bool // Vector floating point version 4 support\n\tHasIDIVA    bool // Integer divide instruction support in ARM mode\n\tHasIDIVT    bool // Integer divide instruction support in Thumb mode\n\tHasVFPD32   bool // Vector floating point version 3 D15-D31\n\tHasLPAE     bool // Large Physical Address Extensions\n\tHasEVTSTRM  bool // Event stream support\n\tHasAES      bool // AES hardware implementation\n\tHasPMULL    bool // Polynomial multiplication instruction set\n\tHasSHA1     bool // SHA1 hardware implementation\n\tHasSHA2     bool // SHA2 hardware implementation\n\tHasCRC32    bool // CRC32 hardware implementation\n\t_           CacheLinePad\n}\n\n// The booleans in Loong64 contain the correspondingly named cpu feature bit.\n// The struct is padded to avoid false sharing.\nvar Loong64 struct {\n\t_         CacheLinePad\n\tHasLSX    bool // support 128-bit vector extension\n\tHasLASX   bool // support 256-bit vector extension\n\tHasCRC32  bool // support CRC instruction\n\tHasLAM_BH bool // support AM{SWAP/ADD}[_DB].{B/H} instruction\n\tHasLAMCAS bool // support AMCAS[_DB].{B/H/W/D} instruction\n\t_         CacheLinePad\n}\n\n// MIPS64X contains the supported CPU features of the current mips64/mips64le\n// platforms. If the current platform is not mips64/mips64le or the current\n// operating system is not Linux then all feature flags are false.\nvar MIPS64X struct {\n\t_      CacheLinePad\n\tHasMSA bool // MIPS SIMD architecture\n\t_      CacheLinePad\n}\n\n// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms.\n// If the current platform is not ppc64/ppc64le then all feature flags are false.\n//\n// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00,\n// since there are no optional categories. There are some exceptions that also\n// require kernel support to work (DARN, SCV), so there are feature bits for\n// those as well. The struct is padded to avoid false sharing.\nvar PPC64 struct {\n\t_        CacheLinePad\n\tHasDARN  bool // Hardware random number generator (requires kernel enablement)\n\tHasSCV   bool // Syscall vectored (requires kernel enablement)\n\tIsPOWER8 bool // ISA v2.07 (POWER8)\n\tIsPOWER9 bool // ISA v3.00 (POWER9), implies IsPOWER8\n\t_        CacheLinePad\n}\n\n// S390X contains the supported CPU features of the current IBM Z\n// (s390x) platform. If the current platform is not IBM Z then all\n// feature flags are false.\n//\n// S390X is padded to avoid false sharing. Further HasVX is only set\n// if the OS supports vector registers in addition to the STFLE\n// feature bit being set.\nvar S390X struct {\n\t_         CacheLinePad\n\tHasZARCH  bool // z/Architecture mode is active [mandatory]\n\tHasSTFLE  bool // store facility list extended\n\tHasLDISP  bool // long (20-bit) displacements\n\tHasEIMM   bool // 32-bit immediates\n\tHasDFP    bool // decimal floating point\n\tHasETF3EH bool // ETF-3 enhanced\n\tHasMSA    bool // message security assist (CPACF)\n\tHasAES    bool // KM-AES{128,192,256} functions\n\tHasAESCBC bool // KMC-AES{128,192,256} functions\n\tHasAESCTR bool // KMCTR-AES{128,192,256} functions\n\tHasAESGCM bool // KMA-GCM-AES{128,192,256} functions\n\tHasGHASH  bool // KIMD-GHASH function\n\tHasSHA1   bool // K{I,L}MD-SHA-1 functions\n\tHasSHA256 bool // K{I,L}MD-SHA-256 functions\n\tHasSHA512 bool // K{I,L}MD-SHA-512 functions\n\tHasSHA3   bool // K{I,L}MD-SHA3-{224,256,384,512} and K{I,L}MD-SHAKE-{128,256} functions\n\tHasVX     bool // vector facility\n\tHasVXE    bool // vector-enhancements facility 1\n\t_         CacheLinePad\n}\n\n// RISCV64 contains the supported CPU features and performance characteristics for riscv64\n// platforms. The booleans in RISCV64, with the exception of HasFastMisaligned, indicate\n// the presence of RISC-V extensions.\n//\n// It is safe to assume that all the RV64G extensions are supported and so they are omitted from\n// this structure. As riscv64 Go programs require at least RV64G, the code that populates\n// this structure cannot run successfully if some of the RV64G extensions are missing.\n// The struct is padded to avoid false sharing.\nvar RISCV64 struct {\n\t_                 CacheLinePad\n\tHasFastMisaligned bool // Fast misaligned accesses\n\tHasC              bool // Compressed instruction-set extension\n\tHasV              bool // Vector extension compatible with RVV 1.0\n\tHasZba            bool // Address generation instructions extension\n\tHasZbb            bool // Basic bit-manipulation extension\n\tHasZbs            bool // Single-bit instructions extension\n\tHasZvbb           bool // Vector Basic Bit-manipulation\n\tHasZvbc           bool // Vector Carryless Multiplication\n\tHasZvkb           bool // Vector Cryptography Bit-manipulation\n\tHasZvkt           bool // Vector Data-Independent Execution Latency\n\tHasZvkg           bool // Vector GCM/GMAC\n\tHasZvkn           bool // NIST Algorithm Suite (AES/SHA256/SHA512)\n\tHasZvknc          bool // NIST Algorithm Suite with carryless multiply\n\tHasZvkng          bool // NIST Algorithm Suite with GCM\n\tHasZvks           bool // ShangMi Algorithm Suite\n\tHasZvksc          bool // ShangMi Algorithm Suite with carryless multiplication\n\tHasZvksg          bool // ShangMi Algorithm Suite with GCM\n\t_                 CacheLinePad\n}\n\nfunc init() {\n\tarchInit()\n\tinitOptions()\n\tprocessOptions()\n}\n\n// options contains the cpu debug options that can be used in GODEBUG.\n// Options are arch dependent and are added by the arch specific initOptions functions.\n// Features that are mandatory for the specific GOARCH should have the Required field set\n// (e.g. SSE2 on amd64).\nvar options []option\n\n// Option names should be lower case. e.g. avx instead of AVX.\ntype option struct {\n\tName      string\n\tFeature   *bool\n\tSpecified bool // whether feature value was specified in GODEBUG\n\tEnable    bool // whether feature should be enabled\n\tRequired  bool // whether feature is mandatory and can not be disabled\n}\n\nfunc processOptions() {\n\tenv := os.Getenv(\"GODEBUG\")\nfield:\n\tfor env != \"\" {\n\t\tfield := \"\"\n\t\ti := strings.IndexByte(env, ',')\n\t\tif i < 0 {\n\t\t\tfield, env = env, \"\"\n\t\t} else {\n\t\t\tfield, env = env[:i], env[i+1:]\n\t\t}\n\t\tif len(field) < 4 || field[:4] != \"cpu.\" {\n\t\t\tcontinue\n\t\t}\n\t\ti = strings.IndexByte(field, '=')\n\t\tif i < 0 {\n\t\t\tprint(\"GODEBUG sys/cpu: no value specified for \\\"\", field, \"\\\"\\n\")\n\t\t\tcontinue\n\t\t}\n\t\tkey, value := field[4:i], field[i+1:] // e.g. \"SSE2\", \"on\"\n\n\t\tvar enable bool\n\t\tswitch value {\n\t\tcase \"on\":\n\t\t\tenable = true\n\t\tcase \"off\":\n\t\t\tenable = false\n\t\tdefault:\n\t\t\tprint(\"GODEBUG sys/cpu: value \\\"\", value, \"\\\" not supported for cpu option \\\"\", key, \"\\\"\\n\")\n\t\t\tcontinue field\n\t\t}\n\n\t\tif key == \"all\" {\n\t\t\tfor i := range options {\n\t\t\t\toptions[i].Specified = true\n\t\t\t\toptions[i].Enable = enable || options[i].Required\n\t\t\t}\n\t\t\tcontinue field\n\t\t}\n\n\t\tfor i := range options {\n\t\t\tif options[i].Name == key {\n\t\t\t\toptions[i].Specified = true\n\t\t\t\toptions[i].Enable = enable\n\t\t\t\tcontinue field\n\t\t\t}\n\t\t}\n\n\t\tprint(\"GODEBUG sys/cpu: unknown cpu feature \\\"\", key, \"\\\"\\n\")\n\t}\n\n\tfor _, o := range options {\n\t\tif !o.Specified {\n\t\t\tcontinue\n\t\t}\n\n\t\tif o.Enable && !*o.Feature {\n\t\t\tprint(\"GODEBUG sys/cpu: can not enable \\\"\", o.Name, \"\\\", missing CPU support\\n\")\n\t\t\tcontinue\n\t\t}\n\n\t\tif !o.Enable && o.Required {\n\t\t\tprint(\"GODEBUG sys/cpu: can not disable \\\"\", o.Name, \"\\\", required CPU feature\\n\")\n\t\t\tcontinue\n\t\t}\n\n\t\t*o.Feature = o.Enable\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_aix.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\n\npackage cpu\n\nconst (\n\t// getsystemcfg constants\n\t_SC_IMPL     = 2\n\t_IMPL_POWER8 = 0x10000\n\t_IMPL_POWER9 = 0x20000\n)\n\nfunc archInit() {\n\timpl := getsystemcfg(_SC_IMPL)\n\tif impl&_IMPL_POWER8 != 0 {\n\t\tPPC64.IsPOWER8 = true\n\t}\n\tif impl&_IMPL_POWER9 != 0 {\n\t\tPPC64.IsPOWER8 = true\n\t\tPPC64.IsPOWER9 = true\n\t}\n\n\tInitialized = true\n}\n\nfunc getsystemcfg(label int) (n uint64) {\n\tr0, _ := callgetsystemcfg(label)\n\tn = uint64(r0)\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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 cpu\n\nconst cacheLineSize = 32\n\n// HWCAP/HWCAP2 bits.\n// These are specific to Linux.\nconst (\n\thwcap_SWP       = 1 << 0\n\thwcap_HALF      = 1 << 1\n\thwcap_THUMB     = 1 << 2\n\thwcap_26BIT     = 1 << 3\n\thwcap_FAST_MULT = 1 << 4\n\thwcap_FPA       = 1 << 5\n\thwcap_VFP       = 1 << 6\n\thwcap_EDSP      = 1 << 7\n\thwcap_JAVA      = 1 << 8\n\thwcap_IWMMXT    = 1 << 9\n\thwcap_CRUNCH    = 1 << 10\n\thwcap_THUMBEE   = 1 << 11\n\thwcap_NEON      = 1 << 12\n\thwcap_VFPv3     = 1 << 13\n\thwcap_VFPv3D16  = 1 << 14\n\thwcap_TLS       = 1 << 15\n\thwcap_VFPv4     = 1 << 16\n\thwcap_IDIVA     = 1 << 17\n\thwcap_IDIVT     = 1 << 18\n\thwcap_VFPD32    = 1 << 19\n\thwcap_LPAE      = 1 << 20\n\thwcap_EVTSTRM   = 1 << 21\n\n\thwcap2_AES   = 1 << 0\n\thwcap2_PMULL = 1 << 1\n\thwcap2_SHA1  = 1 << 2\n\thwcap2_SHA2  = 1 << 3\n\thwcap2_CRC32 = 1 << 4\n)\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"pmull\", Feature: &ARM.HasPMULL},\n\t\t{Name: \"sha1\", Feature: &ARM.HasSHA1},\n\t\t{Name: \"sha2\", Feature: &ARM.HasSHA2},\n\t\t{Name: \"swp\", Feature: &ARM.HasSWP},\n\t\t{Name: \"thumb\", Feature: &ARM.HasTHUMB},\n\t\t{Name: \"thumbee\", Feature: &ARM.HasTHUMBEE},\n\t\t{Name: \"tls\", Feature: &ARM.HasTLS},\n\t\t{Name: \"vfp\", Feature: &ARM.HasVFP},\n\t\t{Name: \"vfpd32\", Feature: &ARM.HasVFPD32},\n\t\t{Name: \"vfpv3\", Feature: &ARM.HasVFPv3},\n\t\t{Name: \"vfpv3d16\", Feature: &ARM.HasVFPv3D16},\n\t\t{Name: \"vfpv4\", Feature: &ARM.HasVFPv4},\n\t\t{Name: \"half\", Feature: &ARM.HasHALF},\n\t\t{Name: \"26bit\", Feature: &ARM.Has26BIT},\n\t\t{Name: \"fastmul\", Feature: &ARM.HasFASTMUL},\n\t\t{Name: \"fpa\", Feature: &ARM.HasFPA},\n\t\t{Name: \"edsp\", Feature: &ARM.HasEDSP},\n\t\t{Name: \"java\", Feature: &ARM.HasJAVA},\n\t\t{Name: \"iwmmxt\", Feature: &ARM.HasIWMMXT},\n\t\t{Name: \"crunch\", Feature: &ARM.HasCRUNCH},\n\t\t{Name: \"neon\", Feature: &ARM.HasNEON},\n\t\t{Name: \"idivt\", Feature: &ARM.HasIDIVT},\n\t\t{Name: \"idiva\", Feature: &ARM.HasIDIVA},\n\t\t{Name: \"lpae\", Feature: &ARM.HasLPAE},\n\t\t{Name: \"evtstrm\", Feature: &ARM.HasEVTSTRM},\n\t\t{Name: \"aes\", Feature: &ARM.HasAES},\n\t\t{Name: \"crc32\", Feature: &ARM.HasCRC32},\n\t}\n\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\npackage cpu\n\nimport \"runtime\"\n\n// cacheLineSize is used to prevent false sharing of cache lines.\n// We choose 128 because Apple Silicon, a.k.a. M1, has 128-byte cache line size.\n// It doesn't cost much and is much more future-proof.\nconst cacheLineSize = 128\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"fp\", Feature: &ARM64.HasFP},\n\t\t{Name: \"asimd\", Feature: &ARM64.HasASIMD},\n\t\t{Name: \"evstrm\", Feature: &ARM64.HasEVTSTRM},\n\t\t{Name: \"aes\", Feature: &ARM64.HasAES},\n\t\t{Name: \"fphp\", Feature: &ARM64.HasFPHP},\n\t\t{Name: \"jscvt\", Feature: &ARM64.HasJSCVT},\n\t\t{Name: \"lrcpc\", Feature: &ARM64.HasLRCPC},\n\t\t{Name: \"pmull\", Feature: &ARM64.HasPMULL},\n\t\t{Name: \"sha1\", Feature: &ARM64.HasSHA1},\n\t\t{Name: \"sha2\", Feature: &ARM64.HasSHA2},\n\t\t{Name: \"sha3\", Feature: &ARM64.HasSHA3},\n\t\t{Name: \"sha512\", Feature: &ARM64.HasSHA512},\n\t\t{Name: \"sm3\", Feature: &ARM64.HasSM3},\n\t\t{Name: \"sm4\", Feature: &ARM64.HasSM4},\n\t\t{Name: \"sve\", Feature: &ARM64.HasSVE},\n\t\t{Name: \"sve2\", Feature: &ARM64.HasSVE2},\n\t\t{Name: \"crc32\", Feature: &ARM64.HasCRC32},\n\t\t{Name: \"atomics\", Feature: &ARM64.HasATOMICS},\n\t\t{Name: \"asimdhp\", Feature: &ARM64.HasASIMDHP},\n\t\t{Name: \"cpuid\", Feature: &ARM64.HasCPUID},\n\t\t{Name: \"asimrdm\", Feature: &ARM64.HasASIMDRDM},\n\t\t{Name: \"fcma\", Feature: &ARM64.HasFCMA},\n\t\t{Name: \"dcpop\", Feature: &ARM64.HasDCPOP},\n\t\t{Name: \"asimddp\", Feature: &ARM64.HasASIMDDP},\n\t\t{Name: \"asimdfhm\", Feature: &ARM64.HasASIMDFHM},\n\t\t{Name: \"dit\", Feature: &ARM64.HasDIT},\n\t\t{Name: \"i8mm\", Feature: &ARM64.HasI8MM},\n\t}\n}\n\nfunc archInit() {\n\tswitch runtime.GOOS {\n\tcase \"freebsd\":\n\t\treadARM64Registers()\n\tcase \"linux\", \"netbsd\", \"openbsd\", \"windows\":\n\t\tdoinit()\n\tdefault:\n\t\t// Many platforms don't seem to allow reading these registers.\n\t\tsetMinimalFeatures()\n\t}\n}\n\n// setMinimalFeatures fakes the minimal ARM64 features expected by\n// TestARM64minimalFeatures.\nfunc setMinimalFeatures() {\n\tARM64.HasASIMD = true\n\tARM64.HasFP = true\n}\n\nfunc readARM64Registers() {\n\tInitialized = true\n\n\tparseARM64SystemRegisters(getisar0(), getisar1(), getpfr0())\n}\n\nfunc parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) {\n\t// ID_AA64ISAR0_EL1\n\tswitch extractBits(isar0, 4, 7) {\n\tcase 1:\n\t\tARM64.HasAES = true\n\tcase 2:\n\t\tARM64.HasAES = true\n\t\tARM64.HasPMULL = true\n\t}\n\n\tswitch extractBits(isar0, 8, 11) {\n\tcase 1:\n\t\tARM64.HasSHA1 = true\n\t}\n\n\tswitch extractBits(isar0, 12, 15) {\n\tcase 1:\n\t\tARM64.HasSHA2 = true\n\tcase 2:\n\t\tARM64.HasSHA2 = true\n\t\tARM64.HasSHA512 = true\n\t}\n\n\tswitch extractBits(isar0, 16, 19) {\n\tcase 1:\n\t\tARM64.HasCRC32 = true\n\t}\n\n\tswitch extractBits(isar0, 20, 23) {\n\tcase 2:\n\t\tARM64.HasATOMICS = true\n\t}\n\n\tswitch extractBits(isar0, 28, 31) {\n\tcase 1:\n\t\tARM64.HasASIMDRDM = true\n\t}\n\n\tswitch extractBits(isar0, 32, 35) {\n\tcase 1:\n\t\tARM64.HasSHA3 = true\n\t}\n\n\tswitch extractBits(isar0, 36, 39) {\n\tcase 1:\n\t\tARM64.HasSM3 = true\n\t}\n\n\tswitch extractBits(isar0, 40, 43) {\n\tcase 1:\n\t\tARM64.HasSM4 = true\n\t}\n\n\tswitch extractBits(isar0, 44, 47) {\n\tcase 1:\n\t\tARM64.HasASIMDDP = true\n\t}\n\n\t// ID_AA64ISAR1_EL1\n\tswitch extractBits(isar1, 0, 3) {\n\tcase 1:\n\t\tARM64.HasDCPOP = true\n\t}\n\n\tswitch extractBits(isar1, 12, 15) {\n\tcase 1:\n\t\tARM64.HasJSCVT = true\n\t}\n\n\tswitch extractBits(isar1, 16, 19) {\n\tcase 1:\n\t\tARM64.HasFCMA = true\n\t}\n\n\tswitch extractBits(isar1, 20, 23) {\n\tcase 1:\n\t\tARM64.HasLRCPC = true\n\t}\n\n\tswitch extractBits(isar1, 52, 55) {\n\tcase 1:\n\t\tARM64.HasI8MM = true\n\t}\n\n\t// ID_AA64PFR0_EL1\n\tswitch extractBits(pfr0, 16, 19) {\n\tcase 0:\n\t\tARM64.HasFP = true\n\tcase 1:\n\t\tARM64.HasFP = true\n\t\tARM64.HasFPHP = true\n\t}\n\n\tswitch extractBits(pfr0, 20, 23) {\n\tcase 0:\n\t\tARM64.HasASIMD = true\n\tcase 1:\n\t\tARM64.HasASIMD = true\n\t\tARM64.HasASIMDHP = true\n\t}\n\n\tswitch extractBits(pfr0, 32, 35) {\n\tcase 1:\n\t\tARM64.HasSVE = true\n\n\t\tparseARM64SVERegister(getzfr0())\n\t}\n\n\tswitch extractBits(pfr0, 48, 51) {\n\tcase 1:\n\t\tARM64.HasDIT = true\n\t}\n}\n\nfunc parseARM64SVERegister(zfr0 uint64) {\n\tswitch extractBits(zfr0, 0, 3) {\n\tcase 1:\n\t\tARM64.HasSVE2 = true\n\t}\n}\n\nfunc extractBits(data uint64, start, end uint) uint {\n\treturn (uint)(data>>start) & ((1 << (end - start + 1)) - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_arm64.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// func getisar0() uint64\nTEXT ·getisar0(SB),NOSPLIT,$0-8\n\t// get Instruction Set Attributes 0 into x0\n\tMRS\tID_AA64ISAR0_EL1, R0\n\tMOVD\tR0, ret+0(FP)\n\tRET\n\n// func getisar1() uint64\nTEXT ·getisar1(SB),NOSPLIT,$0-8\n\t// get Instruction Set Attributes 1 into x0\n\tMRS\tID_AA64ISAR1_EL1, R0\n\tMOVD\tR0, ret+0(FP)\n\tRET\n\n// func getpfr0() uint64\nTEXT ·getpfr0(SB),NOSPLIT,$0-8\n\t// get Processor Feature Register 0 into x0\n\tMRS\tID_AA64PFR0_EL1, R0\n\tMOVD\tR0, ret+0(FP)\n\tRET\n\n// func getzfr0() uint64\nTEXT ·getzfr0(SB),NOSPLIT,$0-8\n\t// get SVE Feature Register 0 into x0\n\tMRS\tID_AA64ZFR0_EL1, R0\n\tMOVD\tR0, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_darwin_x86.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 darwin && amd64 && gc\n\npackage cpu\n\n// darwinSupportsAVX512 checks Darwin kernel for AVX512 support via sysctl\n// call (see issue 43089). It also restricts AVX512 support for Darwin to\n// kernel version 21.3.0 (MacOS 12.2.0) or later (see issue 49233).\n//\n// Background:\n// Darwin implements a special mechanism to economize on thread state when\n// AVX512 specific registers are not in use. This scheme minimizes state when\n// preempting threads that haven't yet used any AVX512 instructions, but adds\n// special requirements to check for AVX512 hardware support at runtime (e.g.\n// via sysctl call or commpage inspection). See issue 43089 and link below for\n// full background:\n// https://github.com/apple-oss-distributions/xnu/blob/xnu-11215.1.10/osfmk/i386/fpu.c#L214-L240\n//\n// Additionally, all versions of the Darwin kernel from 19.6.0 through 21.2.0\n// (corresponding to MacOS 10.15.6 - 12.1) have a bug that can cause corruption\n// of the AVX512 mask registers (K0-K7) upon signal return. For this reason\n// AVX512 is considered unsafe to use on Darwin for kernel versions prior to\n// 21.3.0, where a fix has been confirmed. See issue 49233 for full background.\nfunc darwinSupportsAVX512() bool {\n\treturn darwinSysctlEnabled([]byte(\"hw.optional.avx512f\\x00\")) && darwinKernelVersionCheck(21, 3, 0)\n}\n\n// Ensure Darwin kernel version is at least major.minor.patch, avoiding dependencies\nfunc darwinKernelVersionCheck(major, minor, patch int) bool {\n\tvar release [256]byte\n\terr := darwinOSRelease(&release)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tvar mmp [3]int\n\tc := 0\nLoop:\n\tfor _, b := range release[:] {\n\t\tswitch {\n\t\tcase b >= '0' && b <= '9':\n\t\t\tmmp[c] = 10*mmp[c] + int(b-'0')\n\t\tcase b == '.':\n\t\t\tc++\n\t\t\tif c > 2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase b == 0:\n\t\t\tbreak Loop\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\tif c != 2 {\n\t\treturn false\n\t}\n\treturn mmp[0] > major || mmp[0] == major && (mmp[1] > minor || mmp[1] == minor && mmp[2] >= patch)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gc_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 gc\n\npackage cpu\n\nfunc getisar0() uint64\nfunc getisar1() uint64\nfunc getpfr0() uint64\nfunc getzfr0() uint64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gc_s390x.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 gc\n\npackage cpu\n\n// haveAsmFunctions reports whether the other functions in this file can\n// be safely called.\nfunc haveAsmFunctions() bool { return true }\n\n// The following feature detection functions are defined in cpu_s390x.s.\n// They are likely to be expensive to call so the results should be cached.\nfunc stfle() facilityList\nfunc kmQuery() queryResult\nfunc kmcQuery() queryResult\nfunc kmctrQuery() queryResult\nfunc kmaQuery() queryResult\nfunc kimdQuery() queryResult\nfunc klmdQuery() queryResult\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gc_x86.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 (386 || amd64 || amd64p32) && gc\n\npackage cpu\n\n// cpuid is implemented in cpu_gc_x86.s for gc compiler\n// and in cpu_gccgo.c for gccgo.\nfunc cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)\n\n// xgetbv with ecx = 0 is implemented in cpu_gc_x86.s for gc compiler\n// and in cpu_gccgo.c for gccgo.\nfunc xgetbv() (eax, edx uint32)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gc_x86.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 (386 || amd64 || amd64p32) && gc\n\n#include \"textflag.h\"\n\n// func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)\nTEXT ·cpuid(SB), NOSPLIT, $0-24\n\tMOVL eaxArg+0(FP), AX\n\tMOVL ecxArg+4(FP), CX\n\tCPUID\n\tMOVL AX, eax+8(FP)\n\tMOVL BX, ebx+12(FP)\n\tMOVL CX, ecx+16(FP)\n\tMOVL DX, edx+20(FP)\n\tRET\n\n// func xgetbv() (eax, edx uint32)\nTEXT ·xgetbv(SB), NOSPLIT, $0-8\n\tMOVL $0, CX\n\tXGETBV\n\tMOVL AX, eax+0(FP)\n\tMOVL DX, edx+4(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gccgo_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 gccgo\n\npackage cpu\n\nfunc getisar0() uint64 { return 0 }\nfunc getisar1() uint64 { return 0 }\nfunc getpfr0() uint64  { return 0 }\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.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 gccgo\n\npackage cpu\n\n// haveAsmFunctions reports whether the other functions in this file can\n// be safely called.\nfunc haveAsmFunctions() bool { return false }\n\n// TODO(mundaym): the following feature detection functions are currently\n// stubs. See https://golang.org/cl/162887 for how to fix this.\n// They are likely to be expensive to call so the results should be cached.\nfunc stfle() facilityList     { panic(\"not implemented for gccgo\") }\nfunc kmQuery() queryResult    { panic(\"not implemented for gccgo\") }\nfunc kmcQuery() queryResult   { panic(\"not implemented for gccgo\") }\nfunc kmctrQuery() queryResult { panic(\"not implemented for gccgo\") }\nfunc kmaQuery() queryResult   { panic(\"not implemented for gccgo\") }\nfunc kimdQuery() queryResult  { panic(\"not implemented for gccgo\") }\nfunc klmdQuery() queryResult  { panic(\"not implemented for gccgo\") }\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c",
    "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 (386 || amd64 || amd64p32) && gccgo\n\n#include <cpuid.h>\n#include <stdint.h>\n#include <x86intrin.h>\n\n// Need to wrap __get_cpuid_count because it's declared as static.\nint\ngccgoGetCpuidCount(uint32_t leaf, uint32_t subleaf,\n                   uint32_t *eax, uint32_t *ebx,\n                   uint32_t *ecx, uint32_t *edx)\n{\n\treturn __get_cpuid_count(leaf, subleaf, eax, ebx, ecx, edx);\n}\n\n#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n#pragma GCC push_options\n#pragma GCC target(\"xsave\")\n#pragma clang attribute push (__attribute__((target(\"xsave\"))), apply_to=function)\n\n// xgetbv reads the contents of an XCR (Extended Control Register)\n// specified in the ECX register into registers EDX:EAX.\n// Currently, the only supported value for XCR is 0.\nvoid\ngccgoXgetbv(uint32_t *eax, uint32_t *edx)\n{\n\tuint64_t v = _xgetbv(0);\n\t*eax = v & 0xffffffff;\n\t*edx = v >> 32;\n}\n\n#pragma clang attribute pop\n#pragma GCC pop_options\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.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 (386 || amd64 || amd64p32) && gccgo\n\npackage cpu\n\n//extern gccgoGetCpuidCount\nfunc gccgoGetCpuidCount(eaxArg, ecxArg uint32, eax, ebx, ecx, edx *uint32)\n\nfunc cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) {\n\tvar a, b, c, d uint32\n\tgccgoGetCpuidCount(eaxArg, ecxArg, &a, &b, &c, &d)\n\treturn a, b, c, d\n}\n\n//extern gccgoXgetbv\nfunc gccgoXgetbv(eax, edx *uint32)\n\nfunc xgetbv() (eax, edx uint32) {\n\tvar a, d uint32\n\tgccgoXgetbv(&a, &d)\n\treturn a, d\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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//go:build !386 && !amd64 && !amd64p32 && !arm64\n\npackage cpu\n\nfunc archInit() {\n\tif err := readHWCAP(); err != nil {\n\t\treturn\n\t}\n\tdoinit()\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_arm.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 cpu\n\nfunc doinit() {\n\tARM.HasSWP = isSet(hwCap, hwcap_SWP)\n\tARM.HasHALF = isSet(hwCap, hwcap_HALF)\n\tARM.HasTHUMB = isSet(hwCap, hwcap_THUMB)\n\tARM.Has26BIT = isSet(hwCap, hwcap_26BIT)\n\tARM.HasFASTMUL = isSet(hwCap, hwcap_FAST_MULT)\n\tARM.HasFPA = isSet(hwCap, hwcap_FPA)\n\tARM.HasVFP = isSet(hwCap, hwcap_VFP)\n\tARM.HasEDSP = isSet(hwCap, hwcap_EDSP)\n\tARM.HasJAVA = isSet(hwCap, hwcap_JAVA)\n\tARM.HasIWMMXT = isSet(hwCap, hwcap_IWMMXT)\n\tARM.HasCRUNCH = isSet(hwCap, hwcap_CRUNCH)\n\tARM.HasTHUMBEE = isSet(hwCap, hwcap_THUMBEE)\n\tARM.HasNEON = isSet(hwCap, hwcap_NEON)\n\tARM.HasVFPv3 = isSet(hwCap, hwcap_VFPv3)\n\tARM.HasVFPv3D16 = isSet(hwCap, hwcap_VFPv3D16)\n\tARM.HasTLS = isSet(hwCap, hwcap_TLS)\n\tARM.HasVFPv4 = isSet(hwCap, hwcap_VFPv4)\n\tARM.HasIDIVA = isSet(hwCap, hwcap_IDIVA)\n\tARM.HasIDIVT = isSet(hwCap, hwcap_IDIVT)\n\tARM.HasVFPD32 = isSet(hwCap, hwcap_VFPD32)\n\tARM.HasLPAE = isSet(hwCap, hwcap_LPAE)\n\tARM.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM)\n\tARM.HasAES = isSet(hwCap2, hwcap2_AES)\n\tARM.HasPMULL = isSet(hwCap2, hwcap2_PMULL)\n\tARM.HasSHA1 = isSet(hwCap2, hwcap2_SHA1)\n\tARM.HasSHA2 = isSet(hwCap2, hwcap2_SHA2)\n\tARM.HasCRC32 = isSet(hwCap2, hwcap2_CRC32)\n}\n\nfunc isSet(hwc uint, value uint) bool {\n\treturn hwc&value != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_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\npackage cpu\n\nimport (\n\t\"strings\"\n\t\"syscall\"\n)\n\n// HWCAP/HWCAP2 bits. These are exposed by Linux.\nconst (\n\thwcap_FP       = 1 << 0\n\thwcap_ASIMD    = 1 << 1\n\thwcap_EVTSTRM  = 1 << 2\n\thwcap_AES      = 1 << 3\n\thwcap_PMULL    = 1 << 4\n\thwcap_SHA1     = 1 << 5\n\thwcap_SHA2     = 1 << 6\n\thwcap_CRC32    = 1 << 7\n\thwcap_ATOMICS  = 1 << 8\n\thwcap_FPHP     = 1 << 9\n\thwcap_ASIMDHP  = 1 << 10\n\thwcap_CPUID    = 1 << 11\n\thwcap_ASIMDRDM = 1 << 12\n\thwcap_JSCVT    = 1 << 13\n\thwcap_FCMA     = 1 << 14\n\thwcap_LRCPC    = 1 << 15\n\thwcap_DCPOP    = 1 << 16\n\thwcap_SHA3     = 1 << 17\n\thwcap_SM3      = 1 << 18\n\thwcap_SM4      = 1 << 19\n\thwcap_ASIMDDP  = 1 << 20\n\thwcap_SHA512   = 1 << 21\n\thwcap_SVE      = 1 << 22\n\thwcap_ASIMDFHM = 1 << 23\n\thwcap_DIT      = 1 << 24\n\n\thwcap2_SVE2 = 1 << 1\n\thwcap2_I8MM = 1 << 13\n)\n\n// linuxKernelCanEmulateCPUID reports whether we're running\n// on Linux 4.11+. Ideally we'd like to ask the question about\n// whether the current kernel contains\n// https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77c97b4ee21290f5f083173d957843b615abbff2\n// but the version number will have to do.\nfunc linuxKernelCanEmulateCPUID() bool {\n\tvar un syscall.Utsname\n\tsyscall.Uname(&un)\n\tvar sb strings.Builder\n\tfor _, b := range un.Release[:] {\n\t\tif b == 0 {\n\t\t\tbreak\n\t\t}\n\t\tsb.WriteByte(byte(b))\n\t}\n\tmajor, minor, _, ok := parseRelease(sb.String())\n\treturn ok && (major > 4 || major == 4 && minor >= 11)\n}\n\nfunc doinit() {\n\tif err := readHWCAP(); err != nil {\n\t\t// We failed to read /proc/self/auxv. This can happen if the binary has\n\t\t// been given extra capabilities(7) with /bin/setcap.\n\t\t//\n\t\t// When this happens, we have two options. If the Linux kernel is new\n\t\t// enough (4.11+), we can read the arm64 registers directly which'll\n\t\t// trap into the kernel and then return back to userspace.\n\t\t//\n\t\t// But on older kernels, such as Linux 4.4.180 as used on many Synology\n\t\t// devices, calling readARM64Registers (specifically getisar0) will\n\t\t// cause a SIGILL and we'll die. So for older kernels, parse /proc/cpuinfo\n\t\t// instead.\n\t\t//\n\t\t// See golang/go#57336.\n\t\tif linuxKernelCanEmulateCPUID() {\n\t\t\treadARM64Registers()\n\t\t} else {\n\t\t\treadLinuxProcCPUInfo()\n\t\t}\n\t\treturn\n\t}\n\n\t// HWCAP feature bits\n\tARM64.HasFP = isSet(hwCap, hwcap_FP)\n\tARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD)\n\tARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM)\n\tARM64.HasAES = isSet(hwCap, hwcap_AES)\n\tARM64.HasPMULL = isSet(hwCap, hwcap_PMULL)\n\tARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1)\n\tARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2)\n\tARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32)\n\tARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS)\n\tARM64.HasFPHP = isSet(hwCap, hwcap_FPHP)\n\tARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP)\n\tARM64.HasCPUID = isSet(hwCap, hwcap_CPUID)\n\tARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM)\n\tARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT)\n\tARM64.HasFCMA = isSet(hwCap, hwcap_FCMA)\n\tARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC)\n\tARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP)\n\tARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3)\n\tARM64.HasSM3 = isSet(hwCap, hwcap_SM3)\n\tARM64.HasSM4 = isSet(hwCap, hwcap_SM4)\n\tARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP)\n\tARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512)\n\tARM64.HasSVE = isSet(hwCap, hwcap_SVE)\n\tARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM)\n\tARM64.HasDIT = isSet(hwCap, hwcap_DIT)\n\n\t// HWCAP2 feature bits\n\tARM64.HasSVE2 = isSet(hwCap2, hwcap2_SVE2)\n\tARM64.HasI8MM = isSet(hwCap2, hwcap2_I8MM)\n}\n\nfunc isSet(hwc uint, value uint) bool {\n\treturn hwc&value != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_loong64.go",
    "content": "// Copyright 2025 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 cpu\n\n// HWCAP bits. These are exposed by the Linux kernel.\nconst (\n\thwcap_LOONGARCH_LSX  = 1 << 4\n\thwcap_LOONGARCH_LASX = 1 << 5\n)\n\nfunc doinit() {\n\t// TODO: Features that require kernel support like LSX and LASX can\n\t// be detected here once needed in std library or by the compiler.\n\tLoong64.HasLSX = hwcIsSet(hwCap, hwcap_LOONGARCH_LSX)\n\tLoong64.HasLASX = hwcIsSet(hwCap, hwcap_LOONGARCH_LASX)\n}\n\nfunc hwcIsSet(hwc uint, val uint) bool {\n\treturn hwc&val != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.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 linux && (mips64 || mips64le)\n\npackage cpu\n\n// HWCAP bits. These are exposed by the Linux kernel 5.4.\nconst (\n\t// CPU features\n\thwcap_MIPS_MSA = 1 << 1\n)\n\nfunc doinit() {\n\t// HWCAP feature bits\n\tMIPS64X.HasMSA = isSet(hwCap, hwcap_MIPS_MSA)\n}\n\nfunc isSet(hwc uint, value uint) bool {\n\treturn hwc&value != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_noinit.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 linux && !arm && !arm64 && !loong64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x && !riscv64\n\npackage cpu\n\nfunc doinit() {}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_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 && (ppc64 || ppc64le)\n\npackage cpu\n\n// HWCAP/HWCAP2 bits. These are exposed by the kernel.\nconst (\n\t// ISA Level\n\t_PPC_FEATURE2_ARCH_2_07 = 0x80000000\n\t_PPC_FEATURE2_ARCH_3_00 = 0x00800000\n\n\t// CPU features\n\t_PPC_FEATURE2_DARN = 0x00200000\n\t_PPC_FEATURE2_SCV  = 0x00100000\n)\n\nfunc doinit() {\n\t// HWCAP2 feature bits\n\tPPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07)\n\tPPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00)\n\tPPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN)\n\tPPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV)\n}\n\nfunc isSet(hwc uint, value uint) bool {\n\treturn hwc&value != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.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\npackage cpu\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// RISC-V extension discovery code for Linux. The approach here is to first try the riscv_hwprobe\n// syscall falling back to HWCAP to check for the C extension if riscv_hwprobe is not available.\n//\n// A note on detection of the Vector extension using HWCAP.\n//\n// Support for the Vector extension version 1.0 was added to the Linux kernel in release 6.5.\n// Support for the riscv_hwprobe syscall was added in 6.4. It follows that if the riscv_hwprobe\n// syscall is not available then neither is the Vector extension (which needs kernel support).\n// The riscv_hwprobe syscall should then be all we need to detect the Vector extension.\n// However, some RISC-V board manufacturers ship boards with an older kernel on top of which\n// they have back-ported various versions of the Vector extension patches but not the riscv_hwprobe\n// patches. These kernels advertise support for the Vector extension using HWCAP. Falling\n// back to HWCAP to detect the Vector extension, if riscv_hwprobe is not available, or simply not\n// bothering with riscv_hwprobe at all and just using HWCAP may then seem like an attractive option.\n//\n// Unfortunately, simply checking the 'V' bit in AT_HWCAP will not work as this bit is used by\n// RISC-V board and cloud instance providers to mean different things. The Lichee Pi 4A board\n// and the Scaleway RV1 cloud instances use the 'V' bit to advertise their support for the unratified\n// 0.7.1 version of the Vector Specification. The Banana Pi BPI-F3 and the CanMV-K230 board use\n// it to advertise support for 1.0 of the Vector extension. Versions 0.7.1 and 1.0 of the Vector\n// extension are binary incompatible. HWCAP can then not be used in isolation to populate the\n// HasV field as this field indicates that the underlying CPU is compatible with RVV 1.0.\n//\n// There is a way at runtime to distinguish between versions 0.7.1 and 1.0 of the Vector\n// specification by issuing a RVV 1.0 vsetvli instruction and checking the vill bit of the vtype\n// register. This check would allow us to safely detect version 1.0 of the Vector extension\n// with HWCAP, if riscv_hwprobe were not available. However, the check cannot\n// be added until the assembler supports the Vector instructions.\n//\n// Note the riscv_hwprobe syscall does not suffer from these ambiguities by design as all of the\n// extensions it advertises support for are explicitly versioned. It's also worth noting that\n// the riscv_hwprobe syscall is the only way to detect multi-letter RISC-V extensions, e.g., Zba.\n// These cannot be detected using HWCAP and so riscv_hwprobe must be used to detect the majority\n// of RISC-V extensions.\n//\n// Please see https://docs.kernel.org/arch/riscv/hwprobe.html for more information.\n\n// golang.org/x/sys/cpu is not allowed to depend on golang.org/x/sys/unix so we must\n// reproduce the constants, types and functions needed to make the riscv_hwprobe syscall\n// here.\n\nconst (\n\t// Copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go.\n\triscv_HWPROBE_KEY_IMA_EXT_0   = 0x4\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_EXT_ZVBB        = 0x20000\n\triscv_HWPROBE_EXT_ZVBC        = 0x40000\n\triscv_HWPROBE_EXT_ZVKB        = 0x80000\n\triscv_HWPROBE_EXT_ZVKG        = 0x100000\n\triscv_HWPROBE_EXT_ZVKNED      = 0x200000\n\triscv_HWPROBE_EXT_ZVKNHB      = 0x800000\n\triscv_HWPROBE_EXT_ZVKSED      = 0x1000000\n\triscv_HWPROBE_EXT_ZVKSH       = 0x2000000\n\triscv_HWPROBE_EXT_ZVKT        = 0x4000000\n\triscv_HWPROBE_KEY_CPUPERF_0   = 0x5\n\triscv_HWPROBE_MISALIGNED_FAST = 0x3\n\triscv_HWPROBE_MISALIGNED_MASK = 0x7\n)\n\nconst (\n\t// sys_RISCV_HWPROBE is copied from golang.org/x/sys/unix/zsysnum_linux_riscv64.go.\n\tsys_RISCV_HWPROBE = 258\n)\n\n// riscvHWProbePairs is copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go.\ntype riscvHWProbePairs struct {\n\tkey   int64\n\tvalue uint64\n}\n\nconst (\n\t// CPU features\n\thwcap_RISCV_ISA_C = 1 << ('C' - 'A')\n)\n\nfunc doinit() {\n\t// A slice of key/value pair structures is passed to the RISCVHWProbe syscall. The key\n\t// field should be initialised with one of the key constants defined above, e.g.,\n\t// RISCV_HWPROBE_KEY_IMA_EXT_0. The syscall will set the value field to the appropriate value.\n\t// If the kernel does not recognise a key it will set the key field to -1 and the value field to 0.\n\n\tpairs := []riscvHWProbePairs{\n\t\t{riscv_HWPROBE_KEY_IMA_EXT_0, 0},\n\t\t{riscv_HWPROBE_KEY_CPUPERF_0, 0},\n\t}\n\n\t// This call only indicates that extensions are supported if they are implemented on all cores.\n\tif riscvHWProbe(pairs, 0) {\n\t\tif pairs[0].key != -1 {\n\t\t\tv := uint(pairs[0].value)\n\t\t\tRISCV64.HasC = isSet(v, riscv_HWPROBE_IMA_C)\n\t\t\tRISCV64.HasV = isSet(v, riscv_HWPROBE_IMA_V)\n\t\t\tRISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA)\n\t\t\tRISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB)\n\t\t\tRISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS)\n\t\t\tRISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB)\n\t\t\tRISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC)\n\t\t\tRISCV64.HasZvkb = isSet(v, riscv_HWPROBE_EXT_ZVKB)\n\t\t\tRISCV64.HasZvkg = isSet(v, riscv_HWPROBE_EXT_ZVKG)\n\t\t\tRISCV64.HasZvkt = isSet(v, riscv_HWPROBE_EXT_ZVKT)\n\t\t\t// Cryptography shorthand extensions\n\t\t\tRISCV64.HasZvkn = isSet(v, riscv_HWPROBE_EXT_ZVKNED) &&\n\t\t\t\tisSet(v, riscv_HWPROBE_EXT_ZVKNHB) && RISCV64.HasZvkb && RISCV64.HasZvkt\n\t\t\tRISCV64.HasZvknc = RISCV64.HasZvkn && RISCV64.HasZvbc\n\t\t\tRISCV64.HasZvkng = RISCV64.HasZvkn && RISCV64.HasZvkg\n\t\t\tRISCV64.HasZvks = isSet(v, riscv_HWPROBE_EXT_ZVKSED) &&\n\t\t\t\tisSet(v, riscv_HWPROBE_EXT_ZVKSH) && RISCV64.HasZvkb && RISCV64.HasZvkt\n\t\t\tRISCV64.HasZvksc = RISCV64.HasZvks && RISCV64.HasZvbc\n\t\t\tRISCV64.HasZvksg = RISCV64.HasZvks && RISCV64.HasZvkg\n\t\t}\n\t\tif pairs[1].key != -1 {\n\t\t\tv := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK\n\t\t\tRISCV64.HasFastMisaligned = v == riscv_HWPROBE_MISALIGNED_FAST\n\t\t}\n\t}\n\n\t// Let's double check with HWCAP if the C extension does not appear to be supported.\n\t// This may happen if we're running on a kernel older than 6.4.\n\n\tif !RISCV64.HasC {\n\t\tRISCV64.HasC = isSet(hwCap, hwcap_RISCV_ISA_C)\n\t}\n}\n\nfunc isSet(hwc uint, value uint) bool {\n\treturn hwc&value != 0\n}\n\n// riscvHWProbe is a simplified version of the generated wrapper function found in\n// golang.org/x/sys/unix/zsyscall_linux_riscv64.go. We simplify it by removing the\n// cpuCount and cpus parameters which we do not need. We always want to pass 0 for\n// these parameters here so the kernel only reports the extensions that are present\n// on all cores.\nfunc riscvHWProbe(pairs []riscvHWProbePairs, flags uint) bool {\n\tvar _zero uintptr\n\tvar p0 unsafe.Pointer\n\tif len(pairs) > 0 {\n\t\tp0 = unsafe.Pointer(&pairs[0])\n\t} else {\n\t\tp0 = unsafe.Pointer(&_zero)\n\t}\n\n\t_, _, e1 := syscall.Syscall6(sys_RISCV_HWPROBE, uintptr(p0), uintptr(len(pairs)), uintptr(0), uintptr(0), uintptr(flags), 0)\n\treturn e1 == 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_linux_s390x.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 cpu\n\nconst (\n\t// bit mask values from /usr/include/bits/hwcap.h\n\thwcap_ZARCH  = 2\n\thwcap_STFLE  = 4\n\thwcap_MSA    = 8\n\thwcap_LDISP  = 16\n\thwcap_EIMM   = 32\n\thwcap_DFP    = 64\n\thwcap_ETF3EH = 256\n\thwcap_VX     = 2048\n\thwcap_VXE    = 8192\n)\n\nfunc initS390Xbase() {\n\t// test HWCAP bit vector\n\thas := func(featureMask uint) bool {\n\t\treturn hwCap&featureMask == featureMask\n\t}\n\n\t// mandatory\n\tS390X.HasZARCH = has(hwcap_ZARCH)\n\n\t// optional\n\tS390X.HasSTFLE = has(hwcap_STFLE)\n\tS390X.HasLDISP = has(hwcap_LDISP)\n\tS390X.HasEIMM = has(hwcap_EIMM)\n\tS390X.HasETF3EH = has(hwcap_ETF3EH)\n\tS390X.HasDFP = has(hwcap_DFP)\n\tS390X.HasMSA = has(hwcap_MSA)\n\tS390X.HasVX = has(hwcap_VX)\n\tif S390X.HasVX {\n\t\tS390X.HasVXE = has(hwcap_VXE)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\n\npackage cpu\n\nconst cacheLineSize = 64\n\n// Bit fields for CPUCFG registers, Related reference documents:\n// https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#_cpucfg\nconst (\n\t// CPUCFG1 bits\n\tcpucfg1_CRC32 = 1 << 25\n\n\t// CPUCFG2 bits\n\tcpucfg2_LAM_BH = 1 << 27\n\tcpucfg2_LAMCAS = 1 << 28\n)\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"lsx\", Feature: &Loong64.HasLSX},\n\t\t{Name: \"lasx\", Feature: &Loong64.HasLASX},\n\t\t{Name: \"crc32\", Feature: &Loong64.HasCRC32},\n\t\t{Name: \"lam_bh\", Feature: &Loong64.HasLAM_BH},\n\t\t{Name: \"lamcas\", Feature: &Loong64.HasLAMCAS},\n\t}\n\n\t// The CPUCFG data on Loong64 only reflects the hardware capabilities,\n\t// not the kernel support status, so features such as LSX and LASX that\n\t// require kernel support cannot be obtained from the CPUCFG data.\n\t//\n\t// These features only require hardware capability support and do not\n\t// require kernel specific support, so they can be obtained directly\n\t// through CPUCFG\n\tcfg1 := get_cpucfg(1)\n\tcfg2 := get_cpucfg(2)\n\n\tLoong64.HasCRC32 = cfgIsSet(cfg1, cpucfg1_CRC32)\n\tLoong64.HasLAMCAS = cfgIsSet(cfg2, cpucfg2_LAMCAS)\n\tLoong64.HasLAM_BH = cfgIsSet(cfg2, cpucfg2_LAM_BH)\n}\n\nfunc get_cpucfg(reg uint32) uint32\n\nfunc cfgIsSet(cfg uint32, val uint32) bool {\n\treturn cfg&val != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_loong64.s",
    "content": "// Copyright 2025 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// func get_cpucfg(reg uint32) uint32\nTEXT ·get_cpucfg(SB), NOSPLIT|NOFRAME, $0\n\tMOVW\treg+0(FP), R5\n\t// CPUCFG R5, R4 = 0x00006ca4\n\tWORD\t$0x00006ca4\n\tMOVW\tR4, ret+8(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_mips64x.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 mips64 || mips64le\n\npackage cpu\n\nconst cacheLineSize = 32\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"msa\", Feature: &MIPS64X.HasMSA},\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_mipsx.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 mips || mipsle\n\npackage cpu\n\nconst cacheLineSize = 32\n\nfunc initOptions() {}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.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\npackage cpu\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Minimal copy of functionality from x/sys/unix so the cpu package can call\n// sysctl without depending on x/sys/unix.\n\nconst (\n\t_CTL_QUERY = -2\n\n\t_SYSCTL_VERS_1 = 0x1000000\n)\n\nvar _zero uintptr\n\nfunc sysctl(mib []int32, 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_, _, errno := syscall.Syscall6(\n\t\tsyscall.SYS___SYSCTL,\n\t\tuintptr(_p0),\n\t\tuintptr(len(mib)),\n\t\tuintptr(unsafe.Pointer(old)),\n\t\tuintptr(unsafe.Pointer(oldlen)),\n\t\tuintptr(unsafe.Pointer(new)),\n\t\tuintptr(newlen))\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\ntype sysctlNode struct {\n\tFlags          uint32\n\tNum            int32\n\tName           [32]int8\n\tVer            uint32\n\t__rsvd         uint32\n\tUn             [16]byte\n\t_sysctl_size   [8]byte\n\t_sysctl_func   [8]byte\n\t_sysctl_parent [8]byte\n\t_sysctl_desc   [8]byte\n}\n\nfunc sysctlNodes(mib []int32) ([]sysctlNode, 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) ([]int32, 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\tmib := []int32{}\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, int32(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, err\n\t\t}\n\t}\n\n\treturn mib, nil\n}\n\n// aarch64SysctlCPUID is struct aarch64_sysctl_cpu_id from NetBSD's <aarch64/armreg.h>\ntype aarch64SysctlCPUID struct {\n\tmidr      uint64 /* Main ID Register */\n\trevidr    uint64 /* Revision ID Register */\n\tmpidr     uint64 /* Multiprocessor Affinity Register */\n\taa64dfr0  uint64 /* A64 Debug Feature Register 0 */\n\taa64dfr1  uint64 /* A64 Debug Feature Register 1 */\n\taa64isar0 uint64 /* A64 Instruction Set Attribute Register 0 */\n\taa64isar1 uint64 /* A64 Instruction Set Attribute Register 1 */\n\taa64mmfr0 uint64 /* A64 Memory Model Feature Register 0 */\n\taa64mmfr1 uint64 /* A64 Memory Model Feature Register 1 */\n\taa64mmfr2 uint64 /* A64 Memory Model Feature Register 2 */\n\taa64pfr0  uint64 /* A64 Processor Feature Register 0 */\n\taa64pfr1  uint64 /* A64 Processor Feature Register 1 */\n\taa64zfr0  uint64 /* A64 SVE Feature ID Register 0 */\n\tmvfr0     uint32 /* Media and VFP Feature Register 0 */\n\tmvfr1     uint32 /* Media and VFP Feature Register 1 */\n\tmvfr2     uint32 /* Media and VFP Feature Register 2 */\n\tpad       uint32\n\tclidr     uint64 /* Cache Level ID Register */\n\tctr       uint64 /* Cache Type Register */\n}\n\nfunc sysctlCPUID(name string) (*aarch64SysctlCPUID, error) {\n\tmib, err := nametomib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tout := aarch64SysctlCPUID{}\n\tn := unsafe.Sizeof(out)\n\t_, _, errno := syscall.Syscall6(\n\t\tsyscall.SYS___SYSCTL,\n\t\tuintptr(unsafe.Pointer(&mib[0])),\n\t\tuintptr(len(mib)),\n\t\tuintptr(unsafe.Pointer(&out)),\n\t\tuintptr(unsafe.Pointer(&n)),\n\t\tuintptr(0),\n\t\tuintptr(0))\n\tif errno != 0 {\n\t\treturn nil, errno\n\t}\n\treturn &out, nil\n}\n\nfunc doinit() {\n\tcpuid, err := sysctlCPUID(\"machdep.cpu0.cpu_id\")\n\tif err != nil {\n\t\tsetMinimalFeatures()\n\t\treturn\n\t}\n\tparseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0)\n\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.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\npackage cpu\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Minimal copy of functionality from x/sys/unix so the cpu package can call\n// sysctl without depending on x/sys/unix.\n\nconst (\n\t// From OpenBSD's sys/sysctl.h.\n\t_CTL_MACHDEP = 7\n\n\t// From OpenBSD's machine/cpu.h.\n\t_CPU_ID_AA64ISAR0 = 2\n\t_CPU_ID_AA64ISAR1 = 3\n)\n\n// Implemented in the runtime package (runtime/sys_openbsd3.go)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//go:linkname syscall_syscall6 syscall.syscall6\n\nfunc sysctl(mib []uint32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\t_, _, errno := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(unsafe.Pointer(&mib[0])), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\nfunc sysctlUint64(mib []uint32) (uint64, bool) {\n\tvar out uint64\n\tnout := unsafe.Sizeof(out)\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); err != nil {\n\t\treturn 0, false\n\t}\n\treturn out, true\n}\n\nfunc doinit() {\n\tsetMinimalFeatures()\n\n\t// Get ID_AA64ISAR0 and ID_AA64ISAR1 from sysctl.\n\tisar0, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR0})\n\tif !ok {\n\t\treturn\n\t}\n\tisar1, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR1})\n\tif !ok {\n\t\treturn\n\t}\n\tparseARM64SystemRegisters(isar0, isar1, 0)\n\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.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#include \"textflag.h\"\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\n\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_arm.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 !linux && arm\n\npackage cpu\n\nfunc archInit() {}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_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 !linux && !netbsd && !openbsd && !windows && arm64\n\npackage cpu\n\nfunc doinit() {}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_mips64x.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 !linux && (mips64 || mips64le)\n\npackage cpu\n\nfunc archInit() {\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.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 !aix && !linux && (ppc64 || ppc64le)\n\npackage cpu\n\nfunc archInit() {\n\tPPC64.IsPOWER8 = true\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_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 !linux && riscv64\n\npackage cpu\n\nfunc archInit() {\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_other_x86.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 386 || amd64p32 || (amd64 && (!darwin || !gc))\n\npackage cpu\n\nfunc darwinSupportsAVX512() bool {\n\tpanic(\"only implemented for gc && amd64 && darwin\")\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_ppc64x.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 ppc64 || ppc64le\n\npackage cpu\n\nconst cacheLineSize = 128\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"darn\", Feature: &PPC64.HasDARN},\n\t\t{Name: \"scv\", Feature: &PPC64.HasSCV},\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\n\npackage cpu\n\nconst cacheLineSize = 64\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"fastmisaligned\", Feature: &RISCV64.HasFastMisaligned},\n\t\t{Name: \"c\", Feature: &RISCV64.HasC},\n\t\t{Name: \"v\", Feature: &RISCV64.HasV},\n\t\t{Name: \"zba\", Feature: &RISCV64.HasZba},\n\t\t{Name: \"zbb\", Feature: &RISCV64.HasZbb},\n\t\t{Name: \"zbs\", Feature: &RISCV64.HasZbs},\n\t\t// RISC-V Cryptography Extensions\n\t\t{Name: \"zvbb\", Feature: &RISCV64.HasZvbb},\n\t\t{Name: \"zvbc\", Feature: &RISCV64.HasZvbc},\n\t\t{Name: \"zvkb\", Feature: &RISCV64.HasZvkb},\n\t\t{Name: \"zvkg\", Feature: &RISCV64.HasZvkg},\n\t\t{Name: \"zvkt\", Feature: &RISCV64.HasZvkt},\n\t\t{Name: \"zvkn\", Feature: &RISCV64.HasZvkn},\n\t\t{Name: \"zvknc\", Feature: &RISCV64.HasZvknc},\n\t\t{Name: \"zvkng\", Feature: &RISCV64.HasZvkng},\n\t\t{Name: \"zvks\", Feature: &RISCV64.HasZvks},\n\t\t{Name: \"zvksc\", Feature: &RISCV64.HasZvksc},\n\t\t{Name: \"zvksg\", Feature: &RISCV64.HasZvksg},\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\npackage cpu\n\nconst cacheLineSize = 256\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"zarch\", Feature: &S390X.HasZARCH, Required: true},\n\t\t{Name: \"stfle\", Feature: &S390X.HasSTFLE, Required: true},\n\t\t{Name: \"ldisp\", Feature: &S390X.HasLDISP, Required: true},\n\t\t{Name: \"eimm\", Feature: &S390X.HasEIMM, Required: true},\n\t\t{Name: \"dfp\", Feature: &S390X.HasDFP},\n\t\t{Name: \"etf3eh\", Feature: &S390X.HasETF3EH},\n\t\t{Name: \"msa\", Feature: &S390X.HasMSA},\n\t\t{Name: \"aes\", Feature: &S390X.HasAES},\n\t\t{Name: \"aescbc\", Feature: &S390X.HasAESCBC},\n\t\t{Name: \"aesctr\", Feature: &S390X.HasAESCTR},\n\t\t{Name: \"aesgcm\", Feature: &S390X.HasAESGCM},\n\t\t{Name: \"ghash\", Feature: &S390X.HasGHASH},\n\t\t{Name: \"sha1\", Feature: &S390X.HasSHA1},\n\t\t{Name: \"sha256\", Feature: &S390X.HasSHA256},\n\t\t{Name: \"sha3\", Feature: &S390X.HasSHA3},\n\t\t{Name: \"sha512\", Feature: &S390X.HasSHA512},\n\t\t{Name: \"vx\", Feature: &S390X.HasVX},\n\t\t{Name: \"vxe\", Feature: &S390X.HasVXE},\n\t}\n}\n\n// bitIsSet reports whether the bit at index is set. The bit index\n// is in big endian order, so bit index 0 is the leftmost bit.\nfunc bitIsSet(bits []uint64, index uint) bool {\n\treturn bits[index/64]&((1<<63)>>(index%64)) != 0\n}\n\n// facility is a bit index for the named facility.\ntype facility uint8\n\nconst (\n\t// mandatory facilities\n\tzarch  facility = 1  // z architecture mode is active\n\tstflef facility = 7  // store-facility-list-extended\n\tldisp  facility = 18 // long-displacement\n\teimm   facility = 21 // extended-immediate\n\n\t// miscellaneous facilities\n\tdfp    facility = 42 // decimal-floating-point\n\tetf3eh facility = 30 // extended-translation 3 enhancement\n\n\t// cryptography facilities\n\tmsa  facility = 17  // message-security-assist\n\tmsa3 facility = 76  // message-security-assist extension 3\n\tmsa4 facility = 77  // message-security-assist extension 4\n\tmsa5 facility = 57  // message-security-assist extension 5\n\tmsa8 facility = 146 // message-security-assist extension 8\n\tmsa9 facility = 155 // message-security-assist extension 9\n\n\t// vector facilities\n\tvx   facility = 129 // vector facility\n\tvxe  facility = 135 // vector-enhancements 1\n\tvxe2 facility = 148 // vector-enhancements 2\n)\n\n// facilityList contains the result of an STFLE call.\n// Bits are numbered in big endian order so the\n// leftmost bit (the MSB) is at index 0.\ntype facilityList struct {\n\tbits [4]uint64\n}\n\n// Has reports whether the given facilities are present.\nfunc (s *facilityList) Has(fs ...facility) bool {\n\tif len(fs) == 0 {\n\t\tpanic(\"no facility bits provided\")\n\t}\n\tfor _, f := range fs {\n\t\tif !bitIsSet(s.bits[:], uint(f)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// function is the code for the named cryptographic function.\ntype function uint8\n\nconst (\n\t// KM{,A,C,CTR} function codes\n\taes128 function = 18 // AES-128\n\taes192 function = 19 // AES-192\n\taes256 function = 20 // AES-256\n\n\t// K{I,L}MD function codes\n\tsha1     function = 1  // SHA-1\n\tsha256   function = 2  // SHA-256\n\tsha512   function = 3  // SHA-512\n\tsha3_224 function = 32 // SHA3-224\n\tsha3_256 function = 33 // SHA3-256\n\tsha3_384 function = 34 // SHA3-384\n\tsha3_512 function = 35 // SHA3-512\n\tshake128 function = 36 // SHAKE-128\n\tshake256 function = 37 // SHAKE-256\n\n\t// KLMD function codes\n\tghash function = 65 // GHASH\n)\n\n// queryResult contains the result of a Query function\n// call. Bits are numbered in big endian order so the\n// leftmost bit (the MSB) is at index 0.\ntype queryResult struct {\n\tbits [2]uint64\n}\n\n// Has reports whether the given functions are present.\nfunc (q *queryResult) Has(fns ...function) bool {\n\tif len(fns) == 0 {\n\t\tpanic(\"no function codes provided\")\n\t}\n\tfor _, f := range fns {\n\t\tif !bitIsSet(q.bits[:], uint(f)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc doinit() {\n\tinitS390Xbase()\n\n\t// We need implementations of stfle, km and so on\n\t// to detect cryptographic features.\n\tif !haveAsmFunctions() {\n\t\treturn\n\t}\n\n\t// optional cryptographic functions\n\tif S390X.HasMSA {\n\t\taes := []function{aes128, aes192, aes256}\n\n\t\t// cipher message\n\t\tkm, kmc := kmQuery(), kmcQuery()\n\t\tS390X.HasAES = km.Has(aes...)\n\t\tS390X.HasAESCBC = kmc.Has(aes...)\n\t\tif S390X.HasSTFLE {\n\t\t\tfacilities := stfle()\n\t\t\tif facilities.Has(msa4) {\n\t\t\t\tkmctr := kmctrQuery()\n\t\t\t\tS390X.HasAESCTR = kmctr.Has(aes...)\n\t\t\t}\n\t\t\tif facilities.Has(msa8) {\n\t\t\t\tkma := kmaQuery()\n\t\t\t\tS390X.HasAESGCM = kma.Has(aes...)\n\t\t\t}\n\t\t}\n\n\t\t// compute message digest\n\t\tkimd := kimdQuery() // intermediate (no padding)\n\t\tklmd := klmdQuery() // last (padding)\n\t\tS390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1)\n\t\tS390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256)\n\t\tS390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512)\n\t\tS390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist\n\t\tsha3 := []function{\n\t\t\tsha3_224, sha3_256, sha3_384, sha3_512,\n\t\t\tshake128, shake256,\n\t\t}\n\t\tS390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_s390x.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// func stfle() facilityList\nTEXT ·stfle(SB), NOSPLIT|NOFRAME, $0-32\n\tMOVD $ret+0(FP), R1\n\tMOVD $3, R0          // last doubleword index to store\n\tXC   $32, (R1), (R1) // clear 4 doublewords (32 bytes)\n\tWORD $0xb2b01000     // store facility list extended (STFLE)\n\tRET\n\n// func kmQuery() queryResult\nTEXT ·kmQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KM-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xB92E0024    // cipher message (KM)\n\tRET\n\n// func kmcQuery() queryResult\nTEXT ·kmcQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KMC-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xB92F0024    // cipher message with chaining (KMC)\n\tRET\n\n// func kmctrQuery() queryResult\nTEXT ·kmctrQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KMCTR-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xB92D4024    // cipher message with counter (KMCTR)\n\tRET\n\n// func kmaQuery() queryResult\nTEXT ·kmaQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KMA-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xb9296024    // cipher message with authentication (KMA)\n\tRET\n\n// func kimdQuery() queryResult\nTEXT ·kimdQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KIMD-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xB93E0024    // compute intermediate message digest (KIMD)\n\tRET\n\n// func klmdQuery() queryResult\nTEXT ·klmdQuery(SB), NOSPLIT|NOFRAME, $0-16\n\tMOVD $0, R0         // set function code to 0 (KLMD-Query)\n\tMOVD $ret+0(FP), R1 // address of 16-byte return value\n\tWORD $0xB93F0024    // compute last message digest (KLMD)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_wasm.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 wasm\n\npackage cpu\n\n// We're compiling the cpu package for an unknown (software-abstracted) CPU.\n// Make CacheLinePad an empty struct and hope that the usual struct alignment\n// rules are good enough.\n\nconst cacheLineSize = 0\n\nfunc initOptions() {}\n\nfunc archInit() {}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go",
    "content": "// Copyright 2026 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 cpu\n\nimport (\n\t\"golang.org/x/sys/windows\"\n)\n\nfunc doinit() {\n\t// set HasASIMD and HasFP to true as per\n\t// https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#base-requirements\n\t//\n\t// The ARM64 version of Windows always presupposes that it's running on an ARMv8 or later architecture.\n\t// Both floating-point and NEON support are presumed to be present in hardware.\n\t//\n\tARM64.HasASIMD = true\n\tARM64.HasFP = true\n\n\tif windows.IsProcessorFeaturePresent(windows.PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) {\n\t\tARM64.HasAES = true\n\t\tARM64.HasPMULL = true\n\t\tARM64.HasSHA1 = true\n\t\tARM64.HasSHA2 = true\n\t}\n\tARM64.HasSHA3 = windows.IsProcessorFeaturePresent(windows.PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE)\n\tARM64.HasCRC32 = windows.IsProcessorFeaturePresent(windows.PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE)\n\tARM64.HasSHA512 = windows.IsProcessorFeaturePresent(windows.PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE)\n\tARM64.HasATOMICS = windows.IsProcessorFeaturePresent(windows.PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE)\n\tif windows.IsProcessorFeaturePresent(windows.PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE) {\n\t\tARM64.HasASIMDDP = true\n\t\tARM64.HasASIMDRDM = true\n\t}\n\tif windows.IsProcessorFeaturePresent(windows.PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE) {\n\t\tARM64.HasLRCPC = true\n\t\tARM64.HasSM3 = true\n\t}\n\tARM64.HasSVE = windows.IsProcessorFeaturePresent(windows.PF_ARM_SVE_INSTRUCTIONS_AVAILABLE)\n\tARM64.HasSVE2 = windows.IsProcessorFeaturePresent(windows.PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE)\n\tARM64.HasJSCVT = windows.IsProcessorFeaturePresent(windows.PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_x86.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 386 || amd64 || amd64p32\n\npackage cpu\n\nimport \"runtime\"\n\nconst cacheLineSize = 64\n\nfunc initOptions() {\n\toptions = []option{\n\t\t{Name: \"adx\", Feature: &X86.HasADX},\n\t\t{Name: \"aes\", Feature: &X86.HasAES},\n\t\t{Name: \"avx\", Feature: &X86.HasAVX},\n\t\t{Name: \"avx2\", Feature: &X86.HasAVX2},\n\t\t{Name: \"avx512\", Feature: &X86.HasAVX512},\n\t\t{Name: \"avx512f\", Feature: &X86.HasAVX512F},\n\t\t{Name: \"avx512cd\", Feature: &X86.HasAVX512CD},\n\t\t{Name: \"avx512er\", Feature: &X86.HasAVX512ER},\n\t\t{Name: \"avx512pf\", Feature: &X86.HasAVX512PF},\n\t\t{Name: \"avx512vl\", Feature: &X86.HasAVX512VL},\n\t\t{Name: \"avx512bw\", Feature: &X86.HasAVX512BW},\n\t\t{Name: \"avx512dq\", Feature: &X86.HasAVX512DQ},\n\t\t{Name: \"avx512ifma\", Feature: &X86.HasAVX512IFMA},\n\t\t{Name: \"avx512vbmi\", Feature: &X86.HasAVX512VBMI},\n\t\t{Name: \"avx512vnniw\", Feature: &X86.HasAVX5124VNNIW},\n\t\t{Name: \"avx5124fmaps\", Feature: &X86.HasAVX5124FMAPS},\n\t\t{Name: \"avx512vpopcntdq\", Feature: &X86.HasAVX512VPOPCNTDQ},\n\t\t{Name: \"avx512vpclmulqdq\", Feature: &X86.HasAVX512VPCLMULQDQ},\n\t\t{Name: \"avx512vnni\", Feature: &X86.HasAVX512VNNI},\n\t\t{Name: \"avx512gfni\", Feature: &X86.HasAVX512GFNI},\n\t\t{Name: \"avx512vaes\", Feature: &X86.HasAVX512VAES},\n\t\t{Name: \"avx512vbmi2\", Feature: &X86.HasAVX512VBMI2},\n\t\t{Name: \"avx512bitalg\", Feature: &X86.HasAVX512BITALG},\n\t\t{Name: \"avx512bf16\", Feature: &X86.HasAVX512BF16},\n\t\t{Name: \"amxtile\", Feature: &X86.HasAMXTile},\n\t\t{Name: \"amxint8\", Feature: &X86.HasAMXInt8},\n\t\t{Name: \"amxbf16\", Feature: &X86.HasAMXBF16},\n\t\t{Name: \"bmi1\", Feature: &X86.HasBMI1},\n\t\t{Name: \"bmi2\", Feature: &X86.HasBMI2},\n\t\t{Name: \"cx16\", Feature: &X86.HasCX16},\n\t\t{Name: \"erms\", Feature: &X86.HasERMS},\n\t\t{Name: \"fma\", Feature: &X86.HasFMA},\n\t\t{Name: \"osxsave\", Feature: &X86.HasOSXSAVE},\n\t\t{Name: \"pclmulqdq\", Feature: &X86.HasPCLMULQDQ},\n\t\t{Name: \"popcnt\", Feature: &X86.HasPOPCNT},\n\t\t{Name: \"rdrand\", Feature: &X86.HasRDRAND},\n\t\t{Name: \"rdseed\", Feature: &X86.HasRDSEED},\n\t\t{Name: \"sse3\", Feature: &X86.HasSSE3},\n\t\t{Name: \"sse41\", Feature: &X86.HasSSE41},\n\t\t{Name: \"sse42\", Feature: &X86.HasSSE42},\n\t\t{Name: \"ssse3\", Feature: &X86.HasSSSE3},\n\t\t{Name: \"avxifma\", Feature: &X86.HasAVXIFMA},\n\t\t{Name: \"avxvnni\", Feature: &X86.HasAVXVNNI},\n\t\t{Name: \"avxvnniint8\", Feature: &X86.HasAVXVNNIInt8},\n\n\t\t// These capabilities should always be enabled on amd64:\n\t\t{Name: \"sse2\", Feature: &X86.HasSSE2, Required: runtime.GOARCH == \"amd64\"},\n\t}\n}\n\nfunc archInit() {\n\n\t// From internal/cpu\n\tconst (\n\t\t// eax bits\n\t\tcpuid_AVXVNNI = 1 << 4\n\n\t\t// ecx bits\n\t\tcpuid_SSE3            = 1 << 0\n\t\tcpuid_PCLMULQDQ       = 1 << 1\n\t\tcpuid_AVX512VBMI      = 1 << 1\n\t\tcpuid_AVX512VBMI2     = 1 << 6\n\t\tcpuid_SSSE3           = 1 << 9\n\t\tcpuid_AVX512GFNI      = 1 << 8\n\t\tcpuid_AVX512VAES      = 1 << 9\n\t\tcpuid_AVX512VNNI      = 1 << 11\n\t\tcpuid_AVX512BITALG    = 1 << 12\n\t\tcpuid_FMA             = 1 << 12\n\t\tcpuid_AVX512VPOPCNTDQ = 1 << 14\n\t\tcpuid_SSE41           = 1 << 19\n\t\tcpuid_SSE42           = 1 << 20\n\t\tcpuid_POPCNT          = 1 << 23\n\t\tcpuid_AES             = 1 << 25\n\t\tcpuid_OSXSAVE         = 1 << 27\n\t\tcpuid_AVX             = 1 << 28\n\n\t\t// \"Extended Feature Flag\" bits returned in EBX for CPUID EAX=0x7 ECX=0x0\n\t\tcpuid_BMI1     = 1 << 3\n\t\tcpuid_AVX2     = 1 << 5\n\t\tcpuid_BMI2     = 1 << 8\n\t\tcpuid_ERMS     = 1 << 9\n\t\tcpuid_AVX512F  = 1 << 16\n\t\tcpuid_AVX512DQ = 1 << 17\n\t\tcpuid_ADX      = 1 << 19\n\t\tcpuid_AVX512CD = 1 << 28\n\t\tcpuid_SHA      = 1 << 29\n\t\tcpuid_AVX512BW = 1 << 30\n\t\tcpuid_AVX512VL = 1 << 31\n\n\t\t// \"Extended Feature Flag\" bits returned in ECX for CPUID EAX=0x7 ECX=0x0\n\t\tcpuid_AVX512_VBMI      = 1 << 1\n\t\tcpuid_AVX512_VBMI2     = 1 << 6\n\t\tcpuid_GFNI             = 1 << 8\n\t\tcpuid_AVX512VPCLMULQDQ = 1 << 10\n\t\tcpuid_AVX512_BITALG    = 1 << 12\n\n\t\t// edx bits\n\t\tcpuid_FSRM = 1 << 4\n\t\t// edx bits for CPUID 0x80000001\n\t\tcpuid_RDTSCP = 1 << 27\n\t)\n\t// Additional constants not in internal/cpu\n\tconst (\n\t\t// eax=1: edx\n\t\tcpuid_SSE2 = 1 << 26\n\t\t// eax=1: ecx\n\t\tcpuid_CX16   = 1 << 13\n\t\tcpuid_RDRAND = 1 << 30\n\t\t// eax=7,ecx=0: ebx\n\t\tcpuid_RDSEED     = 1 << 18\n\t\tcpuid_AVX512IFMA = 1 << 21\n\t\tcpuid_AVX512PF   = 1 << 26\n\t\tcpuid_AVX512ER   = 1 << 27\n\t\t// eax=7,ecx=0: edx\n\t\tcpuid_AVX5124VNNIW = 1 << 2\n\t\tcpuid_AVX5124FMAPS = 1 << 3\n\t\tcpuid_AMXBF16      = 1 << 22\n\t\tcpuid_AMXTile      = 1 << 24\n\t\tcpuid_AMXInt8      = 1 << 25\n\t\t// eax=7,ecx=1: eax\n\t\tcpuid_AVX512BF16 = 1 << 5\n\t\tcpuid_AVXIFMA    = 1 << 23\n\t\t// eax=7,ecx=1: edx\n\t\tcpuid_AVXVNNIInt8 = 1 << 4\n\t)\n\n\tInitialized = true\n\n\tmaxID, _, _, _ := cpuid(0, 0)\n\n\tif maxID < 1 {\n\t\treturn\n\t}\n\n\t_, _, ecx1, edx1 := cpuid(1, 0)\n\tX86.HasSSE2 = isSet(edx1, cpuid_SSE2)\n\n\tX86.HasSSE3 = isSet(ecx1, cpuid_SSE3)\n\tX86.HasPCLMULQDQ = isSet(ecx1, cpuid_PCLMULQDQ)\n\tX86.HasSSSE3 = isSet(ecx1, cpuid_SSSE3)\n\tX86.HasFMA = isSet(ecx1, cpuid_FMA)\n\tX86.HasCX16 = isSet(ecx1, cpuid_CX16)\n\tX86.HasSSE41 = isSet(ecx1, cpuid_SSE41)\n\tX86.HasSSE42 = isSet(ecx1, cpuid_SSE42)\n\tX86.HasPOPCNT = isSet(ecx1, cpuid_POPCNT)\n\tX86.HasAES = isSet(ecx1, cpuid_AES)\n\tX86.HasOSXSAVE = isSet(ecx1, cpuid_OSXSAVE)\n\tX86.HasRDRAND = isSet(ecx1, cpuid_RDRAND)\n\n\tvar osSupportsAVX, osSupportsAVX512 bool\n\t// For XGETBV, OSXSAVE bit is required and sufficient.\n\tif X86.HasOSXSAVE {\n\t\teax, _ := xgetbv()\n\t\t// Check if XMM and YMM registers have OS support.\n\t\tosSupportsAVX = isSet(eax, 1<<1) && isSet(eax, 1<<2)\n\n\t\tif runtime.GOOS == \"darwin\" {\n\t\t\t// Darwin requires special AVX512 checks, see cpu_darwin_x86.go\n\t\t\tosSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512()\n\t\t} else {\n\t\t\t// Check if OPMASK and ZMM registers have OS support.\n\t\t\tosSupportsAVX512 = osSupportsAVX && isSet(eax, 1<<5) && isSet(eax, 1<<6) && isSet(eax, 1<<7)\n\t\t}\n\t}\n\n\tX86.HasAVX = isSet(ecx1, cpuid_AVX) && osSupportsAVX\n\n\tif maxID < 7 {\n\t\treturn\n\t}\n\n\teax7, ebx7, ecx7, edx7 := cpuid(7, 0)\n\tX86.HasBMI1 = isSet(ebx7, cpuid_BMI1)\n\tX86.HasAVX2 = isSet(ebx7, cpuid_AVX2) && osSupportsAVX\n\tX86.HasBMI2 = isSet(ebx7, cpuid_BMI2)\n\tX86.HasERMS = isSet(ebx7, cpuid_ERMS)\n\tX86.HasRDSEED = isSet(ebx7, cpuid_RDSEED)\n\tX86.HasADX = isSet(ebx7, cpuid_ADX)\n\n\tX86.HasAVX512 = isSet(ebx7, cpuid_AVX512F) && osSupportsAVX512 // Because avx-512 foundation is the core required extension\n\tif X86.HasAVX512 {\n\t\tX86.HasAVX512F = true\n\t\tX86.HasAVX512CD = isSet(ebx7, cpuid_AVX512CD)\n\t\tX86.HasAVX512ER = isSet(ebx7, cpuid_AVX512ER)\n\t\tX86.HasAVX512PF = isSet(ebx7, cpuid_AVX512PF)\n\t\tX86.HasAVX512VL = isSet(ebx7, cpuid_AVX512VL)\n\t\tX86.HasAVX512BW = isSet(ebx7, cpuid_AVX512BW)\n\t\tX86.HasAVX512DQ = isSet(ebx7, cpuid_AVX512DQ)\n\t\tX86.HasAVX512IFMA = isSet(ebx7, cpuid_AVX512IFMA)\n\t\tX86.HasAVX512VBMI = isSet(ecx7, cpuid_AVX512_VBMI)\n\t\tX86.HasAVX5124VNNIW = isSet(edx7, cpuid_AVX5124VNNIW)\n\t\tX86.HasAVX5124FMAPS = isSet(edx7, cpuid_AVX5124FMAPS)\n\t\tX86.HasAVX512VPOPCNTDQ = isSet(ecx7, cpuid_AVX512VPOPCNTDQ)\n\t\tX86.HasAVX512VPCLMULQDQ = isSet(ecx7, cpuid_AVX512VPCLMULQDQ)\n\t\tX86.HasAVX512VNNI = isSet(ecx7, cpuid_AVX512VNNI)\n\t\tX86.HasAVX512GFNI = isSet(ecx7, cpuid_AVX512GFNI)\n\t\tX86.HasAVX512VAES = isSet(ecx7, cpuid_AVX512VAES)\n\t\tX86.HasAVX512VBMI2 = isSet(ecx7, cpuid_AVX512VBMI2)\n\t\tX86.HasAVX512BITALG = isSet(ecx7, cpuid_AVX512BITALG)\n\t}\n\n\tX86.HasAMXTile = isSet(edx7, cpuid_AMXTile)\n\tX86.HasAMXInt8 = isSet(edx7, cpuid_AMXInt8)\n\tX86.HasAMXBF16 = isSet(edx7, cpuid_AMXBF16)\n\n\t// These features depend on the second level of extended features.\n\tif eax7 >= 1 {\n\t\teax71, _, _, edx71 := cpuid(7, 1)\n\t\tif X86.HasAVX512 {\n\t\t\tX86.HasAVX512BF16 = isSet(eax71, cpuid_AVX512BF16)\n\t\t}\n\t\tif X86.HasAVX {\n\t\t\tX86.HasAVXIFMA = isSet(eax71, cpuid_AVXIFMA)\n\t\t\tX86.HasAVXVNNI = isSet(eax71, cpuid_AVXVNNI)\n\t\t\tX86.HasAVXVNNIInt8 = isSet(edx71, cpuid_AVXVNNIInt8)\n\t\t}\n\t}\n}\n\nfunc isSet(hwc uint32, value uint32) bool {\n\treturn hwc&value != 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\npackage cpu\n\nfunc archInit() {\n\tdoinit()\n\tInitialized = true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/cpu_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\npackage cpu\n\nfunc initS390Xbase() {\n\t// get the facilities list\n\tfacilities := stfle()\n\n\t// mandatory\n\tS390X.HasZARCH = facilities.Has(zarch)\n\tS390X.HasSTFLE = facilities.Has(stflef)\n\tS390X.HasLDISP = facilities.Has(ldisp)\n\tS390X.HasEIMM = facilities.Has(eimm)\n\n\t// optional\n\tS390X.HasETF3EH = facilities.Has(etf3eh)\n\tS390X.HasDFP = facilities.Has(dfp)\n\tS390X.HasMSA = facilities.Has(msa)\n\tS390X.HasVX = facilities.Has(vx)\n\tif S390X.HasVX {\n\t\tS390X.HasVXE = facilities.Has(vxe)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/endian_big.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 armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64\n\npackage cpu\n\n// IsBigEndian records whether the GOARCH's byte order is big endian.\nconst IsBigEndian = true\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/endian_little.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 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh || wasm\n\npackage cpu\n\n// IsBigEndian records whether the GOARCH's byte order is big endian.\nconst IsBigEndian = false\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/hwcap_linux.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 cpu\n\nimport (\n\t\"os\"\n)\n\nconst (\n\t_AT_HWCAP  = 16\n\t_AT_HWCAP2 = 26\n\n\tprocAuxv = \"/proc/self/auxv\"\n\n\tuintSize = int(32 << (^uint(0) >> 63))\n)\n\n// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2\n// These are initialized in cpu_$GOARCH.go\n// and should not be changed after they are initialized.\nvar hwCap uint\nvar hwCap2 uint\n\nfunc readHWCAP() error {\n\t// For Go 1.21+, get auxv from the Go runtime.\n\tif a := getAuxv(); len(a) > 0 {\n\t\tfor len(a) >= 2 {\n\t\t\ttag, val := a[0], uint(a[1])\n\t\t\ta = a[2:]\n\t\t\tswitch tag {\n\t\t\tcase _AT_HWCAP:\n\t\t\t\thwCap = val\n\t\t\tcase _AT_HWCAP2:\n\t\t\t\thwCap2 = val\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tbuf, err := os.ReadFile(procAuxv)\n\tif err != nil {\n\t\t// e.g. on android /proc/self/auxv is not accessible, so silently\n\t\t// ignore the error and leave Initialized = false. On some\n\t\t// architectures (e.g. arm64) doinit() implements a fallback\n\t\t// readout and will set Initialized = true again.\n\t\treturn err\n\t}\n\tbo := hostByteOrder()\n\tfor len(buf) >= 2*(uintSize/8) {\n\t\tvar tag, val uint\n\t\tswitch uintSize {\n\t\tcase 32:\n\t\t\ttag = uint(bo.Uint32(buf[0:]))\n\t\t\tval = uint(bo.Uint32(buf[4:]))\n\t\t\tbuf = buf[8:]\n\t\tcase 64:\n\t\t\ttag = uint(bo.Uint64(buf[0:]))\n\t\t\tval = uint(bo.Uint64(buf[8:]))\n\t\t\tbuf = buf[16:]\n\t\t}\n\t\tswitch tag {\n\t\tcase _AT_HWCAP:\n\t\t\thwCap = val\n\t\tcase _AT_HWCAP2:\n\t\t\thwCap2 = val\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/parse.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\npackage cpu\n\nimport \"strconv\"\n\n// parseRelease parses a dot-separated version number. It follows the semver\n// syntax, but allows the minor and patch versions to be elided.\n//\n// This is a copy of the Go runtime's parseRelease from\n// https://golang.org/cl/209597.\nfunc parseRelease(rel string) (major, minor, patch int, ok bool) {\n\t// Strip anything after a dash or plus.\n\tfor i := range len(rel) {\n\t\tif rel[i] == '-' || rel[i] == '+' {\n\t\t\trel = rel[:i]\n\t\t\tbreak\n\t\t}\n\t}\n\n\tnext := func() (int, bool) {\n\t\tfor i := range len(rel) {\n\t\t\tif rel[i] == '.' {\n\t\t\t\tver, err := strconv.Atoi(rel[:i])\n\t\t\t\trel = rel[i+1:]\n\t\t\t\treturn ver, err == nil\n\t\t\t}\n\t\t}\n\t\tver, err := strconv.Atoi(rel)\n\t\trel = \"\"\n\t\treturn ver, err == nil\n\t}\n\tif major, ok = next(); !ok || rel == \"\" {\n\t\treturn\n\t}\n\tif minor, ok = next(); !ok || rel == \"\" {\n\t\treturn\n\t}\n\tpatch, ok = next()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.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 && arm64\n\npackage cpu\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc readLinuxProcCPUInfo() error {\n\tf, err := os.Open(\"/proc/cpuinfo\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer f.Close()\n\n\tvar buf [1 << 10]byte // enough for first CPU\n\tn, err := io.ReadFull(f, buf[:])\n\tif err != nil && err != io.ErrUnexpectedEOF {\n\t\treturn err\n\t}\n\tin := string(buf[:n])\n\tconst features = \"\\nFeatures\t: \"\n\ti := strings.Index(in, features)\n\tif i == -1 {\n\t\treturn errors.New(\"no CPU features found\")\n\t}\n\tin = in[i+len(features):]\n\tif i := strings.Index(in, \"\\n\"); i != -1 {\n\t\tin = in[:i]\n\t}\n\tm := map[string]*bool{}\n\n\tinitOptions() // need it early here; it's harmless to call twice\n\tfor _, o := range options {\n\t\tm[o.Name] = o.Feature\n\t}\n\t// The EVTSTRM field has alias \"evstrm\" in Go, but Linux calls it \"evtstrm\".\n\tm[\"evtstrm\"] = &ARM64.HasEVTSTRM\n\n\tfor _, f := range strings.Fields(in) {\n\t\tif p, ok := m[f]; ok {\n\t\t\t*p = true\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/runtime_auxv.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\npackage cpu\n\n// getAuxvFn is non-nil on Go 1.21+ (via runtime_auxv_go121.go init)\n// on platforms that use auxv.\nvar getAuxvFn func() []uintptr\n\nfunc getAuxv() []uintptr {\n\tif getAuxvFn == nil {\n\t\treturn nil\n\t}\n\treturn getAuxvFn()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/runtime_auxv_go121.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 go1.21\n\npackage cpu\n\nimport (\n\t_ \"unsafe\" // for linkname\n)\n\n//go:linkname runtime_getAuxv runtime.getAuxv\nfunc runtime_getAuxv() []uintptr\n\nfunc init() {\n\tgetAuxvFn = runtime_getAuxv\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.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// Recreate a getsystemcfg syscall handler instead of\n// using the one provided by x/sys/unix to avoid having\n// the dependency between them. (See golang.org/issue/32102)\n// Moreover, this file will be used during the building of\n// gccgo's libgo and thus must not used a CGo method.\n\n//go:build aix && gccgo\n\npackage cpu\n\nimport (\n\t\"syscall\"\n)\n\n//extern getsystemcfg\nfunc gccgoGetsystemcfg(label uint32) (r uint64)\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 syscall.Errno) {\n\tr1 = uintptr(gccgoGetsystemcfg(uint32(label)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.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// Minimal copy of x/sys/unix so the cpu package can make a\n// system call on AIX without depending on x/sys/unix.\n// (See golang.org/issue/32102)\n\n//go:build aix && ppc64 && gc\n\npackage cpu\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg \"libc.a/shr_64.o\"\n\n//go:linkname libc_getsystemcfg libc_getsystemcfg\n\ntype syscallFunc uintptr\n\nvar libc_getsystemcfg syscallFunc\n\ntype errno = syscall.Errno\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\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"
  },
  {
    "path": "vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.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// Minimal copy of x/sys/unix so the cpu package can make a\n// system call on Darwin without depending on x/sys/unix.\n\n//go:build darwin && amd64 && gc\n\npackage cpu\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\ntype _C_int int32\n\n// adapted from unix.Uname() at x/sys/unix/syscall_darwin.go L419\nfunc darwinOSRelease(release *[256]byte) error {\n\t// from x/sys/unix/zerrors_openbsd_amd64.go\n\tconst (\n\t\tCTL_KERN       = 0x1\n\t\tKERN_OSRELEASE = 0x2\n\t)\n\n\tmib := []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn := unsafe.Sizeof(*release)\n\n\treturn sysctl(mib, &release[0], &n, nil, 0)\n}\n\ntype Errno = syscall.Errno\n\nvar _zero uintptr // Single-word zero for use when we need a valid pointer to 0 bytes.\n\n// from x/sys/unix/zsyscall_darwin_amd64.go L791-807\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) 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\tif _, _, err := syscall_syscall6(\n\t\tlibc_sysctl_trampoline_addr,\n\t\tuintptr(_p0),\n\t\tuintptr(len(mib)),\n\t\tuintptr(unsafe.Pointer(old)),\n\t\tuintptr(unsafe.Pointer(oldlen)),\n\t\tuintptr(unsafe.Pointer(new)),\n\t\tuintptr(newlen),\n\t); err != 0 {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n// adapted from internal/cpu/cpu_arm64_darwin.go\nfunc darwinSysctlEnabled(name []byte) bool {\n\tout := int32(0)\n\tnout := unsafe.Sizeof(out)\n\tif ret := sysctlbyname(&name[0], (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); ret != nil {\n\t\treturn false\n\t}\n\treturn out > 0\n}\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\nvar libc_sysctlbyname_trampoline_addr uintptr\n\n// adapted from runtime/sys_darwin.go in the pattern of sysctl() above, as defined in x/sys/unix\nfunc sysctlbyname(name *byte, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error {\n\tif _, _, err := syscall_syscall6(\n\t\tlibc_sysctlbyname_trampoline_addr,\n\t\tuintptr(unsafe.Pointer(name)),\n\t\tuintptr(unsafe.Pointer(old)),\n\t\tuintptr(unsafe.Pointer(oldlen)),\n\t\tuintptr(unsafe.Pointer(new)),\n\t\tuintptr(newlen),\n\t\t0,\n\t); err != 0 {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n//go:cgo_import_dynamic libc_sysctlbyname sysctlbyname \"/usr/lib/libSystem.B.dylib\"\n\n// Implemented in the runtime package (runtime/sys_darwin.go)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall6 syscall.syscall6\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_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\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/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 identical 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\tclear(s[:])\n}\n\n// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity]\n// will silently ignore any invalid CPU bits in [CPUSet] so this is an\n// efficient way of resetting the CPU affinity of a process.\nfunc (s *CPUSet) Fill() {\n\tfor i := range s {\n\t\ts[i] = ^cpuMask(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/auxv.go",
    "content": "// Copyright 2025 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.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:linkname runtime_getAuxv runtime.getAuxv\nfunc runtime_getAuxv() []uintptr\n\n// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs.\n// The returned slice is always a fresh copy, owned by the caller.\n// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed,\n// which happens in some locked-down environments and build modes.\nfunc Auxv() ([][2]uintptr, error) {\n\tvec := runtime_getAuxv()\n\tvecLen := len(vec)\n\n\tif vecLen == 0 {\n\t\treturn nil, syscall.ENOENT\n\t}\n\n\tif vecLen%2 != 0 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\n\tresult := make([]uintptr, vecLen)\n\tcopy(result, vec)\n\treturn unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/auxv_unsupported.go",
    "content": "// Copyright 2025 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.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport \"syscall\"\n\nfunc Auxv() ([][2]uintptr, error) {\n\treturn nil, syscall.ENOTSUP\n}\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\tclear(fds.Bits[:])\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\tclear(ifr.raw.Ifru[:])\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// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC\n// association for the network device specified by ifname.\nfunc IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetHwTstamp retrieves the hardware timestamping configuration\n// for the network device specified by ifname.\nfunc IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := HwTstampConfig{}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd)\n\treturn &value, err\n}\n\n// IoctlSetHwTstamp updates the hardware timestamping configuration for\n// the network device specified by ifname.\nfunc IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn err\n\t}\n\tifrd := ifr.withData(unsafe.Pointer(cfg))\n\treturn ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd)\n}\n\n// FdToClockID derives the clock ID from the file descriptor number\n// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is\n// suitable for system calls like ClockGettime.\nfunc FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) }\n\n// IoctlPtpClockGetcaps returns the description of a given PTP device.\nfunc IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) {\n\tvar value PtpClockCaps\n\terr := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetPrecise returns a description of the clock\n// offset compared to the system clock.\nfunc IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) {\n\tvar value PtpSysOffsetPrecise\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetExtended returns an extended description of the\n// clock offset compared to the system clock. The samples parameter\n// specifies the desired number of measurements.\nfunc IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) {\n\tvalue := PtpSysOffsetExtended{Samples: uint32(samples)}\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinGetfunc returns the configuration of the specified\n// I/O pin on given PTP device.\nfunc IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) {\n\tvalue := PtpPinDesc{Index: uint32(index)}\n\terr := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinSetfunc updates configuration of the specified PTP\n// I/O pin.\nfunc IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error {\n\treturn ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd))\n}\n\n// IoctlPtpPeroutRequest configures the periodic output mode of the\n// PTP I/O pins.\nfunc IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error {\n\treturn ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r))\n}\n\n// IoctlPtpExttsRequest configures the external timestamping mode\n// of the PTP I/O pins.\nfunc IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error {\n\treturn ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r))\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 \"unsafe\"\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// IoctlSetString performs an ioctl operation which sets a string value\n// on fd, using the specified request number.\nfunc IoctlSetString(fd int, req int, value string) error {\n\tbs := append([]byte(value), 0)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\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 \"unsafe\"\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// IoctlSetString performs an ioctl operation which sets a string value\n// on fd, using the specified request number.\nfunc IoctlSetString(fd int, req uint, value string) error {\n\tbs := append([]byte(value), 0)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\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\tset -e\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// See the description in unix/linux/types.go\n#if defined(__ARM_EABI__) || \\\n\t(defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \\\n\t(defined(__powerpc__) && (!defined(__powerpc64__)))\n# ifdef   _TIME_BITS\n#  undef  _TIME_BITS\n# endif\n# define  _TIME_BITS 32\n#endif\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/elf.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/mei.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/ptp_clock.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// Renamed in v6.16, commit c6d732c38f93 (\"net: ethtool: remove duplicate defines for family info\")\n#define ETHTOOL_FAMILY_NAME\tETHTOOL_GENL_NAME\n#define ETHTOOL_FAMILY_VERSION\tETHTOOL_GENL_VERSION\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 ~ /^(DT|EI|ELF|EV|NN|NT|PF|SHF|SHN|SHT|STB|STT|VER)_/ ||\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 ~ /^PTP_/ ||\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 ~ /^(CONNECT|SAE)_/ ||\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_|IOCTL_MEI_)/ ||\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 -E -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 -E -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 process 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// Connectx calls connectx(2) to initiate a connection on a socket.\n//\n// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument.\n//\n//   - srcIf is the optional source interface index. 0 means unspecified.\n//   - srcAddr is the optional source address. nil means unspecified.\n//   - dstAddr is the destination address.\n//\n// On success, Connectx returns the number of bytes enqueued for transmission.\nfunc Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) {\n\tendpoints := SaEndpoints{\n\t\tSrcif: srcIf,\n\t}\n\n\tif srcAddr != nil {\n\t\taddrp, addrlen, err := srcAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Srcaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Srcaddrlen = uint32(addrlen)\n\t}\n\n\tif dstAddr != nil {\n\t\taddrp, addrlen, err := dstAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Dstaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Dstaddrlen = uint32(addrlen)\n\t}\n\n\terr = connectx(fd, &endpoints, associd, flags, iov, &n, connid)\n\treturn\n}\n\nconst minIovec = 8\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\tn, err = preadv(fd, iovecs, offset)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\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\tn, err = pwritev(fd, iovecs, offset)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\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\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\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\n//sys\tconnectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)\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//sys\treadv(fd int, iovecs []Iovec) (n int, err error)\n//sys\tpreadv(fd int, iovecs []Iovec, offset int64) (n int, err error)\n//sys\twritev(fd int, iovecs []Iovec) (n int, err error)\n//sys\tpwritev(fd int, iovecs []Iovec, offset int64) (n int, 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\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\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\"\nimport \"unsafe\"\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\"slices\"\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 := range n {\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 := range len(sa.Addr) {\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 := range 4 {\n\t\tsa.raw.Addr[i] = rx[i]\n\t}\n\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\tfor i := range 4 {\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 := range 8 {\n\t\tsa.raw.Addr[i] = n[i]\n\t}\n\tp := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\tfor i := range 4 {\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\tclear(sa.raw[14 : 14+IFNAMSIZ])\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 := range 8 {\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 := range 8 {\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 := range 8 {\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 := range 4 {\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 := range 4 {\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 := range 4 {\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// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the \"vegas\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPVegasInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the \"dctp\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the \"bbr\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPBBRInfo)(unsafe.Pointer(&value[0]))\n\treturn out, 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\tClockSettime(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\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvdsoRet, supported := vgetrandom(buf, uint32(flags))\n\tif supported {\n\t\tif vdsoRet < 0 {\n\t\t\treturn 0, errnoErr(syscall.Errno(-vdsoRet))\n\t\t}\n\t\treturn vdsoRet, nil\n\t}\n\tvar p *byte\n\tif len(buf) > 0 {\n\t\tp = &buf[0]\n\t}\n\tr, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags))\n\tif e != 0 {\n\t\treturn 0, errnoErr(e)\n\t}\n\treturn int(r), nil\n}\n\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 := min(int(iovecs[i].Len), n)\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 := min(int(iovecs[i].Len), n)\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\treturn slices.Contains(groups, gid)\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\n//sys\tsetMemPolicy(mode int, mask *CPUSet, size int) (err error) = SYS_SET_MEMPOLICY\n\nfunc SetMemPolicy(mode int, mask *CPUSet) error {\n\treturn setMemPolicy(mode, mask, _CPU_SETSIZE)\n}\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\nconst SYS_FSTATAT = SYS_NEWFSTATAT\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\nconst SYS_FSTATAT = SYS_NEWFSTATAT\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\nconst SYS_FSTATAT = SYS_NEWFSTATAT\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\nfunc Getvfsstat(buf []Statvfs_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(Statvfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\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_listen\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\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\n// Ucred Helpers\n// See ucred(3c) and getpeerucred(3c)\n\n//sys\tgetpeerucred(fd uintptr, ucred *uintptr) (err error)\n//sys\tucredFree(ucred uintptr) = ucred_free\n//sys\tucredGet(pid int) (ucred uintptr, err error) = ucred_get\n//sys\tucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid\n//sys\tucredGetegid(ucred uintptr) (gid int) = ucred_getegid\n//sys\tucredGetruid(ucred uintptr) (uid int) = ucred_getruid\n//sys\tucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid\n//sys\tucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid\n//sys\tucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid\n//sys\tucredGetpid(ucred uintptr) (pid int) = ucred_getpid\n\n// Ucred is an opaque struct that holds user credentials.\ntype Ucred struct {\n\tucred uintptr\n}\n\n// We need to ensure that ucredFree is called on the underlying ucred\n// when the Ucred is garbage collected.\nfunc ucredFinalizer(u *Ucred) {\n\tucredFree(u.ucred)\n}\n\nfunc GetPeerUcred(fd uintptr) (*Ucred, error) {\n\tvar ucred uintptr\n\terr := getpeerucred(fd, &ucred)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc UcredGet(pid int) (*Ucred, error) {\n\tucred, err := ucredGet(pid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc (u *Ucred) Geteuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGeteuid(u.ucred)\n}\n\nfunc (u *Ucred) Getruid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetruid(u.ucred)\n}\n\nfunc (u *Ucred) Getsuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsuid(u.ucred)\n}\n\nfunc (u *Ucred) Getegid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetegid(u.ucred)\n}\n\nfunc (u *Ucred) Getrgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetrgid(u.ucred)\n}\n\nfunc (u *Ucred) Getsgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsgid(u.ucred)\n}\n\nfunc (u *Ucred) Getpid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetpid(u.ucred)\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\tif n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa); err != nil {\n\t\treturn\n\t}\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\tif n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa); 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// 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\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\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{'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'},\n\t\t{'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'},\n\t\t{'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'},\n\t\t{'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\nfunc fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), 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\nfunc Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) {\n\tswitch op.(type) {\n\tcase *Flock_t:\n\t\terr = FcntlFlock(fd, cmd, op.(*Flock_t))\n\t\tif err != nil {\n\t\t\tret = -1\n\t\t}\n\t\treturn\n\tcase int:\n\t\treturn FcntlInt(fd, cmd, op.(int))\n\tcase *F_cnvrt:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt))))\n\tcase unsafe.Pointer:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer)))\n\tdefault:\n\t\treturn -1, EINVAL\n\t}\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\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\t// TODO: use LE call instead if the call is implemented\n\toriginalOffset, err := Seek(infd, 0, SEEK_CUR)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\t//start reading data from in_fd\n\tif offset != nil {\n\t\t_, err := Seek(infd, *offset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\n\tbuf := make([]byte, count)\n\treadBuf := make([]byte, 0)\n\tvar n int = 0\n\tfor i := 0; i < count; i += n {\n\t\tn, err := Read(infd, buf)\n\t\tif n == 0 {\n\t\t\tif err != nil {\n\t\t\t\treturn -1, err\n\t\t\t} else { // EOF\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treadBuf = append(readBuf, buf...)\n\t\tbuf = buf[0:0]\n\t}\n\n\tn2, err := Write(outfd, readBuf)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\t//When sendfile() returns, this variable will be set to the\n\t// offset of the byte following the last byte that was read.\n\tif offset != nil {\n\t\t*offset = *offset + int64(n)\n\t\t// If offset is not NULL, then sendfile() does not modify the file\n\t\t// offset of in_fd\n\t\t_, err := Seek(infd, originalOffset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\treturn n2, nil\n}\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/vgetrandom_linux.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 linux && go1.24\n\npackage unix\n\nimport _ \"unsafe\"\n\n//go:linkname vgetrandom runtime.vgetrandom\n//go:noescape\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/vgetrandom_unsupported.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 !linux || !go1.24\n\npackage unix\n\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool) {\n\treturn -1, false\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\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\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\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 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\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\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\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 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_INTEGRITY_USERSPACE                   = 0x710\n\tAUDIT_IPC                                   = 0x517\n\tAUDIT_IPC_SET_PERM                          = 0x51f\n\tAUDIT_IPE_ACCESS                            = 0x58c\n\tAUDIT_IPE_CONFIG_CHANGE                     = 0x58d\n\tAUDIT_IPE_POLICY_LOAD                       = 0x58e\n\tAUDIT_KERNEL                                = 0x7d0\n\tAUDIT_KERNEL_OTHER                          = 0x524\n\tAUDIT_KERN_MODULE                           = 0x532\n\tAUDIT_LANDLOCK_ACCESS                       = 0x58f\n\tAUDIT_LANDLOCK_DOMAIN                       = 0x590\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_PREORDER                              = 0x40\n\tBPF_F_QUERY_EFFECTIVE                       = 0x1\n\tBPF_F_REDIRECT_FLAGS                        = 0x19\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_SKB_CHECKSUM_COMPLETE            = 0x4\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_LOAD_ACQ                                = 0x100\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_STORE_REL                               = 0x110\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 (2025-04-28)\"\n\tDM_VERSION_MAJOR                            = 0x4\n\tDM_VERSION_MINOR                            = 0x32\n\tDM_VERSION_PATCHLEVEL                       = 0x0\n\tDT_ADDRRNGHI                                = 0x6ffffeff\n\tDT_ADDRRNGLO                                = 0x6ffffe00\n\tDT_BLK                                      = 0x6\n\tDT_CHR                                      = 0x2\n\tDT_DEBUG                                    = 0x15\n\tDT_DIR                                      = 0x4\n\tDT_ENCODING                                 = 0x20\n\tDT_FIFO                                     = 0x1\n\tDT_FINI                                     = 0xd\n\tDT_FLAGS_1                                  = 0x6ffffffb\n\tDT_GNU_HASH                                 = 0x6ffffef5\n\tDT_HASH                                     = 0x4\n\tDT_HIOS                                     = 0x6ffff000\n\tDT_HIPROC                                   = 0x7fffffff\n\tDT_INIT                                     = 0xc\n\tDT_JMPREL                                   = 0x17\n\tDT_LNK                                      = 0xa\n\tDT_LOOS                                     = 0x6000000d\n\tDT_LOPROC                                   = 0x70000000\n\tDT_NEEDED                                   = 0x1\n\tDT_NULL                                     = 0x0\n\tDT_PLTGOT                                   = 0x3\n\tDT_PLTREL                                   = 0x14\n\tDT_PLTRELSZ                                 = 0x2\n\tDT_REG                                      = 0x8\n\tDT_REL                                      = 0x11\n\tDT_RELA                                     = 0x7\n\tDT_RELACOUNT                                = 0x6ffffff9\n\tDT_RELAENT                                  = 0x9\n\tDT_RELASZ                                   = 0x8\n\tDT_RELCOUNT                                 = 0x6ffffffa\n\tDT_RELENT                                   = 0x13\n\tDT_RELSZ                                    = 0x12\n\tDT_RPATH                                    = 0xf\n\tDT_SOCK                                     = 0xc\n\tDT_SONAME                                   = 0xe\n\tDT_STRSZ                                    = 0xa\n\tDT_STRTAB                                   = 0x5\n\tDT_SYMBOLIC                                 = 0x10\n\tDT_SYMENT                                   = 0xb\n\tDT_SYMTAB                                   = 0x6\n\tDT_TEXTREL                                  = 0x16\n\tDT_UNKNOWN                                  = 0x0\n\tDT_VALRNGHI                                 = 0x6ffffdff\n\tDT_VALRNGLO                                 = 0x6ffffd00\n\tDT_VERDEF                                   = 0x6ffffffc\n\tDT_VERDEFNUM                                = 0x6ffffffd\n\tDT_VERNEED                                  = 0x6ffffffe\n\tDT_VERNEEDNUM                               = 0x6fffffff\n\tDT_VERSYM                                   = 0x6ffffff0\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\tEI_CLASS                                    = 0x4\n\tEI_DATA                                     = 0x5\n\tEI_MAG0                                     = 0x0\n\tEI_MAG1                                     = 0x1\n\tEI_MAG2                                     = 0x2\n\tEI_MAG3                                     = 0x3\n\tEI_NIDENT                                   = 0x10\n\tEI_OSABI                                    = 0x7\n\tEI_PAD                                      = 0x8\n\tEI_VERSION                                  = 0x6\n\tELFCLASS32                                  = 0x1\n\tELFCLASS64                                  = 0x2\n\tELFCLASSNONE                                = 0x0\n\tELFCLASSNUM                                 = 0x3\n\tELFDATA2LSB                                 = 0x1\n\tELFDATA2MSB                                 = 0x2\n\tELFDATANONE                                 = 0x0\n\tELFMAG                                      = \"\\177ELF\"\n\tELFMAG0                                     = 0x7f\n\tELFMAG1                                     = 'E'\n\tELFMAG2                                     = 'L'\n\tELFMAG3                                     = 'F'\n\tELFOSABI_LINUX                              = 0x3\n\tELFOSABI_NONE                               = 0x0\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\tETHTOOL_BUSINFO_LEN                         = 0x20\n\tETHTOOL_EROMVERS_LEN                        = 0x20\n\tETHTOOL_FAMILY_NAME                         = \"ethtool\"\n\tETHTOOL_FAMILY_VERSION                      = 0x1\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\tET_CORE                                     = 0x4\n\tET_DYN                                      = 0x3\n\tET_EXEC                                     = 0x2\n\tET_HIPROC                                   = 0xffff\n\tET_LOPROC                                   = 0xff00\n\tET_NONE                                     = 0x0\n\tET_REL                                      = 0x1\n\tEV_ABS                                      = 0x3\n\tEV_CNT                                      = 0x20\n\tEV_CURRENT                                  = 0x1\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_NONE                                     = 0x0\n\tEV_NUM                                      = 0x2\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_ALLOCATE_RANGE                    = 0x0\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_ERRNO_BITS                              = 0x8\n\tFAN_ERRNO_MASK                              = 0xff\n\tFAN_ERRNO_SHIFT                             = 0x18\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_MNT                     = 0x7\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_INFO_TYPE_RANGE                   = 0x6\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_MNTNS                              = 0x110\n\tFAN_MARK_MOUNT                              = 0x10\n\tFAN_MARK_ONLYDIR                            = 0x8\n\tFAN_MARK_REMOVE                             = 0x2\n\tFAN_MNT_ATTACH                              = 0x1000000\n\tFAN_MNT_DETACH                              = 0x2000000\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_PRE_ACCESS                              = 0x100000\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_FD_ERROR                         = 0x2000\n\tFAN_REPORT_FID                              = 0x200\n\tFAN_REPORT_MNT                              = 0x4000\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_ADD_KEY_FLAG_HW_WRAPPED             = 0x1\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_CREATED_QUERY                             = 0x404\n\tF_DUPFD                                     = 0x0\n\tF_DUPFD_CLOEXEC                             = 0x406\n\tF_DUPFD_QUERY                               = 0x403\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\tIOCTL_MEI_CONNECT_CLIENT                    = 0xc0104801\n\tIOCTL_MEI_CONNECT_CLIENT_VTAG               = 0xc0144804\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_SMC                                 = 0x100\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_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_V6ONLY                                 = 0x1a\n\tIPV6_VERSION                                = 0x60\n\tIPV6_VERSION_MASK                           = 0xf0\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_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_ERRATA              = 0x2\n\tLANDLOCK_CREATE_RULESET_VERSION             = 0x1\n\tLANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON      = 0x2\n\tLANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF    = 0x1\n\tLANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF   = 0x4\n\tLANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1\n\tLANDLOCK_SCOPE_SIGNAL                       = 0x2\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_DROPPABLE                               = 0x8\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\tMNT_ID_REQ_SIZE_VER1                        = 0x20\n\tMNT_NS_INFO_SIZE_VER0                       = 0x10\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_SOCK_DEVMEM                             = 0x2000000\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_ATS_MAXSIZE                             = 0x14\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_BITWISE_BOOL                            = 0x0\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                      = 0x1000\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\tNN_386_IOPERM                               = \"LINUX\"\n\tNN_386_TLS                                  = \"LINUX\"\n\tNN_ARC_V2                                   = \"LINUX\"\n\tNN_ARM_FPMR                                 = \"LINUX\"\n\tNN_ARM_GCS                                  = \"LINUX\"\n\tNN_ARM_HW_BREAK                             = \"LINUX\"\n\tNN_ARM_HW_WATCH                             = \"LINUX\"\n\tNN_ARM_PACA_KEYS                            = \"LINUX\"\n\tNN_ARM_PACG_KEYS                            = \"LINUX\"\n\tNN_ARM_PAC_ENABLED_KEYS                     = \"LINUX\"\n\tNN_ARM_PAC_MASK                             = \"LINUX\"\n\tNN_ARM_POE                                  = \"LINUX\"\n\tNN_ARM_SSVE                                 = \"LINUX\"\n\tNN_ARM_SVE                                  = \"LINUX\"\n\tNN_ARM_SYSTEM_CALL                          = \"LINUX\"\n\tNN_ARM_TAGGED_ADDR_CTRL                     = \"LINUX\"\n\tNN_ARM_TLS                                  = \"LINUX\"\n\tNN_ARM_VFP                                  = \"LINUX\"\n\tNN_ARM_ZA                                   = \"LINUX\"\n\tNN_ARM_ZT                                   = \"LINUX\"\n\tNN_AUXV                                     = \"CORE\"\n\tNN_FILE                                     = \"CORE\"\n\tNN_GNU_PROPERTY_TYPE_0                      = \"GNU\"\n\tNN_LOONGARCH_CPUCFG                         = \"LINUX\"\n\tNN_LOONGARCH_CSR                            = \"LINUX\"\n\tNN_LOONGARCH_HW_BREAK                       = \"LINUX\"\n\tNN_LOONGARCH_HW_WATCH                       = \"LINUX\"\n\tNN_LOONGARCH_LASX                           = \"LINUX\"\n\tNN_LOONGARCH_LBT                            = \"LINUX\"\n\tNN_LOONGARCH_LSX                            = \"LINUX\"\n\tNN_MIPS_DSP                                 = \"LINUX\"\n\tNN_MIPS_FP_MODE                             = \"LINUX\"\n\tNN_MIPS_MSA                                 = \"LINUX\"\n\tNN_PPC_DEXCR                                = \"LINUX\"\n\tNN_PPC_DSCR                                 = \"LINUX\"\n\tNN_PPC_EBB                                  = \"LINUX\"\n\tNN_PPC_HASHKEYR                             = \"LINUX\"\n\tNN_PPC_PKEY                                 = \"LINUX\"\n\tNN_PPC_PMU                                  = \"LINUX\"\n\tNN_PPC_PPR                                  = \"LINUX\"\n\tNN_PPC_SPE                                  = \"LINUX\"\n\tNN_PPC_TAR                                  = \"LINUX\"\n\tNN_PPC_TM_CDSCR                             = \"LINUX\"\n\tNN_PPC_TM_CFPR                              = \"LINUX\"\n\tNN_PPC_TM_CGPR                              = \"LINUX\"\n\tNN_PPC_TM_CPPR                              = \"LINUX\"\n\tNN_PPC_TM_CTAR                              = \"LINUX\"\n\tNN_PPC_TM_CVMX                              = \"LINUX\"\n\tNN_PPC_TM_CVSX                              = \"LINUX\"\n\tNN_PPC_TM_SPR                               = \"LINUX\"\n\tNN_PPC_VMX                                  = \"LINUX\"\n\tNN_PPC_VSX                                  = \"LINUX\"\n\tNN_PRFPREG                                  = \"CORE\"\n\tNN_PRPSINFO                                 = \"CORE\"\n\tNN_PRSTATUS                                 = \"CORE\"\n\tNN_PRXFPREG                                 = \"LINUX\"\n\tNN_RISCV_CSR                                = \"LINUX\"\n\tNN_RISCV_TAGGED_ADDR_CTRL                   = \"LINUX\"\n\tNN_RISCV_VECTOR                             = \"LINUX\"\n\tNN_S390_CTRS                                = \"LINUX\"\n\tNN_S390_GS_BC                               = \"LINUX\"\n\tNN_S390_GS_CB                               = \"LINUX\"\n\tNN_S390_HIGH_GPRS                           = \"LINUX\"\n\tNN_S390_LAST_BREAK                          = \"LINUX\"\n\tNN_S390_PREFIX                              = \"LINUX\"\n\tNN_S390_PV_CPU_DATA                         = \"LINUX\"\n\tNN_S390_RI_CB                               = \"LINUX\"\n\tNN_S390_SYSTEM_CALL                         = \"LINUX\"\n\tNN_S390_TDB                                 = \"LINUX\"\n\tNN_S390_TIMER                               = \"LINUX\"\n\tNN_S390_TODCMP                              = \"LINUX\"\n\tNN_S390_TODPREG                             = \"LINUX\"\n\tNN_S390_VXRS_HIGH                           = \"LINUX\"\n\tNN_S390_VXRS_LOW                            = \"LINUX\"\n\tNN_SIGINFO                                  = \"CORE\"\n\tNN_TASKSTRUCT                               = \"CORE\"\n\tNN_VMCOREDD                                 = \"LINUX\"\n\tNN_X86_SHSTK                                = \"LINUX\"\n\tNN_X86_XSAVE_LAYOUT                         = \"LINUX\"\n\tNN_X86_XSTATE                               = \"LINUX\"\n\tNSFS_MAGIC                                  = 0x6e736673\n\tNT_386_IOPERM                               = 0x201\n\tNT_386_TLS                                  = 0x200\n\tNT_ARC_V2                                   = 0x600\n\tNT_ARM_FPMR                                 = 0x40e\n\tNT_ARM_GCS                                  = 0x410\n\tNT_ARM_HW_BREAK                             = 0x402\n\tNT_ARM_HW_WATCH                             = 0x403\n\tNT_ARM_PACA_KEYS                            = 0x407\n\tNT_ARM_PACG_KEYS                            = 0x408\n\tNT_ARM_PAC_ENABLED_KEYS                     = 0x40a\n\tNT_ARM_PAC_MASK                             = 0x406\n\tNT_ARM_POE                                  = 0x40f\n\tNT_ARM_SSVE                                 = 0x40b\n\tNT_ARM_SVE                                  = 0x405\n\tNT_ARM_SYSTEM_CALL                          = 0x404\n\tNT_ARM_TAGGED_ADDR_CTRL                     = 0x409\n\tNT_ARM_TLS                                  = 0x401\n\tNT_ARM_VFP                                  = 0x400\n\tNT_ARM_ZA                                   = 0x40c\n\tNT_ARM_ZT                                   = 0x40d\n\tNT_AUXV                                     = 0x6\n\tNT_FILE                                     = 0x46494c45\n\tNT_GNU_PROPERTY_TYPE_0                      = 0x5\n\tNT_LOONGARCH_CPUCFG                         = 0xa00\n\tNT_LOONGARCH_CSR                            = 0xa01\n\tNT_LOONGARCH_HW_BREAK                       = 0xa05\n\tNT_LOONGARCH_HW_WATCH                       = 0xa06\n\tNT_LOONGARCH_LASX                           = 0xa03\n\tNT_LOONGARCH_LBT                            = 0xa04\n\tNT_LOONGARCH_LSX                            = 0xa02\n\tNT_MIPS_DSP                                 = 0x800\n\tNT_MIPS_FP_MODE                             = 0x801\n\tNT_MIPS_MSA                                 = 0x802\n\tNT_PPC_DEXCR                                = 0x111\n\tNT_PPC_DSCR                                 = 0x105\n\tNT_PPC_EBB                                  = 0x106\n\tNT_PPC_HASHKEYR                             = 0x112\n\tNT_PPC_PKEY                                 = 0x110\n\tNT_PPC_PMU                                  = 0x107\n\tNT_PPC_PPR                                  = 0x104\n\tNT_PPC_SPE                                  = 0x101\n\tNT_PPC_TAR                                  = 0x103\n\tNT_PPC_TM_CDSCR                             = 0x10f\n\tNT_PPC_TM_CFPR                              = 0x109\n\tNT_PPC_TM_CGPR                              = 0x108\n\tNT_PPC_TM_CPPR                              = 0x10e\n\tNT_PPC_TM_CTAR                              = 0x10d\n\tNT_PPC_TM_CVMX                              = 0x10a\n\tNT_PPC_TM_CVSX                              = 0x10b\n\tNT_PPC_TM_SPR                               = 0x10c\n\tNT_PPC_VMX                                  = 0x100\n\tNT_PPC_VSX                                  = 0x102\n\tNT_PRFPREG                                  = 0x2\n\tNT_PRPSINFO                                 = 0x3\n\tNT_PRSTATUS                                 = 0x1\n\tNT_PRXFPREG                                 = 0x46e62b7f\n\tNT_RISCV_CSR                                = 0x900\n\tNT_RISCV_TAGGED_ADDR_CTRL                   = 0x902\n\tNT_RISCV_VECTOR                             = 0x901\n\tNT_S390_CTRS                                = 0x304\n\tNT_S390_GS_BC                               = 0x30c\n\tNT_S390_GS_CB                               = 0x30b\n\tNT_S390_HIGH_GPRS                           = 0x300\n\tNT_S390_LAST_BREAK                          = 0x306\n\tNT_S390_PREFIX                              = 0x305\n\tNT_S390_PV_CPU_DATA                         = 0x30e\n\tNT_S390_RI_CB                               = 0x30d\n\tNT_S390_SYSTEM_CALL                         = 0x307\n\tNT_S390_TDB                                 = 0x308\n\tNT_S390_TIMER                               = 0x301\n\tNT_S390_TODCMP                              = 0x302\n\tNT_S390_TODPREG                             = 0x303\n\tNT_S390_VXRS_HIGH                           = 0x30a\n\tNT_S390_VXRS_LOW                            = 0x309\n\tNT_SIGINFO                                  = 0x53494749\n\tNT_TASKSTRUCT                               = 0x4\n\tNT_VMCOREDD                                 = 0x700\n\tNT_X86_SHSTK                                = 0x204\n\tNT_X86_XSAVE_LAYOUT                         = 0x205\n\tNT_X86_XSTATE                               = 0x202\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_L2_MHB                      = 0x5\n\tPERF_MEM_LVLNUM_L3                          = 0x3\n\tPERF_MEM_LVLNUM_L4                          = 0x4\n\tPERF_MEM_LVLNUM_LFB                         = 0xc\n\tPERF_MEM_LVLNUM_MSC                         = 0x6\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\tPF_ALG                                      = 0x26\n\tPF_APPLETALK                                = 0x5\n\tPF_ASH                                      = 0x12\n\tPF_ATMPVC                                   = 0x8\n\tPF_ATMSVC                                   = 0x14\n\tPF_AX25                                     = 0x3\n\tPF_BLUETOOTH                                = 0x1f\n\tPF_BRIDGE                                   = 0x7\n\tPF_CAIF                                     = 0x25\n\tPF_CAN                                      = 0x1d\n\tPF_DECnet                                   = 0xc\n\tPF_ECONET                                   = 0x13\n\tPF_FILE                                     = 0x1\n\tPF_IB                                       = 0x1b\n\tPF_IEEE802154                               = 0x24\n\tPF_INET                                     = 0x2\n\tPF_INET6                                    = 0xa\n\tPF_IPX                                      = 0x4\n\tPF_IRDA                                     = 0x17\n\tPF_ISDN                                     = 0x22\n\tPF_IUCV                                     = 0x20\n\tPF_KCM                                      = 0x29\n\tPF_KEY                                      = 0xf\n\tPF_LLC                                      = 0x1a\n\tPF_LOCAL                                    = 0x1\n\tPF_MAX                                      = 0x2e\n\tPF_MCTP                                     = 0x2d\n\tPF_MPLS                                     = 0x1c\n\tPF_NETBEUI                                  = 0xd\n\tPF_NETLINK                                  = 0x10\n\tPF_NETROM                                   = 0x6\n\tPF_NFC                                      = 0x27\n\tPF_PACKET                                   = 0x11\n\tPF_PHONET                                   = 0x23\n\tPF_PPPOX                                    = 0x18\n\tPF_QIPCRTR                                  = 0x2a\n\tPF_R                                        = 0x4\n\tPF_RDS                                      = 0x15\n\tPF_ROSE                                     = 0xb\n\tPF_ROUTE                                    = 0x10\n\tPF_RXRPC                                    = 0x21\n\tPF_SECURITY                                 = 0xe\n\tPF_SMC                                      = 0x2b\n\tPF_SNA                                      = 0x16\n\tPF_TIPC                                     = 0x1e\n\tPF_UNIX                                     = 0x1\n\tPF_UNSPEC                                   = 0x0\n\tPF_VSOCK                                    = 0x28\n\tPF_W                                        = 0x2\n\tPF_WANPIPE                                  = 0x19\n\tPF_X                                        = 0x1\n\tPF_X25                                      = 0x9\n\tPF_XDP                                      = 0x2c\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\tPROCFS_IOCTL_MAGIC                          = 'f'\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_FUTEX_HASH                               = 0x4e\n\tPR_FUTEX_HASH_GET_IMMUTABLE                 = 0x3\n\tPR_FUTEX_HASH_GET_SLOTS                     = 0x2\n\tPR_FUTEX_HASH_SET_SLOTS                     = 0x1\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_SHADOW_STACK_STATUS                  = 0x4a\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_LOCK_SHADOW_STACK_STATUS                 = 0x4c\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_PMLEN_MASK                               = 0x7f000000\n\tPR_PMLEN_SHIFT                              = 0x18\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_SHADOW_STACK_STATUS                  = 0x4b\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_SHADOW_STACK_ENABLE                      = 0x1\n\tPR_SHADOW_STACK_PUSH                        = 0x4\n\tPR_SHADOW_STACK_WRITE                       = 0x2\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_TIMER_CREATE_RESTORE_IDS                 = 0x4d\n\tPR_TIMER_CREATE_RESTORE_IDS_GET             = 0x2\n\tPR_TIMER_CREATE_RESTORE_IDS_OFF             = 0x0\n\tPR_TIMER_CREATE_RESTORE_IDS_ON              = 0x1\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\tPTP_CLK_MAGIC                               = '='\n\tPTP_ENABLE_FEATURE                          = 0x1\n\tPTP_EXTTS_EDGES                             = 0x6\n\tPTP_EXTTS_EVENT_VALID                       = 0x1\n\tPTP_EXTTS_V1_VALID_FLAGS                    = 0x7\n\tPTP_EXTTS_VALID_FLAGS                       = 0x1f\n\tPTP_EXT_OFFSET                              = 0x10\n\tPTP_FALLING_EDGE                            = 0x4\n\tPTP_MAX_SAMPLES                             = 0x19\n\tPTP_PEROUT_DUTY_CYCLE                       = 0x2\n\tPTP_PEROUT_ONE_SHOT                         = 0x1\n\tPTP_PEROUT_PHASE                            = 0x4\n\tPTP_PEROUT_V1_VALID_FLAGS                   = 0x0\n\tPTP_PEROUT_VALID_FLAGS                      = 0x7\n\tPTP_PIN_GETFUNC                             = 0xc0603d06\n\tPTP_PIN_GETFUNC2                            = 0xc0603d0f\n\tPTP_RISING_EDGE                             = 0x2\n\tPTP_STRICT_FLAGS                            = 0x8\n\tPTP_SYS_OFFSET_EXTENDED                     = 0xc4c03d09\n\tPTP_SYS_OFFSET_EXTENDED2                    = 0xc4c03d12\n\tPTP_SYS_OFFSET_PRECISE                      = 0xc0403d08\n\tPTP_SYS_OFFSET_PRECISE2                     = 0xc0403d11\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_INFO                     = 0x4212\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\tPT_AARCH64_MEMTAG_MTE                       = 0x70000002\n\tPT_DYNAMIC                                  = 0x2\n\tPT_GNU_EH_FRAME                             = 0x6474e550\n\tPT_GNU_PROPERTY                             = 0x6474e553\n\tPT_GNU_RELRO                                = 0x6474e552\n\tPT_GNU_STACK                                = 0x6474e551\n\tPT_HIOS                                     = 0x6fffffff\n\tPT_HIPROC                                   = 0x7fffffff\n\tPT_INTERP                                   = 0x3\n\tPT_LOAD                                     = 0x1\n\tPT_LOOS                                     = 0x60000000\n\tPT_LOPROC                                   = 0x70000000\n\tPT_NOTE                                     = 0x4\n\tPT_NULL                                     = 0x0\n\tPT_PHDR                                     = 0x6\n\tPT_SHLIB                                    = 0x5\n\tPT_TLS                                      = 0x7\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                                     = 0x1f\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_DELANYCAST                              = 0x3d\n\tRTM_DELCHAIN                                = 0x65\n\tRTM_DELLINK                                 = 0x11\n\tRTM_DELLINKPROP                             = 0x6d\n\tRTM_DELMDB                                  = 0x55\n\tRTM_DELMULTICAST                            = 0x39\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_NEWANYCAST                              = 0x3c\n\tRTM_NEWCACHEREPORT                          = 0x60\n\tRTM_NEWCHAIN                                = 0x64\n\tRTM_NEWLINK                                 = 0x10\n\tRTM_NEWLINKPROP                             = 0x6c\n\tRTM_NEWMDB                                  = 0x54\n\tRTM_NEWMULTICAST                            = 0x38\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_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_NEWVLAN                                 = 0x70\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_OVN                                  = 0x54\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_ATOMIC                                  = 0x40\n\tRWF_DONTCACHE                               = 0x80\n\tRWF_DSYNC                                   = 0x2\n\tRWF_HIPRI                                   = 0x1\n\tRWF_NOAPPEND                                = 0x20\n\tRWF_NOWAIT                                  = 0x8\n\tRWF_SUPPORTED                               = 0xff\n\tRWF_SYNC                                    = 0x4\n\tRWF_WRITE_LIFE_NOT_SET                      = 0x0\n\tSCHED_BATCH                                 = 0x3\n\tSCHED_DEADLINE                              = 0x6\n\tSCHED_EXT                                   = 0x7\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\tSHF_ALLOC                                   = 0x2\n\tSHF_EXCLUDE                                 = 0x8000000\n\tSHF_EXECINSTR                               = 0x4\n\tSHF_GROUP                                   = 0x200\n\tSHF_INFO_LINK                               = 0x40\n\tSHF_LINK_ORDER                              = 0x80\n\tSHF_MASKOS                                  = 0xff00000\n\tSHF_MASKPROC                                = 0xf0000000\n\tSHF_MERGE                                   = 0x10\n\tSHF_ORDERED                                 = 0x4000000\n\tSHF_OS_NONCONFORMING                        = 0x100\n\tSHF_RELA_LIVEPATCH                          = 0x100000\n\tSHF_RO_AFTER_INIT                           = 0x200000\n\tSHF_STRINGS                                 = 0x20\n\tSHF_TLS                                     = 0x400\n\tSHF_WRITE                                   = 0x1\n\tSHN_ABS                                     = 0xfff1\n\tSHN_COMMON                                  = 0xfff2\n\tSHN_HIPROC                                  = 0xff1f\n\tSHN_HIRESERVE                               = 0xffff\n\tSHN_LIVEPATCH                               = 0xff20\n\tSHN_LOPROC                                  = 0xff00\n\tSHN_LORESERVE                               = 0xff00\n\tSHN_UNDEF                                   = 0x0\n\tSHT_DYNAMIC                                 = 0x6\n\tSHT_DYNSYM                                  = 0xb\n\tSHT_HASH                                    = 0x5\n\tSHT_HIPROC                                  = 0x7fffffff\n\tSHT_HIUSER                                  = 0xffffffff\n\tSHT_LOPROC                                  = 0x70000000\n\tSHT_LOUSER                                  = 0x80000000\n\tSHT_NOBITS                                  = 0x8\n\tSHT_NOTE                                    = 0x7\n\tSHT_NULL                                    = 0x0\n\tSHT_NUM                                     = 0xc\n\tSHT_PROGBITS                                = 0x1\n\tSHT_REL                                     = 0x9\n\tSHT_RELA                                    = 0x4\n\tSHT_SHLIB                                   = 0xa\n\tSHT_STRTAB                                  = 0x3\n\tSHT_SYMTAB                                  = 0x2\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_ATTR_WRITE_ATOMIC                     = 0x400000\n\tSTATX_BASIC_STATS                           = 0x7ff\n\tSTATX_BLOCKS                                = 0x400\n\tSTATX_BTIME                                 = 0x800\n\tSTATX_CTIME                                 = 0x80\n\tSTATX_DIOALIGN                              = 0x2000\n\tSTATX_DIO_READ_ALIGN                        = 0x20000\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_WRITE_ATOMIC                          = 0x10000\n\tSTATX__RESERVED                             = 0x80000000\n\tSTB_GLOBAL                                  = 0x1\n\tSTB_LOCAL                                   = 0x0\n\tSTB_WEAK                                    = 0x2\n\tSTT_COMMON                                  = 0x5\n\tSTT_FILE                                    = 0x4\n\tSTT_FUNC                                    = 0x2\n\tSTT_NOTYPE                                  = 0x0\n\tSTT_OBJECT                                  = 0x1\n\tSTT_SECTION                                 = 0x3\n\tSTT_TLS                                     = 0x6\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                           = 0x10\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_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\tUBI_IOCECNFO                                = 0xc01c6f06\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\tUMOUNT_NOFOLLOW                             = 0x8\n\tUSBDEVICE_SUPER_MAGIC                       = 0x9fa2\n\tUTIME_NOW                                   = 0x3fffffff\n\tUTIME_OMIT                                  = 0x3ffffffe\n\tV9FS_MAGIC                                  = 0x1021997\n\tVERASE                                      = 0x2\n\tVER_FLG_BASE                                = 0x1\n\tVER_FLG_WEAK                                = 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                           = 0x4\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_LAUNCH_TIME                  = 0x4\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_METADATA_LEN                    = 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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tGCS_MAGIC                        = 0x47435300\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPOE_MAGIC                        = 0x504f4530\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0xfd12\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\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_MEI_NOTIFY_GET             = 0x80044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x40044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\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\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\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_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\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_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\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_PASSRIGHTS                    = 0x53\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_RCVPRIORITY                   = 0x52\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\tDM_MPATH_PROBE_PATHS             = 0x2000fd12\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\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x400000\n\tIN_NONBLOCK                      = 0x4000\n\tIOCTL_MEI_NOTIFY_GET             = 0x40044803\n\tIOCTL_MEI_NOTIFY_SET             = 0x80044802\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\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_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\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\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\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_DEVMEM_DMABUF                = 0x58\n\tSCM_DEVMEM_LINEAR                = 0x57\n\tSCM_TIMESTAMPING                 = 0x23\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x38\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3c\n\tSCM_TIMESTAMPNS                  = 0x21\n\tSCM_TS_OPT_ID                    = 0x5a\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_DEVMEM_DMABUF                 = 0x58\n\tSO_DEVMEM_DONTNEED               = 0x59\n\tSO_DEVMEM_LINEAR                 = 0x57\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_PASSRIGHTS                    = 0x5c\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_RCVPRIORITY                   = 0x5b\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\tST_RDONLY                       = 1\n\tST_NOSUID                       = 2\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 connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/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 readv(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readv readv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 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_preadv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_preadv preadv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_writev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_writev writev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 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_pwritev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwritev pwritev \"/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_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_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_readv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readv(SB)\nGLOBL\t·libc_readv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)\n\nTEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_preadv(SB)\nGLOBL\t·libc_preadv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)\n\nTEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_writev(SB)\nGLOBL\t·libc_writev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)\n\nTEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwritev(SB)\nGLOBL\t·libc_pwritev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_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 connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/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 readv(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readv readv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 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_preadv_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_preadv preadv \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovecs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_writev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_writev writev \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovecs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovecs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 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_pwritev_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwritev pwritev \"/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_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_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_readv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readv(SB)\nGLOBL\t·libc_readv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)\n\nTEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_preadv(SB)\nGLOBL\t·libc_preadv_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)\n\nTEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_writev(SB)\nGLOBL\t·libc_writev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)\n\nTEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwritev(SB)\nGLOBL\t·libc_pwritev_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_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 ClockSettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_SETTIME, 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 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\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setMemPolicy(mode int, mask *CPUSet, size int) (err error) {\n\t_, _, e1 := Syscall(SYS_SET_MEMPOLICY, uintptr(mode), uintptr(unsafe.Pointer(mask)), uintptr(size))\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_listen __xnet_listen \"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_getpeerucred getpeerucred \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_get ucred_get \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_free ucred_free \"libc.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_listen libc___xnet_listen\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 procgetpeerucred libc_getpeerucred\n//go:linkname procucred_get libc_ucred_get\n//go:linkname procucred_geteuid libc_ucred_geteuid\n//go:linkname procucred_getegid libc_ucred_getegid\n//go:linkname procucred_getruid libc_ucred_getruid\n//go:linkname procucred_getrgid libc_ucred_getrgid\n//go:linkname procucred_getsuid libc_ucred_getsuid\n//go:linkname procucred_getsgid libc_ucred_getsgid\n//go:linkname procucred_getpid libc_ucred_getpid\n//go:linkname procucred_free libc_ucred_free\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_listen,\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\tprocgetpeerucred,\n\tprocucred_get,\n\tprocucred_geteuid,\n\tprocucred_getegid,\n\tprocucred_getruid,\n\tprocucred_getrgid,\n\tprocucred_getsuid,\n\tprocucred_getsgid,\n\tprocucred_getpid,\n\tprocucred_free,\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_listen)), 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 getpeerucred(fd uintptr, ucred *uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 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 ucredGet(pid int) (ucred uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tucred = 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 ucredGeteuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 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 ucredGetegid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 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 ucredGetruid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 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 ucredGetrgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 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 ucredGetsuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 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 ucredGetsgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 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 ucredGetpid(ucred uintptr) (pid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 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 ucredFree(ucred uintptr) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 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 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\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\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_URETPROBE               = 335\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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\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_NEWFSTATAT              = 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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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_NEWFSTATAT              = 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_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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n\tSYS_OPEN_TREE_ATTR               = 4467\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\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n\tSYS_OPEN_TREE_ATTR          = 5467\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\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n\tSYS_OPEN_TREE_ATTR          = 5467\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\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n\tSYS_OPEN_TREE_ATTR               = 4467\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\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n\tSYS_OPEN_TREE_ATTR               = 467\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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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_NEWFSTATAT              = 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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n\tSYS_OPEN_TREE_ATTR          = 467\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 SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\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\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 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 IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\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 IfData64 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   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\tRecvtiming uint32\n\tXmittiming 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 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 RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    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 SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\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\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 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 IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\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 IfData64 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   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\tRecvtiming uint32\n\tXmittiming 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 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 RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    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\tPOLLRDHUP    = 0x4000\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\tPOLLRDHUP    = 0x4000\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\tPOLLRDHUP    = 0x4000\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\tPOLLRDHUP    = 0x4000\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\tPOLLRDHUP    = 0x4000\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\tAtomic_write_unit_min     uint32\n\tAtomic_write_unit_max     uint32\n\tAtomic_write_segments_max uint32\n\tDio_read_offset_align     uint32\n\tAtomic_write_unit_max_opt uint32\n\t_                         [1]uint32\n\t_                         [8]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\tFlags    uint32\n\t_        [7]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 TCPVegasInfo struct {\n\tEnabled uint32\n\tRttcnt  uint32\n\tRtt     uint32\n\tMinrtt  uint32\n}\n\ntype TCPDCTCPInfo struct {\n\tEnabled  uint16\n\tCe_state uint16\n\tAlpha    uint32\n\tAb_ecn   uint32\n\tAb_tot   uint32\n}\n\ntype TCPBBRInfo struct {\n\tBw_lo       uint32\n\tBw_hi       uint32\n\tMin_rtt     uint32\n\tPacing_gain uint32\n\tCwnd_gain   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\tSizeofTCPCCInfo         = 0x14\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\tIFAL_LABEL         = 0x2\n\tIFAL_ADDRESS       = 0x1\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\tSizeofIfAddrlblmsg = 0xc\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 IfAddrlblmsg struct {\n\tFamily    uint8\n\t_         uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tIndex     uint32\n\tSeq       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\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_VXLAN_LABEL_POLICY                    = 0x20\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_GTP_LOCAL                             = 0x7\n\tIFLA_GTP_LOCAL6                            = 0x8\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_COUPLED_CONTROL                  = 0x20\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_HSR_INTERLINK                         = 0x8\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\tNETKIT_NEXT     = -0x1\n\tNETKIT_PASS     = 0x0\n\tNETKIT_DROP     = 0x2\n\tNETKIT_REDIRECT = 0x7\n\tNETKIT_L2       = 0x0\n\tNETKIT_L3       = 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_INNER_HEADER          = 0x3\n\tNFT_PAYLOAD_TUN_HEADER            = 0x4\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_CSUM_SCTP             = 0x2\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\tNFT_CT_SRC_IP                     = 0x13\n\tNFT_CT_DST_IP                     = 0x14\n\tNFT_CT_SRC_IP6                    = 0x15\n\tNFT_CT_DST_IP6                    = 0x16\n\tNFT_CT_ID                         = 0x17\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\tSize            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 = 0x40000\n\tSOF_TIMESTAMPING_MASK = 0x7ffff\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\tTCA_UNSPEC            = 0x0\n\tTCA_KIND              = 0x1\n\tTCA_OPTIONS           = 0x2\n\tTCA_STATS             = 0x3\n\tTCA_XSTATS            = 0x4\n\tTCA_RATE              = 0x5\n\tTCA_FCNT              = 0x6\n\tTCA_STATS2            = 0x7\n\tTCA_STAB              = 0x8\n\tTCA_PAD               = 0x9\n\tTCA_DUMP_INVISIBLE    = 0xa\n\tTCA_CHAIN             = 0xb\n\tTCA_HW_OFFLOAD        = 0xc\n\tTCA_INGRESS_BLOCK     = 0xd\n\tTCA_EGRESS_BLOCK      = 0xe\n\tTCA_DUMP_FLAGS        = 0xf\n\tTCA_EXT_WARN_MSG      = 0x10\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\tRTNLGRP_MCTP_IFADDR   = 0x22\n\tRTNLGRP_TUNNEL        = 0x23\n\tRTNLGRP_STATS         = 0x24\n\tRTNLGRP_IPV4_MCADDR   = 0x25\n\tRTNLGRP_IPV6_MCADDR   = 0x26\n\tRTNLGRP_IPV6_ACADDR   = 0x27\n\tTCA_ROOT_UNSPEC       = 0x0\n\tTCA_ROOT_TAB          = 0x1\n\tTCA_ROOT_FLAGS        = 0x2\n\tTCA_ROOT_COUNT        = 0x3\n\tTCA_ROOT_TIME_DELTA   = 0x4\n\tTCA_ROOT_EXT_WARN_MSG = 0x5\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\nconst SizeofNhmsg = 0x8\n\ntype NexthopGrp struct {\n\tId     uint32\n\tWeight uint8\n\tHigh   uint8\n\tResvd2 uint16\n}\n\nconst SizeofNexthopGrp = 0x8\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_PLCA_GET_CFG                  = 0x27\n\tETHTOOL_MSG_PLCA_SET_CFG                  = 0x28\n\tETHTOOL_MSG_PLCA_GET_STATUS               = 0x29\n\tETHTOOL_MSG_MM_GET                        = 0x2a\n\tETHTOOL_MSG_MM_SET                        = 0x2b\n\tETHTOOL_MSG_MODULE_FW_FLASH_ACT           = 0x2c\n\tETHTOOL_MSG_PHY_GET                       = 0x2d\n\tETHTOOL_MSG_TSCONFIG_GET                  = 0x2e\n\tETHTOOL_MSG_TSCONFIG_SET                  = 0x2f\n\tETHTOOL_MSG_USER_MAX                      = 0x2f\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_PLCA_GET_CFG_REPLY            = 0x27\n\tETHTOOL_MSG_PLCA_GET_STATUS_REPLY         = 0x28\n\tETHTOOL_MSG_PLCA_NTF                      = 0x29\n\tETHTOOL_MSG_MM_GET_REPLY                  = 0x2a\n\tETHTOOL_MSG_MM_NTF                        = 0x2b\n\tETHTOOL_MSG_MODULE_FW_FLASH_NTF           = 0x2c\n\tETHTOOL_MSG_PHY_GET_REPLY                 = 0x2d\n\tETHTOOL_MSG_PHY_NTF                       = 0x2e\n\tETHTOOL_MSG_TSCONFIG_GET_REPLY            = 0x2f\n\tETHTOOL_MSG_TSCONFIG_SET_REPLY            = 0x30\n\tETHTOOL_MSG_KERNEL_MAX                    = 0x30\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                      = 0x4\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_RX_PUSH                   = 0xe\n\tETHTOOL_A_RINGS_TX_PUSH_BUF_LEN           = 0xf\n\tETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX       = 0x10\n\tETHTOOL_A_RINGS_HDS_THRESH                = 0x11\n\tETHTOOL_A_RINGS_HDS_THRESH_MAX            = 0x12\n\tETHTOOL_A_RINGS_MAX                       = 0x12\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                    = 0x1e\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_STATS                    = 0x6\n\tETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER        = 0x7\n\tETHTOOL_A_TSINFO_MAX                      = 0x9\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                = 0x3\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          = 0x3\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 (\n\tTCP_V4_FLOW    = 0x1\n\tUDP_V4_FLOW    = 0x2\n\tTCP_V6_FLOW    = 0x5\n\tUDP_V6_FLOW    = 0x6\n\tESP_V4_FLOW    = 0xa\n\tESP_V6_FLOW    = 0xc\n\tIP_USER_FLOW   = 0xd\n\tIPV6_USER_FLOW = 0xe\n\tIPV6_FLOW      = 0x11\n\tETHER_FLOW     = 0x12\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 EthtoolTsInfo struct {\n\tCmd             uint32\n\tSo_timestamping uint32\n\tPhc_index       int32\n\tTx_types        uint32\n\tTx_reserved     [3]uint32\n\tRx_filters      uint32\n\tRx_reserved     [3]uint32\n}\n\ntype HwTstampConfig struct {\n\tFlags     int32\n\tTx_type   int32\n\tRx_filter int32\n}\n\nconst (\n\tHWTSTAMP_FILTER_NONE            = 0x0\n\tHWTSTAMP_FILTER_ALL             = 0x1\n\tHWTSTAMP_FILTER_SOME            = 0x2\n\tHWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3\n\tHWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6\n\tHWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9\n\tHWTSTAMP_FILTER_PTP_V2_EVENT    = 0xc\n)\n\nconst (\n\tHWTSTAMP_TX_OFF          = 0x0\n\tHWTSTAMP_TX_ON           = 0x1\n\tHWTSTAMP_TX_ONESTEP_SYNC = 0x2\n)\n\ntype (\n\tPtpClockCaps struct {\n\t\tMax_adj            int32\n\t\tN_alarm            int32\n\t\tN_ext_ts           int32\n\t\tN_per_out          int32\n\t\tPps                int32\n\t\tN_pins             int32\n\t\tCross_timestamping int32\n\t\tAdjust_phase       int32\n\t\tMax_phase_adj      int32\n\t\tRsv                [11]int32\n\t}\n\tPtpClockTime struct {\n\t\tSec      int64\n\t\tNsec     uint32\n\t\tReserved uint32\n\t}\n\tPtpExttsEvent struct {\n\t\tT     PtpClockTime\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpExttsRequest struct {\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpPeroutRequest struct {\n\t\tStartOrPhase PtpClockTime\n\t\tPeriod       PtpClockTime\n\t\tIndex        uint32\n\t\tFlags        uint32\n\t\tOn           PtpClockTime\n\t}\n\tPtpPinDesc struct {\n\t\tName  [64]byte\n\t\tIndex uint32\n\t\tFunc  uint32\n\t\tChan  uint32\n\t\tRsv   [5]uint32\n\t}\n\tPtpSysOffset struct {\n\t\tSamples uint32\n\t\tRsv     [3]uint32\n\t\tTs      [51]PtpClockTime\n\t}\n\tPtpSysOffsetExtended struct {\n\t\tSamples uint32\n\t\tClockid int32\n\t\tRsv     [2]uint32\n\t\tTs      [25][3]PtpClockTime\n\t}\n\tPtpSysOffsetPrecise struct {\n\t\tDevice   PtpClockTime\n\t\tRealtime PtpClockTime\n\t\tMonoraw  PtpClockTime\n\t\tRsv      [4]uint32\n\t}\n)\n\nconst (\n\tPTP_PF_NONE    = 0x0\n\tPTP_PF_EXTTS   = 0x1\n\tPTP_PF_PEROUT  = 0x2\n\tPTP_PF_PHYSYNC = 0x3\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\tScoped     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_ASSOC_SPP_AMSDU                            = 0x14a\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_DUMP_INCLUDE_USE_DATA                  = 0x147\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_EMA_RNR_ELEMS                              = 0x145\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_HW_TIMESTAMP_ENABLED                       = 0x144\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                                        = 0x151\n\tNL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4\n\tNL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce\n\tNL80211_ATTR_MAX_HW_TIMESTAMP_PEERS                     = 0x143\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_DISABLED                          = 0x146\n\tNL80211_ATTR_MLO_LINK_ID                                = 0x139\n\tNL80211_ATTR_MLO_LINKS                                  = 0x138\n\tNL80211_ATTR_MLO_SUPPORT                                = 0x13b\n\tNL80211_ATTR_MLO_TTLM_DLINK                             = 0x148\n\tNL80211_ATTR_MLO_TTLM_ULINK                             = 0x149\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_POWER_RULE_PSD                             = 0x8\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_PUNCT_BITMAP                               = 0x142\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_INTERFACE_COMBINATIONS               = 0x14c\n\tNL80211_ATTR_WIPHY_NAME                                 = 0x2\n\tNL80211_ATTR_WIPHY_RADIOS                               = 0x14b\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_S1G_CAPA                              = 0xd\n\tNL80211_BAND_ATTR_S1G_MCS_NSS_SET                       = 0xc\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_CANNOT_USE_6GHZ_PWR_MISMATCH                = 0x2\n\tNL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY                  = 0x1\n\tNL80211_BSS_CANNOT_USE_REASONS                          = 0x18\n\tNL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH                 = 0x2\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_BSS_USE_FOR                                     = 0x17\n\tNL80211_BSS_USE_FOR_MLD_LINK                            = 0x2\n\tNL80211_BSS_USE_FOR_NORMAL                              = 0x1\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_LINKS_REMOVED                               = 0x9a\n\tNL80211_CMD_MAX                                         = 0x9d\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_HW_TIMESTAMP                            = 0x99\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_TID_TO_LINK_MAPPING                     = 0x9b\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_AUTH_AND_DEAUTH_RANDOM_TA           = 0x40\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_CONCURRENT                      = 0x43\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_OWE_OFFLOAD_AP                      = 0x42\n\tNL80211_EXT_FEATURE_OWE_OFFLOAD                         = 0x41\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_PUNCT                               = 0x3e\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_NAN                          = 0x3f\n\tNL80211_EXT_FEATURE_SECURE_RTT                          = 0x38\n\tNL80211_EXT_FEATURE_SET_SCAN_DWELL                      = 0x5\n\tNL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT                   = 0x44\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_ALLOW_6GHZ_VLP_AP                = 0x21\n\tNL80211_FREQUENCY_ATTR_CAN_MONITOR                      = 0x20\n\tNL80211_FREQUENCY_ATTR_DFS_CAC_TIME                     = 0xd\n\tNL80211_FREQUENCY_ATTR_DFS_CONCURRENT                   = 0x1d\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                              = 0x22\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_6GHZ_AFC_CLIENT               = 0x1f\n\tNL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT               = 0x1e\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_NO_UHB_AFC_CLIENT                = 0x1f\n\tNL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT                = 0x1e\n\tNL80211_FREQUENCY_ATTR_OFFSET                           = 0x14\n\tNL80211_FREQUENCY_ATTR_PASSIVE_SCAN                     = 0x3\n\tNL80211_FREQUENCY_ATTR_PSD                              = 0x1c\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_32                                  = 0x20\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_MAX_SUPP_SELECTORS                              = 0x80\n\tNL80211_MBSSID_CONFIG_ATTR_EMA                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_INDEX                        = 0x3\n\tNL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x6\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                                   = 0x7\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_16_MHZ_WIDTH                          = 0x1d\n\tNL80211_RATE_INFO_1_MHZ_WIDTH                           = 0x19\n\tNL80211_RATE_INFO_2_MHZ_WIDTH                           = 0x1a\n\tNL80211_RATE_INFO_320_MHZ_WIDTH                         = 0x12\n\tNL80211_RATE_INFO_40_MHZ_WIDTH                          = 0x3\n\tNL80211_RATE_INFO_4_MHZ_WIDTH                           = 0x1b\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_8_MHZ_WIDTH                           = 0x1c\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_S1G_MCS                               = 0x17\n\tNL80211_RATE_INFO_S1G_NSS                               = 0x18\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_ALLOW_6GHZ_VLP_AP                           = 0x1000000\n\tNL80211_RRF_AUTO_BW                                     = 0x800\n\tNL80211_RRF_DFS                                         = 0x10\n\tNL80211_RRF_DFS_CONCURRENT                              = 0x200000\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_6GHZ_AFC_CLIENT                          = 0x800000\n\tNL80211_RRF_NO_6GHZ_VLP_CLIENT                          = 0x400000\n\tNL80211_RRF_NO_80MHZ                                    = 0x8000\n\tNL80211_RRF_NO_CCK                                      = 0x2\n\tNL80211_RRF_NO_EHT                                      = 0x80000\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_NO_UHB_AFC_CLIENT                           = 0x800000\n\tNL80211_RRF_NO_UHB_VLP_CLIENT                           = 0x400000\n\tNL80211_RRF_PASSIVE_SCAN                                = 0x80\n\tNL80211_RRF_PSD                                         = 0x100000\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_SPP_AMSDU                              = 0x8\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_WIPHY_RADIO_ATTR_FREQ_RANGE                     = 0x2\n\tNL80211_WIPHY_RADIO_ATTR_INDEX                          = 0x1\n\tNL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION          = 0x3\n\tNL80211_WIPHY_RADIO_ATTR_MAX                            = 0x4\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_END                       = 0x2\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_MAX                       = 0x2\n\tNL80211_WIPHY_RADIO_FREQ_ATTR_START                     = 0x1\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_UNPROTECTED_DEAUTH_DISASSOC         = 0x14\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\nconst RTM_NEWNVLAN = 0x70\n\nconst (\n\tMPOL_BIND                = 0x2\n\tMPOL_DEFAULT             = 0x0\n\tMPOL_F_ADDR              = 0x2\n\tMPOL_F_MEMS_ALLOWED      = 0x4\n\tMPOL_F_MOF               = 0x8\n\tMPOL_F_MORON             = 0x10\n\tMPOL_F_NODE              = 0x1\n\tMPOL_F_NUMA_BALANCING    = 0x2000\n\tMPOL_F_RELATIVE_NODES    = 0x4000\n\tMPOL_F_SHARED            = 0x1\n\tMPOL_F_STATIC_NODES      = 0x8000\n\tMPOL_INTERLEAVE          = 0x3\n\tMPOL_LOCAL               = 0x4\n\tMPOL_MAX                 = 0x7\n\tMPOL_MF_INTERNAL         = 0x10\n\tMPOL_MF_LAZY             = 0x8\n\tMPOL_MF_MOVE_ALL         = 0x4\n\tMPOL_MF_MOVE             = 0x2\n\tMPOL_MF_STRICT           = 0x1\n\tMPOL_MF_VALID            = 0x7\n\tMPOL_MODE_FLAGS          = 0xe000\n\tMPOL_PREFERRED           = 0x1\n\tMPOL_PREFERRED_MANY      = 0x5\n\tMPOL_WEIGHTED_INTERLEAVE = 0x6\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_                         [6]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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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_       [6]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_                         [6]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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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_                         [6]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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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_                         [6]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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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_       [6]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_                         [6]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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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_EXT_ZICBOZ             = 0x40\n\tRISCV_HWPROBE_EXT_ZBC                = 0x80\n\tRISCV_HWPROBE_EXT_ZBKB               = 0x100\n\tRISCV_HWPROBE_EXT_ZBKC               = 0x200\n\tRISCV_HWPROBE_EXT_ZBKX               = 0x400\n\tRISCV_HWPROBE_EXT_ZKND               = 0x800\n\tRISCV_HWPROBE_EXT_ZKNE               = 0x1000\n\tRISCV_HWPROBE_EXT_ZKNH               = 0x2000\n\tRISCV_HWPROBE_EXT_ZKSED              = 0x4000\n\tRISCV_HWPROBE_EXT_ZKSH               = 0x8000\n\tRISCV_HWPROBE_EXT_ZKT                = 0x10000\n\tRISCV_HWPROBE_EXT_ZVBB               = 0x20000\n\tRISCV_HWPROBE_EXT_ZVBC               = 0x40000\n\tRISCV_HWPROBE_EXT_ZVKB               = 0x80000\n\tRISCV_HWPROBE_EXT_ZVKG               = 0x100000\n\tRISCV_HWPROBE_EXT_ZVKNED             = 0x200000\n\tRISCV_HWPROBE_EXT_ZVKNHA             = 0x400000\n\tRISCV_HWPROBE_EXT_ZVKNHB             = 0x800000\n\tRISCV_HWPROBE_EXT_ZVKSED             = 0x1000000\n\tRISCV_HWPROBE_EXT_ZVKSH              = 0x2000000\n\tRISCV_HWPROBE_EXT_ZVKT               = 0x4000000\n\tRISCV_HWPROBE_EXT_ZFH                = 0x8000000\n\tRISCV_HWPROBE_EXT_ZFHMIN             = 0x10000000\n\tRISCV_HWPROBE_EXT_ZIHINTNTL          = 0x20000000\n\tRISCV_HWPROBE_EXT_ZVFH               = 0x40000000\n\tRISCV_HWPROBE_EXT_ZVFHMIN            = 0x80000000\n\tRISCV_HWPROBE_EXT_ZFA                = 0x100000000\n\tRISCV_HWPROBE_EXT_ZTSO               = 0x200000000\n\tRISCV_HWPROBE_EXT_ZACAS              = 0x400000000\n\tRISCV_HWPROBE_EXT_ZICOND             = 0x800000000\n\tRISCV_HWPROBE_EXT_ZIHINTPAUSE        = 0x1000000000\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\tRISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6\n\tRISCV_HWPROBE_WHICH_CPUS             = 0x1\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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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\tCpu_delay_max             uint64\n\tCpu_delay_min             uint64\n\tBlkio_delay_max           uint64\n\tBlkio_delay_min           uint64\n\tSwapin_delay_max          uint64\n\tSwapin_delay_min          uint64\n\tFreepages_delay_max       uint64\n\tFreepages_delay_min       uint64\n\tThrashing_delay_max       uint64\n\tThrashing_delay_min       uint64\n\tCompact_delay_max         uint64\n\tCompact_delay_min         uint64\n\tWpcopy_delay_max          uint64\n\tWpcopy_delay_min          uint64\n\tIrq_delay_max             uint64\n\tIrq_delay_min             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]uint64\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 F_cnvrt struct {\n\tCvtcmd int32\n\tPccsid int16\n\tFccsid int16\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 [NewLazySystemDLL],\n// 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 fails.\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.\n//\n// Warning: using NewLazyDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL].\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"
  },
  {
    "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 = new(SECURITY_DESCRIPTOR)\n\t\tif unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) {\n\t\t\tpanic(\"sizeof(SECURITY_DESCRIPTOR) too small\")\n\t\t}\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(unsafe.SliceData(make([]byte, daclSize))))\n\t}\n\tif saclSize > 0 {\n\t\tsacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize))))\n\t}\n\tif ownerSize > 0 {\n\t\towner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize))))\n\t}\n\tif groupSize > 0 {\n\t\tgroup = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize))))\n\t}\n\t// We call into Windows via makeAbsoluteSD, which sets up\n\t// pointers within absoluteSD that point to other chunks of memory\n\t// we pass into makeAbsoluteSD, and that happens outside the view of the GC.\n\t// We therefore take some care here to then verify the pointers are as we expect\n\t// and set them explicitly in view of the GC. See https://go.dev/issue/73199.\n\t// TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575.\n\terr = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,\n\t\tdacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)\n\tif err != nil {\n\t\t// Don't return absoluteSD, which might be partially initialized.\n\t\treturn nil, err\n\t}\n\t// Before using any fields, verify absoluteSD is in the format we expect according to Windows.\n\t// See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors\n\tabsControl, _, err := absoluteSD.Control()\n\tif err != nil {\n\t\tpanic(\"absoluteSD: \" + err.Error())\n\t}\n\tif absControl&SE_SELF_RELATIVE != 0 {\n\t\tpanic(\"absoluteSD not in absolute format\")\n\t}\n\tif absoluteSD.dacl != dacl {\n\t\tpanic(\"dacl pointer mismatch\")\n\t}\n\tif absoluteSD.sacl != sacl {\n\t\tpanic(\"sacl pointer mismatch\")\n\t}\n\tif absoluteSD.owner != owner {\n\t\tpanic(\"owner pointer mismatch\")\n\t}\n\tif absoluteSD.group != group {\n\t\tpanic(\"group pointer mismatch\")\n\t}\n\tabsoluteSD.dacl = dacl\n\tabsoluteSD.sacl = sacl\n\tabsoluteSD.owner = owner\n\tabsoluteSD.group = group\n\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   GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error)\n//sys   GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (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\tGetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP\n//sys\tGetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP\n//sys\tSetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP\n//sys\tSetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP\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\tGetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents\n//sys\tFlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer\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\ttype _FILE_END_OF_FILE_INFO struct {\n\t\tEndOfFile int64\n\t}\n\tvar info _FILE_END_OF_FILE_INFO\n\tinfo.EndOfFile = length\n\treturn SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info)))\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\tWSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW\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//sys   GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex\n//sys   GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) = iphlpapi.GetIpForwardEntry2\n//sys   GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) = iphlpapi.GetIpForwardTable2\n//sys   GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry\n//sys   FreeMibTable(memory unsafe.Pointer) = iphlpapi.FreeMibTable\n//sys   NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange\n//sys   NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyRouteChange2\n//sys   NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange\n//sys   CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2\n//sys\tIsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) = kernel32.IsProcessorFeaturePresent\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\n// RawSockaddrInet is a union that contains an IPv4, an IPv6 address, or an address family. See\n// https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-sockaddr_inet.\n//\n// A [*RawSockaddrInet] may be converted to a [*RawSockaddrInet4] or [*RawSockaddrInet6] using\n// unsafe, depending on the address family.\ntype RawSockaddrInet struct {\n\tFamily uint16\n\tPort   uint16\n\tData   [6]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\ts16, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tn := uint16(len(s16) * 2)\n\treturn &NTUnicodeString{\n\t\tLength:        n - 2, // subtract 2 bytes for the NULL terminator\n\t\tMaximumLength: n,\n\t\tBuffer:        &s16[0],\n\t}, nil\n}\n\n// Slice returns a uint16 slice that aliases the data in the NTUnicodeString.\nfunc (s *NTUnicodeString) Slice() []uint16 {\n\t// Note: this rounds the length down, if it happens\n\t// to (incorrectly) be odd. Probably safer than rounding up.\n\treturn unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2]\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\n// File flags for [os.OpenFile]. The O_ prefix is used to indicate\n// that these flags are specific to the OpenFile function.\nconst (\n\tO_FILE_FLAG_OPEN_NO_RECALL     = FILE_FLAG_OPEN_NO_RECALL\n\tO_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT\n\tO_FILE_FLAG_SESSION_AWARE      = FILE_FLAG_SESSION_AWARE\n\tO_FILE_FLAG_POSIX_SEMANTICS    = FILE_FLAG_POSIX_SEMANTICS\n\tO_FILE_FLAG_BACKUP_SEMANTICS   = FILE_FLAG_BACKUP_SEMANTICS\n\tO_FILE_FLAG_DELETE_ON_CLOSE    = FILE_FLAG_DELETE_ON_CLOSE\n\tO_FILE_FLAG_SEQUENTIAL_SCAN    = FILE_FLAG_SEQUENTIAL_SCAN\n\tO_FILE_FLAG_RANDOM_ACCESS      = FILE_FLAG_RANDOM_ACCESS\n\tO_FILE_FLAG_NO_BUFFERING       = FILE_FLAG_NO_BUFFERING\n\tO_FILE_FLAG_OVERLAPPED         = FILE_FLAG_OVERLAPPED\n\tO_FILE_FLAG_WRITE_THROUGH      = FILE_FLAG_WRITE_THROUGH\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_ALL_ACCESS                = 0xFFFF\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\tSIO_UDP_NETRESET                   = IOC_IN | IOC_VENDOR | 15\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\tIP_MTU_DISCOVER    = 0x47\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\tIPV6_MTU_DISCOVER   = 0x47\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\n// enum PMTUD_STATE from ws2ipdef.h\nconst (\n\tIP_PMTUDISC_NOT_SET = 0\n\tIP_PMTUDISC_DO      = 1\n\tIP_PMTUDISC_DONT    = 2\n\tIP_PMTUDISC_PROBE   = 3\n\tIP_PMTUDISC_MAX     = 4\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\ntype WSACMSGHDR struct {\n\tLen   uintptr\n\tLevel int32\n\tType  int32\n}\n\ntype IN_PKTINFO struct {\n\tAddr    [4]byte\n\tIfindex uint32\n}\n\ntype IN6_PKTINFO struct {\n\tAddr    [16]byte\n\tIfindex 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\n// FILE_ZERO_DATA_INFORMATION from winioctl.h\ntype FileZeroDataInformation struct {\n\tFileOffset      int64\n\tBeyondFinalZero int64\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\nconst (\n\tIF_MAX_PHYS_ADDRESS_LENGTH = 32\n\tIF_MAX_STRING_SIZE         = 256\n)\n\n// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex.\nconst (\n\tMibIfEntryNormal                  = 0\n\tMibIfEntryNormalWithoutStatistics = 2\n)\n\n// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type.\nconst (\n\tMibParameterNotification = 0\n\tMibAddInstance           = 1\n\tMibDeleteInstance        = 2\n\tMibInitialNotification   = 3\n)\n\n// MibIfRow2 stores information about a particular interface. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2.\ntype MibIfRow2 struct {\n\tInterfaceLuid               uint64\n\tInterfaceIndex              uint32\n\tInterfaceGuid               GUID\n\tAlias                       [IF_MAX_STRING_SIZE + 1]uint16\n\tDescription                 [IF_MAX_STRING_SIZE + 1]uint16\n\tPhysicalAddressLength       uint32\n\tPhysicalAddress             [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tPermanentPhysicalAddress    [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tMtu                         uint32\n\tType                        uint32\n\tTunnelType                  uint32\n\tMediaType                   uint32\n\tPhysicalMediumType          uint32\n\tAccessType                  uint32\n\tDirectionType               uint32\n\tInterfaceAndOperStatusFlags uint8\n\tOperStatus                  uint32\n\tAdminStatus                 uint32\n\tMediaConnectState           uint32\n\tNetworkGuid                 GUID\n\tConnectionType              uint32\n\tTransmitLinkSpeed           uint64\n\tReceiveLinkSpeed            uint64\n\tInOctets                    uint64\n\tInUcastPkts                 uint64\n\tInNUcastPkts                uint64\n\tInDiscards                  uint64\n\tInErrors                    uint64\n\tInUnknownProtos             uint64\n\tInUcastOctets               uint64\n\tInMulticastOctets           uint64\n\tInBroadcastOctets           uint64\n\tOutOctets                   uint64\n\tOutUcastPkts                uint64\n\tOutNUcastPkts               uint64\n\tOutDiscards                 uint64\n\tOutErrors                   uint64\n\tOutUcastOctets              uint64\n\tOutMulticastOctets          uint64\n\tOutBroadcastOctets          uint64\n\tOutQLen                     uint64\n}\n\n// IP_ADDRESS_PREFIX stores an IP address prefix. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-ip_address_prefix.\ntype IpAddressPrefix struct {\n\tPrefix       RawSockaddrInet\n\tPrefixLength uint8\n}\n\n// NL_ROUTE_ORIGIN enumeration from nldef.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_origin.\nconst (\n\tNlroManual              = 0\n\tNlroWellKnown           = 1\n\tNlroDHCP                = 2\n\tNlroRouterAdvertisement = 3\n\tNlro6to4                = 4\n)\n\n// NL_ROUTE_ORIGIN enumeration from nldef.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_protocol.\nconst (\n\tMIB_IPPROTO_OTHER             = 1\n\tMIB_IPPROTO_LOCAL             = 2\n\tMIB_IPPROTO_NETMGMT           = 3\n\tMIB_IPPROTO_ICMP              = 4\n\tMIB_IPPROTO_EGP               = 5\n\tMIB_IPPROTO_GGP               = 6\n\tMIB_IPPROTO_HELLO             = 7\n\tMIB_IPPROTO_RIP               = 8\n\tMIB_IPPROTO_IS_IS             = 9\n\tMIB_IPPROTO_ES_IS             = 10\n\tMIB_IPPROTO_CISCO             = 11\n\tMIB_IPPROTO_BBN               = 12\n\tMIB_IPPROTO_OSPF              = 13\n\tMIB_IPPROTO_BGP               = 14\n\tMIB_IPPROTO_IDPR              = 15\n\tMIB_IPPROTO_EIGRP             = 16\n\tMIB_IPPROTO_DVMRP             = 17\n\tMIB_IPPROTO_RPL               = 18\n\tMIB_IPPROTO_DHCP              = 19\n\tMIB_IPPROTO_NT_AUTOSTATIC     = 10002\n\tMIB_IPPROTO_NT_STATIC         = 10006\n\tMIB_IPPROTO_NT_STATIC_NON_DOD = 10007\n)\n\n// MIB_IPFORWARD_ROW2 stores information about an IP route entry. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_row2.\ntype MibIpForwardRow2 struct {\n\tInterfaceLuid        uint64\n\tInterfaceIndex       uint32\n\tDestinationPrefix    IpAddressPrefix\n\tNextHop              RawSockaddrInet\n\tSitePrefixLength     uint8\n\tValidLifetime        uint32\n\tPreferredLifetime    uint32\n\tMetric               uint32\n\tProtocol             uint32\n\tLoopback             uint8\n\tAutoconfigureAddress uint8\n\tPublish              uint8\n\tImmortal             uint8\n\tAge                  uint32\n\tOrigin               uint32\n}\n\n// MIB_IPFORWARD_TABLE2 contains a table of IP route entries. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_table2.\ntype MibIpForwardTable2 struct {\n\tNumEntries uint32\n\tTable      [1]MibIpForwardRow2\n}\n\n// Rows returns the IP route entries in the table.\nfunc (t *MibIpForwardTable2) Rows() []MibIpForwardRow2 {\n\treturn unsafe.Slice(&t.Table[0], t.NumEntries)\n}\n\n// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row.\ntype MibUnicastIpAddressRow struct {\n\tAddress            RawSockaddrInet6 // SOCKADDR_INET union\n\tInterfaceLuid      uint64\n\tInterfaceIndex     uint32\n\tPrefixOrigin       uint32\n\tSuffixOrigin       uint32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tOnLinkPrefixLength uint8\n\tSkipAsSource       uint8\n\tDadState           uint32\n\tScopeId            uint32\n\tCreationTimeStamp  Filetime\n}\n\nconst ScopeLevelCount = 16\n\n// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface.\n// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row.\ntype MibIpInterfaceRow struct {\n\tFamily                               uint16\n\tInterfaceLuid                        uint64\n\tInterfaceIndex                       uint32\n\tMaxReassemblySize                    uint32\n\tInterfaceIdentifier                  uint64\n\tMinRouterAdvertisementInterval       uint32\n\tMaxRouterAdvertisementInterval       uint32\n\tAdvertisingEnabled                   uint8\n\tForwardingEnabled                    uint8\n\tWeakHostSend                         uint8\n\tWeakHostReceive                      uint8\n\tUseAutomaticMetric                   uint8\n\tUseNeighborUnreachabilityDetection   uint8\n\tManagedAddressConfigurationSupported uint8\n\tOtherStatefulConfigurationSupported  uint8\n\tAdvertiseDefaultRoute                uint8\n\tRouterDiscoveryBehavior              uint32\n\tDadTransmits                         uint32\n\tBaseReachableTime                    uint32\n\tRetransmitTime                       uint32\n\tPathMtuDiscoveryTimeout              uint32\n\tLinkLocalAddressBehavior             uint32\n\tLinkLocalAddressTimeout              uint32\n\tZoneIndices                          [ScopeLevelCount]uint32\n\tSitePrefixLength                     uint32\n\tMetric                               uint32\n\tNlMtu                                uint32\n\tConnected                            uint8\n\tSupportsWakeUpPatterns               uint8\n\tSupportsNeighborDiscovery            uint8\n\tSupportsRouterDiscovery              uint8\n\tReachableTime                        uint32\n\tTransmitOffload                      uint32\n\tReceiveOffload                       uint32\n\tDisableDefaultRoutes                 uint8\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\t// Note: Length and MaximumLength are in *bytes*, not uint16s.\n\t// They should always be even.\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\n// Virtual Key codes\n// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes\nconst (\n\tVK_LBUTTON             = 0x01\n\tVK_RBUTTON             = 0x02\n\tVK_CANCEL              = 0x03\n\tVK_MBUTTON             = 0x04\n\tVK_XBUTTON1            = 0x05\n\tVK_XBUTTON2            = 0x06\n\tVK_BACK                = 0x08\n\tVK_TAB                 = 0x09\n\tVK_CLEAR               = 0x0C\n\tVK_RETURN              = 0x0D\n\tVK_SHIFT               = 0x10\n\tVK_CONTROL             = 0x11\n\tVK_MENU                = 0x12\n\tVK_PAUSE               = 0x13\n\tVK_CAPITAL             = 0x14\n\tVK_KANA                = 0x15\n\tVK_HANGEUL             = 0x15\n\tVK_HANGUL              = 0x15\n\tVK_IME_ON              = 0x16\n\tVK_JUNJA               = 0x17\n\tVK_FINAL               = 0x18\n\tVK_HANJA               = 0x19\n\tVK_KANJI               = 0x19\n\tVK_IME_OFF             = 0x1A\n\tVK_ESCAPE              = 0x1B\n\tVK_CONVERT             = 0x1C\n\tVK_NONCONVERT          = 0x1D\n\tVK_ACCEPT              = 0x1E\n\tVK_MODECHANGE          = 0x1F\n\tVK_SPACE               = 0x20\n\tVK_PRIOR               = 0x21\n\tVK_NEXT                = 0x22\n\tVK_END                 = 0x23\n\tVK_HOME                = 0x24\n\tVK_LEFT                = 0x25\n\tVK_UP                  = 0x26\n\tVK_RIGHT               = 0x27\n\tVK_DOWN                = 0x28\n\tVK_SELECT              = 0x29\n\tVK_PRINT               = 0x2A\n\tVK_EXECUTE             = 0x2B\n\tVK_SNAPSHOT            = 0x2C\n\tVK_INSERT              = 0x2D\n\tVK_DELETE              = 0x2E\n\tVK_HELP                = 0x2F\n\tVK_LWIN                = 0x5B\n\tVK_RWIN                = 0x5C\n\tVK_APPS                = 0x5D\n\tVK_SLEEP               = 0x5F\n\tVK_NUMPAD0             = 0x60\n\tVK_NUMPAD1             = 0x61\n\tVK_NUMPAD2             = 0x62\n\tVK_NUMPAD3             = 0x63\n\tVK_NUMPAD4             = 0x64\n\tVK_NUMPAD5             = 0x65\n\tVK_NUMPAD6             = 0x66\n\tVK_NUMPAD7             = 0x67\n\tVK_NUMPAD8             = 0x68\n\tVK_NUMPAD9             = 0x69\n\tVK_MULTIPLY            = 0x6A\n\tVK_ADD                 = 0x6B\n\tVK_SEPARATOR           = 0x6C\n\tVK_SUBTRACT            = 0x6D\n\tVK_DECIMAL             = 0x6E\n\tVK_DIVIDE              = 0x6F\n\tVK_F1                  = 0x70\n\tVK_F2                  = 0x71\n\tVK_F3                  = 0x72\n\tVK_F4                  = 0x73\n\tVK_F5                  = 0x74\n\tVK_F6                  = 0x75\n\tVK_F7                  = 0x76\n\tVK_F8                  = 0x77\n\tVK_F9                  = 0x78\n\tVK_F10                 = 0x79\n\tVK_F11                 = 0x7A\n\tVK_F12                 = 0x7B\n\tVK_F13                 = 0x7C\n\tVK_F14                 = 0x7D\n\tVK_F15                 = 0x7E\n\tVK_F16                 = 0x7F\n\tVK_F17                 = 0x80\n\tVK_F18                 = 0x81\n\tVK_F19                 = 0x82\n\tVK_F20                 = 0x83\n\tVK_F21                 = 0x84\n\tVK_F22                 = 0x85\n\tVK_F23                 = 0x86\n\tVK_F24                 = 0x87\n\tVK_NUMLOCK             = 0x90\n\tVK_SCROLL              = 0x91\n\tVK_OEM_NEC_EQUAL       = 0x92\n\tVK_OEM_FJ_JISHO        = 0x92\n\tVK_OEM_FJ_MASSHOU      = 0x93\n\tVK_OEM_FJ_TOUROKU      = 0x94\n\tVK_OEM_FJ_LOYA         = 0x95\n\tVK_OEM_FJ_ROYA         = 0x96\n\tVK_LSHIFT              = 0xA0\n\tVK_RSHIFT              = 0xA1\n\tVK_LCONTROL            = 0xA2\n\tVK_RCONTROL            = 0xA3\n\tVK_LMENU               = 0xA4\n\tVK_RMENU               = 0xA5\n\tVK_BROWSER_BACK        = 0xA6\n\tVK_BROWSER_FORWARD     = 0xA7\n\tVK_BROWSER_REFRESH     = 0xA8\n\tVK_BROWSER_STOP        = 0xA9\n\tVK_BROWSER_SEARCH      = 0xAA\n\tVK_BROWSER_FAVORITES   = 0xAB\n\tVK_BROWSER_HOME        = 0xAC\n\tVK_VOLUME_MUTE         = 0xAD\n\tVK_VOLUME_DOWN         = 0xAE\n\tVK_VOLUME_UP           = 0xAF\n\tVK_MEDIA_NEXT_TRACK    = 0xB0\n\tVK_MEDIA_PREV_TRACK    = 0xB1\n\tVK_MEDIA_STOP          = 0xB2\n\tVK_MEDIA_PLAY_PAUSE    = 0xB3\n\tVK_LAUNCH_MAIL         = 0xB4\n\tVK_LAUNCH_MEDIA_SELECT = 0xB5\n\tVK_LAUNCH_APP1         = 0xB6\n\tVK_LAUNCH_APP2         = 0xB7\n\tVK_OEM_1               = 0xBA\n\tVK_OEM_PLUS            = 0xBB\n\tVK_OEM_COMMA           = 0xBC\n\tVK_OEM_MINUS           = 0xBD\n\tVK_OEM_PERIOD          = 0xBE\n\tVK_OEM_2               = 0xBF\n\tVK_OEM_3               = 0xC0\n\tVK_OEM_4               = 0xDB\n\tVK_OEM_5               = 0xDC\n\tVK_OEM_6               = 0xDD\n\tVK_OEM_7               = 0xDE\n\tVK_OEM_8               = 0xDF\n\tVK_OEM_AX              = 0xE1\n\tVK_OEM_102             = 0xE2\n\tVK_ICO_HELP            = 0xE3\n\tVK_ICO_00              = 0xE4\n\tVK_PROCESSKEY          = 0xE5\n\tVK_ICO_CLEAR           = 0xE6\n\tVK_OEM_RESET           = 0xE9\n\tVK_OEM_JUMP            = 0xEA\n\tVK_OEM_PA1             = 0xEB\n\tVK_OEM_PA2             = 0xEC\n\tVK_OEM_PA3             = 0xED\n\tVK_OEM_WSCTRL          = 0xEE\n\tVK_OEM_CUSEL           = 0xEF\n\tVK_OEM_ATTN            = 0xF0\n\tVK_OEM_FINISH          = 0xF1\n\tVK_OEM_COPY            = 0xF2\n\tVK_OEM_AUTO            = 0xF3\n\tVK_OEM_ENLW            = 0xF4\n\tVK_OEM_BACKTAB         = 0xF5\n\tVK_ATTN                = 0xF6\n\tVK_CRSEL               = 0xF7\n\tVK_EXSEL               = 0xF8\n\tVK_EREOF               = 0xF9\n\tVK_PLAY                = 0xFA\n\tVK_ZOOM                = 0xFB\n\tVK_NONAME              = 0xFC\n\tVK_PA1                 = 0xFD\n\tVK_OEM_CLEAR           = 0xFE\n)\n\n// Mouse button constants.\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tFROM_LEFT_1ST_BUTTON_PRESSED = 0x0001\n\tRIGHTMOST_BUTTON_PRESSED     = 0x0002\n\tFROM_LEFT_2ND_BUTTON_PRESSED = 0x0004\n\tFROM_LEFT_3RD_BUTTON_PRESSED = 0x0008\n\tFROM_LEFT_4TH_BUTTON_PRESSED = 0x0010\n)\n\n// Control key state constaints.\n// https://docs.microsoft.com/en-us/windows/console/key-event-record-str\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tCAPSLOCK_ON        = 0x0080\n\tENHANCED_KEY       = 0x0100\n\tLEFT_ALT_PRESSED   = 0x0002\n\tLEFT_CTRL_PRESSED  = 0x0008\n\tNUMLOCK_ON         = 0x0020\n\tRIGHT_ALT_PRESSED  = 0x0001\n\tRIGHT_CTRL_PRESSED = 0x0004\n\tSCROLLLOCK_ON      = 0x0040\n\tSHIFT_PRESSED      = 0x0010\n)\n\n// Mouse event record event flags.\n// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str\nconst (\n\tMOUSE_MOVED    = 0x0001\n\tDOUBLE_CLICK   = 0x0002\n\tMOUSE_WHEELED  = 0x0004\n\tMOUSE_HWHEELED = 0x0008\n)\n\n// Input Record Event Types\n// https://learn.microsoft.com/en-us/windows/console/input-record-str\nconst (\n\tFOCUS_EVENT              = 0x0010\n\tKEY_EVENT                = 0x0001\n\tMENU_EVENT               = 0x0008\n\tMOUSE_EVENT              = 0x0002\n\tWINDOW_BUFFER_SIZE_EVENT = 0x0004\n)\n\n// The processor features to be tested for IsProcessorFeaturePresent, see\n// https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent\nconst (\n\tPF_ARM_64BIT_LOADSTORE_ATOMIC              = 25\n\tPF_ARM_DIVIDE_INSTRUCTION_AVAILABLE        = 24\n\tPF_ARM_EXTERNAL_CACHE_AVAILABLE            = 26\n\tPF_ARM_FMAC_INSTRUCTIONS_AVAILABLE         = 27\n\tPF_ARM_VFP_32_REGISTERS_AVAILABLE          = 18\n\tPF_3DNOW_INSTRUCTIONS_AVAILABLE            = 7\n\tPF_CHANNELS_ENABLED                        = 16\n\tPF_COMPARE_EXCHANGE_DOUBLE                 = 2\n\tPF_COMPARE_EXCHANGE128                     = 14\n\tPF_COMPARE64_EXCHANGE128                   = 15\n\tPF_FASTFAIL_AVAILABLE                      = 23\n\tPF_FLOATING_POINT_EMULATED                 = 1\n\tPF_FLOATING_POINT_PRECISION_ERRATA         = 0\n\tPF_MMX_INSTRUCTIONS_AVAILABLE              = 3\n\tPF_NX_ENABLED                              = 12\n\tPF_PAE_ENABLED                             = 9\n\tPF_RDTSC_INSTRUCTION_AVAILABLE             = 8\n\tPF_RDWRFSGSBASE_AVAILABLE                  = 22\n\tPF_SECOND_LEVEL_ADDRESS_TRANSLATION        = 20\n\tPF_SSE3_INSTRUCTIONS_AVAILABLE             = 13\n\tPF_SSSE3_INSTRUCTIONS_AVAILABLE            = 36\n\tPF_SSE4_1_INSTRUCTIONS_AVAILABLE           = 37\n\tPF_SSE4_2_INSTRUCTIONS_AVAILABLE           = 38\n\tPF_AVX_INSTRUCTIONS_AVAILABLE              = 39\n\tPF_AVX2_INSTRUCTIONS_AVAILABLE             = 40\n\tPF_AVX512F_INSTRUCTIONS_AVAILABLE          = 41\n\tPF_VIRT_FIRMWARE_ENABLED                   = 21\n\tPF_XMMI_INSTRUCTIONS_AVAILABLE             = 6\n\tPF_XMMI64_INSTRUCTIONS_AVAILABLE           = 10\n\tPF_XSAVE_ENABLED                           = 17\n\tPF_ARM_V8_INSTRUCTIONS_AVAILABLE           = 29\n\tPF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE    = 30\n\tPF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE     = 31\n\tPF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE   = 34\n\tPF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE       = 43\n\tPF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE    = 44\n\tPF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE    = 45\n\tPF_ARM_SVE_INSTRUCTIONS_AVAILABLE          = 46\n\tPF_ARM_SVE2_INSTRUCTIONS_AVAILABLE         = 47\n\tPF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE       = 48\n\tPF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE      = 49\n\tPF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE = 50\n\tPF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE  = 51\n\tPF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE     = 52\n\tPF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE    = 53\n\tPF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE   = 54\n\tPF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE     = 55\n\tPF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE      = 56\n\tPF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE     = 57\n\tPF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE    = 58\n\tPF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE    = 59\n\tPF_BMI2_INSTRUCTIONS_AVAILABLE             = 60\n\tPF_MOVDIR64B_INSTRUCTION_AVAILABLE         = 61\n\tPF_ARM_LSE2_AVAILABLE                      = 62\n\tPF_ARM_SHA3_INSTRUCTIONS_AVAILABLE         = 64\n\tPF_ARM_SHA512_INSTRUCTIONS_AVAILABLE       = 65\n\tPF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE     = 66\n\tPF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE     = 67\n\tPF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE     = 68\n\tPF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE    = 69\n\tPF_ARM_SME_INSTRUCTIONS_AVAILABLE          = 70\n\tPF_ARM_SME2_INSTRUCTIONS_AVAILABLE         = 71\n\tPF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE       = 72\n\tPF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE       = 73\n\tPF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE      = 74\n\tPF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE = 75\n\tPF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE   = 76\n\tPF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE   = 77\n\tPF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE   = 78\n\tPF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE   = 79\n\tPF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE   = 80\n\tPF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE    = 81\n\tPF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE    = 82\n\tPF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE   = 83\n\tPF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE   = 84\n\tPF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE   = 85\n\tPF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE   = 86\n\tPF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE    = 87\n\tPF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE     = 88\n\tPF_UMONITOR_INSTRUCTION_AVAILABLE          = 89\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\tprocCancelMibChangeNotify2                               = modiphlpapi.NewProc(\"CancelMibChangeNotify2\")\n\tprocFreeMibTable                                         = modiphlpapi.NewProc(\"FreeMibTable\")\n\tprocGetAdaptersAddresses                                 = modiphlpapi.NewProc(\"GetAdaptersAddresses\")\n\tprocGetAdaptersInfo                                      = modiphlpapi.NewProc(\"GetAdaptersInfo\")\n\tprocGetBestInterfaceEx                                   = modiphlpapi.NewProc(\"GetBestInterfaceEx\")\n\tprocGetIfEntry                                           = modiphlpapi.NewProc(\"GetIfEntry\")\n\tprocGetIfEntry2Ex                                        = modiphlpapi.NewProc(\"GetIfEntry2Ex\")\n\tprocGetIpForwardEntry2                                   = modiphlpapi.NewProc(\"GetIpForwardEntry2\")\n\tprocGetIpForwardTable2                                   = modiphlpapi.NewProc(\"GetIpForwardTable2\")\n\tprocGetUnicastIpAddressEntry                             = modiphlpapi.NewProc(\"GetUnicastIpAddressEntry\")\n\tprocNotifyIpInterfaceChange                              = modiphlpapi.NewProc(\"NotifyIpInterfaceChange\")\n\tprocNotifyRouteChange2                                   = modiphlpapi.NewProc(\"NotifyRouteChange2\")\n\tprocNotifyUnicastIpAddressChange                         = modiphlpapi.NewProc(\"NotifyUnicastIpAddressChange\")\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\tprocFlushConsoleInputBuffer                              = modkernel32.NewProc(\"FlushConsoleInputBuffer\")\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\tprocGetConsoleCP                                         = modkernel32.NewProc(\"GetConsoleCP\")\n\tprocGetConsoleMode                                       = modkernel32.NewProc(\"GetConsoleMode\")\n\tprocGetConsoleOutputCP                                   = modkernel32.NewProc(\"GetConsoleOutputCP\")\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\tprocGetNamedPipeClientProcessId                          = modkernel32.NewProc(\"GetNamedPipeClientProcessId\")\n\tprocGetNamedPipeHandleStateW                             = modkernel32.NewProc(\"GetNamedPipeHandleStateW\")\n\tprocGetNamedPipeInfo                                     = modkernel32.NewProc(\"GetNamedPipeInfo\")\n\tprocGetNamedPipeServerProcessId                          = modkernel32.NewProc(\"GetNamedPipeServerProcessId\")\n\tprocGetNumberOfConsoleInputEvents                        = modkernel32.NewProc(\"GetNumberOfConsoleInputEvents\")\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\tprocIsProcessorFeaturePresent                            = modkernel32.NewProc(\"IsProcessorFeaturePresent\")\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\tprocSetConsoleCP                                         = modkernel32.NewProc(\"SetConsoleCP\")\n\tprocSetConsoleCursorPosition                             = modkernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocSetConsoleMode                                       = modkernel32.NewProc(\"SetConsoleMode\")\n\tprocSetConsoleOutputCP                                   = modkernel32.NewProc(\"SetConsoleOutputCP\")\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\tprocWSADuplicateSocketW                                  = modws2_32.NewProc(\"WSADuplicateSocketW\")\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.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags))\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.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags))\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.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags))\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {\n\tr0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error))\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.SyscallN(procAdjustTokenGroups.Addr(), 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.SyscallN(procAdjustTokenPrivileges.Addr(), 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.SyscallN(procAllocateAndInitializeSid.Addr(), 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)))\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.SyscallN(procBuildSecurityDescriptorW.Addr(), 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.SyscallN(procChangeServiceConfig2W.Addr(), 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.SyscallN(procChangeServiceConfigW.Addr(), 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)))\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.SyscallN(procCheckTokenMembership.Addr(), 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.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle))\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.SyscallN(procControlService.Addr(), 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.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)))\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.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)))\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.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)))\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.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)))\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.SyscallN(procCopySid.Addr(), 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.SyscallN(procCreateProcessAsUserW.Addr(), 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)))\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.SyscallN(procCreateServiceW.Addr(), 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)))\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.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)))\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.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags))\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.SyscallN(procCryptGenRandom.Addr(), 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.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags))\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.SyscallN(procDeleteService.Addr(), uintptr(service))\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.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle))\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.SyscallN(procDuplicateTokenEx.Addr(), 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.SyscallN(procEnumDependentServicesW.Addr(), 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.SyscallN(procEnumServicesStatusExW.Addr(), 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)))\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.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)))\n\tisEqual = r0 != 0\n\treturn\n}\n\nfunc FreeSid(sid *SID) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid)))\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.SyscallN(procGetAce.Addr(), 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.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid)))\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.SyscallN(procGetNamedSecurityInfoW.Addr(), 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)))\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.SyscallN(procGetSecurityDescriptorControl.Addr(), 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.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)))\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.SyscallN(procGetSecurityDescriptorGroup.Addr(), 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.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd)))\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.SyscallN(procGetSecurityDescriptorOwner.Addr(), 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.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))\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.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)))\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.SyscallN(procGetSecurityInfo.Addr(), 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)))\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.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid)))\n\tauthority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index))\n\tsubAuthority = (*uint32)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthorityCount(sid *SID) (count *uint8) {\n\tr0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid)))\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.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)))\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.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel))\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.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision))\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.SyscallN(procInitiateSystemShutdownExW.Addr(), 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.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle))\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.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd)))\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isValidSid(sid *SID) (isValid bool) {\n\tr0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid)))\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType))\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.SyscallN(procLookupAccountNameW.Addr(), 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)))\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.SyscallN(procLookupAccountSidW.Addr(), 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)))\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.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 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.SyscallN(procMakeAbsoluteSD.Addr(), 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)))\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.SyscallN(procMakeSelfRelativeSD.Addr(), 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.SyscallN(procNotifyServiceStatusChangeW.Addr(), 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.SyscallN(procOpenProcessToken.Addr(), 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.SyscallN(procOpenSCManagerW.Addr(), 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.SyscallN(procOpenServiceW.Addr(), 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.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)))\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.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))\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.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))\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.SyscallN(procQueryServiceDynamicInformation.Addr(), 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.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))\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.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status)))\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.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegCloseKey(key Handle) (regerrno error) {\n\tr0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key))\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.SyscallN(procRegEnumKeyExW.Addr(), 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)))\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.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1))\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.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)))\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.SyscallN(procRegQueryInfoKeyW.Addr(), 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.SyscallN(procRegQueryValueExW.Addr(), 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.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)))\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.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), 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.SyscallN(procReportEventW.Addr(), 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.SyscallN(procRevertToSelf.Addr())\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.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)))\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.SyscallN(procSetKernelObjectSecurity.Addr(), 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.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))\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.SyscallN(procSetSecurityDescriptorControl.Addr(), 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.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1))\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.SyscallN(procSetSecurityDescriptorGroup.Addr(), 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.SyscallN(procSetSecurityDescriptorOwner.Addr(), 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.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))\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.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1))\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.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))\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.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus)))\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.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token))\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.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen))\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.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable)))\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.SyscallN(procStartServiceW.Addr(), 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.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)))\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.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags))\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.SyscallN(procCertCreateCertificateContext.Addr(), 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.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {\n\tr0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext)))\n\tdupContext = (*CertContext)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext)))\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.SyscallN(procCertFindCertificateInStore.Addr(), 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.SyscallN(procCertFindChainInStore.Addr(), 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.SyscallN(procCertFindExtension.Addr(), 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.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx)))\n\treturn\n}\n\nfunc CertFreeCertificateContext(ctx *CertContext) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx)))\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.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)))\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.SyscallN(procCertGetNameStringW.Addr(), 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.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para))\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.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name)))\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.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)))\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.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), 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.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)))\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.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))\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.SyscallN(procCryptQueryObject.Addr(), 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)))\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.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))\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.SyscallN(procPFXImportCertStore.Addr(), 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.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)))\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.SyscallN(procDnsQuery_W.Addr(), 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.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype))\n\treturn\n}\n\nfunc DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))\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.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CancelMibChangeNotify2(notificationHandle Handle) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc FreeMibTable(memory unsafe.Pointer) {\n\tsyscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory))\n\treturn\n}\n\nfunc GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)))\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.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)))\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.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)))\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.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), uintptr(family), uintptr(unsafe.Pointer(table)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) {\n\tr0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))\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.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path)))\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.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process))\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.SyscallN(procCancelIo.Addr(), uintptr(s))\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.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o)))\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.SyscallN(procClearCommBreak.Addr(), uintptr(handle))\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.SyscallN(procClearCommError.Addr(), 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.SyscallN(procCloseHandle.Addr(), uintptr(handle))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClosePseudoConsole(console Handle) {\n\tsyscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console))\n\treturn\n}\n\nfunc ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)))\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.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))\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.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), 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 CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), 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.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile))\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.SyscallN(procCreateHardLinkW.Addr(), 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.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt))\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.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)))\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.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))\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.SyscallN(procCreateMutexW.Addr(), 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.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 = 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.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size))\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.SyscallN(procCreateProcessW.Addr(), 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)))\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.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)))\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.SyscallN(procCreateSymbolicLinkW.Addr(), 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.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId))\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.SyscallN(procDefineDosDeviceW.Addr(), 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.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {\n\tsyscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)))\n\treturn\n}\n\nfunc DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)))\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.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe))\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.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions))\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.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitProcess(exitcode uint32) {\n\tsyscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode))\n\treturn\n}\n\nfunc ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), 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.SyscallN(procFindClose.Addr(), uintptr(handle))\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.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle))\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.SyscallN(procFindFirstChangeNotificationW.Addr(), 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.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)))\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.SyscallN(procFindFirstVolumeMountPointW.Addr(), 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.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))\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.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle))\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.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))\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.SyscallN(procFindNextVolumeMountPointW.Addr(), 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.SyscallN(procFindNextVolumeW.Addr(), 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.SyscallN(procFindResourceW.Addr(), 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.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume))\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.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushConsoleInputBuffer(console Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console))\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.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle))\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.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length))\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.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)))\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.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs)))\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.SyscallN(procFreeLibrary.Addr(), uintptr(handle))\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.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetACP() (acp uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetACP.Addr())\n\tacp = uint32(r0)\n\treturn\n}\n\nfunc GetActiveProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)))\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.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))\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.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommandLine() (cmd *uint16) {\n\tr0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr())\n\tcmd = (*uint16)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), 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.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr())\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleMode(console Handle, mode *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleOutputCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr())\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info)))\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.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\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.SyscallN(procGetCurrentProcessId.Addr())\n\tpid = uint32(r0)\n\treturn\n}\n\nfunc GetCurrentThreadId() (id uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr())\n\tid = uint32(r0)\n\treturn\n}\n\nfunc GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDriveType(rootPathName *uint16) (driveType uint32) {\n\tr0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName)))\n\tdriveType = uint32(r0)\n\treturn\n}\n\nfunc GetEnvironmentStrings() (envs *uint16, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr())\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.SyscallN(procGetEnvironmentVariableW.Addr(), 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.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode)))\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.SyscallN(procGetFileAttributesExW.Addr(), 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.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)))\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.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))\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.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen))\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.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))\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.SyscallN(procGetFileType.Addr(), uintptr(filehandle))\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.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags))\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.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)))\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.SyscallN(procGetLargePageMinimum.Addr())\n\tsize = uintptr(r0)\n\treturn\n}\n\nfunc GetLastError() (lasterr error) {\n\tr0, _, _ := syscall.SyscallN(procGetLastError.Addr())\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.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)))\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.SyscallN(procGetLogicalDrives.Addr())\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.SyscallN(procGetLongPathNameW.Addr(), 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.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), 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.SyscallN(procGetModuleHandleExW.Addr(), 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 GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)))\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.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 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 GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents)))\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.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0))\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.SyscallN(procGetPriorityClass.Addr(), uintptr(process))\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.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname)))\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.SyscallN(procGetProcessId.Addr(), uintptr(process))\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.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\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.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)))\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.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)))\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.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)))\n\treturn\n}\n\nfunc GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout))\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.SyscallN(procGetShortPathNameW.Addr(), 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.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo)))\n\treturn\n}\n\nfunc GetStdHandle(stdhandle uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle))\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.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\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.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetSystemTimeAsFileTime(time *Filetime) {\n\tsyscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))\n\treturn\n}\n\nfunc GetSystemTimePreciseAsFileTime(time *Filetime) {\n\tsyscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))\n\treturn\n}\n\nfunc getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\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.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\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.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getTickCount64() (ms uint64) {\n\tr0, _, _ := syscall.SyscallN(procGetTickCount64.Addr())\n\tms = uint64(r0)\n\treturn\n}\n\nfunc GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi)))\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.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))\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.SyscallN(procGetVersion.Addr())\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.SyscallN(procGetVolumeInformationByHandleW.Addr(), 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))\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.SyscallN(procGetVolumeInformationW.Addr(), 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))\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.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), 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.SyscallN(procGetVolumePathNameW.Addr(), 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.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)))\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.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))\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.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) {\n\tr0, _, _ := syscall.SyscallN(procIsProcessorFeaturePresent.Addr(), uintptr(ProcessorFeature))\n\tret = r0 != 0\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.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0)))\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.SyscallN(procIsWow64Process2.Addr(), 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.SyscallN(procLoadLibraryExW.Addr(), 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.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname)))\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.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo))\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.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length))\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.SyscallN(procLocalFree.Addr(), uintptr(hmem))\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.SyscallN(procLockFileEx.Addr(), 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.SyscallN(procLockResource.Addr(), uintptr(resData))\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.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length))\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.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))\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.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))\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.SyscallN(procMoveFileExW.Addr(), 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.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)))\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.SyscallN(procMultiByteToWideChar.Addr(), 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.SyscallN(procOpenEventW.Addr(), 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.SyscallN(procOpenMutexW.Addr(), 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.SyscallN(procOpenProcess.Addr(), 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.SyscallN(procOpenThread.Addr(), 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.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))\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.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))\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.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid)))\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.SyscallN(procPulseEvent.Addr(), uintptr(event))\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.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags))\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.SyscallN(procQueryDosDeviceW.Addr(), 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.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)))\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.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)))\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.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)))\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.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))\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.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)))\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.SyscallN(procReleaseMutex.Addr(), uintptr(mutex))\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.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\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.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie))\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.SyscallN(procResetEvent.Addr(), uintptr(event))\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.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size))\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.SyscallN(procResumeThread.Addr(), uintptr(thread))\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.SyscallN(procSetCommBreak.Addr(), uintptr(handle))\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.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask))\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.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))\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.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp))\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.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position))\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.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleOutputCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp))\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.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\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.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags))\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.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))\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.SyscallN(procSetEndOfFile.Addr(), uintptr(handle))\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.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetErrorMode(mode uint32) (ret uint32) {\n\tr0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc SetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event))\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.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs))\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.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags))\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.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen))\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.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence))\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.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))\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.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength))\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.SyscallN(procSetHandleInformation.Addr(), 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.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength))\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.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)))\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.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass))\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.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0))\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.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags))\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.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags))\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.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle))\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.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)))\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.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)))\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.SyscallN(procSetupComm.Addr(), 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.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo))\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.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0))\n\tret = uint32(r0)\n\treturn\n}\n\nfunc TerminateJobObject(job Handle, exitCode uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode))\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.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode))\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.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))\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.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))\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.SyscallN(procUnlockFileEx.Addr(), uintptr(file), 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 UnmapViewOfFile(addr uintptr) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr))\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.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)))\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.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect))\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.SyscallN(procVirtualFree.Addr(), 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.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length))\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.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)))\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.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)))\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.SyscallN(procVirtualQuery.Addr(), 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.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))\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.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSGetActiveConsoleSessionId() (sessionID uint32) {\n\tr0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr())\n\tsessionID = uint32(r0)\n\treturn\n}\n\nfunc WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), 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.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds))\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.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds))\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.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)))\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.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)))\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.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)))\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.SyscallN(procGetAcceptExSockaddrs.Addr(), 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)))\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.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NetApiBufferFree(buf *byte) (neterr error) {\n\tr0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf)))\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.SyscallN(procNetGetJoinInformation.Addr(), 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.SyscallN(procNetUserEnum.Addr(), 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)))\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.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)))\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.SyscallN(procNtCreateFile.Addr(), 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))\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.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\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.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)))\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.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)))\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.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class))\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.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen))\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.SyscallN(procNtSetSystemInformation.Addr(), 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.SyscallN(procRtlAddFunctionTable.Addr(), 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.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl)))\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.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)))\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.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))\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.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlGetCurrentPeb() (peb *PEB) {\n\tr0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr())\n\tpeb = (*PEB)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {\n\tsyscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), 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.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info)))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlInitString(destinationString *NTString, sourceString *byte) {\n\tsyscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))\n\treturn\n}\n\nfunc RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {\n\tsyscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))\n\treturn\n}\n\nfunc rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {\n\tr0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus))\n\tret = syscall.Errno(r0)\n\treturn\n}\n\nfunc clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {\n\tr0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)))\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.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid)))\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.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)))\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.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoTaskMemFree(address unsafe.Pointer) {\n\tsyscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address))\n\treturn\n}\n\nfunc CoUninitialize() {\n\tsyscall.SyscallN(procCoUninitialize.Addr())\n\treturn\n}\n\nfunc stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {\n\tr0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), 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.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)))\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.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag))\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.SyscallN(procEnumProcesses.Addr(), 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.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size))\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.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))\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.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb))\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.SyscallN(procQueryWorkingSetEx.Addr(), 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.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)))\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.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription))\n\treturn\n}\n\nfunc GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), 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.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)))\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.SyscallN(procSetupDiBuildDriverInfoList.Addr(), 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.SyscallN(procSetupDiCallClassInstaller.Addr(), 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.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet))\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.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), 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.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), 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.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\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.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)))\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.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet))\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.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), 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.SyscallN(procSetupDiEnumDeviceInfo.Addr(), 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.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)))\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.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\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.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)))\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.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)))\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.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), 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.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)))\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.SyscallN(procSetupDiGetDevicePropertyW.Addr(), 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))\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.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)))\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.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), 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.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\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.SyscallN(procSetupDiGetSelectedDriverW.Addr(), 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.SyscallN(procSetupDiOpenDevRegKey.Addr(), 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.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize))\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.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), 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.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize))\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.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\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.SyscallN(procSetupDiSetSelectedDriverW.Addr(), 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.SyscallN(procSetupUninstallOEMInfW.Addr(), 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.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)))\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.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)))\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.SyscallN(procShellExecuteW.Addr(), 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.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param))\n\treturn\n}\n\nfunc EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param))\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.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason))\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.SyscallN(procGetClassNameW.Addr(), 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.SyscallN(procGetDesktopWindow.Addr())\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetForegroundWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr())\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetKeyboardLayout(tid uint32) (hkl Handle) {\n\tr0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid))\n\thkl = Handle(r0)\n\treturn\n}\n\nfunc GetShellWindow() (shellWindow HWND) {\n\tr0, _, _ := syscall.SyscallN(procGetShellWindow.Addr())\n\tshellWindow = HWND(r0)\n\treturn\n}\n\nfunc GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {\n\tr0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid)))\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.SyscallN(procIsWindow.Addr(), uintptr(hwnd))\n\tisWindow = r0 != 0\n\treturn\n}\n\nfunc IsWindowUnicode(hwnd HWND) (isUnicode bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd))\n\tisUnicode = r0 != 0\n\treturn\n}\n\nfunc IsWindowVisible(hwnd HWND) (isVisible bool) {\n\tr0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd))\n\tisVisible = r0 != 0\n\treturn\n}\n\nfunc LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags))\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.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype))\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.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl))\n\tret = int32(r0)\n\treturn\n}\n\nfunc UnloadKeyboardLayout(hkl Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl))\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.SyscallN(procCreateEnvironmentBlock.Addr(), 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.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)))\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.SyscallN(procGetUserProfileDirectoryW.Addr(), 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.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)))\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.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer))\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.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)))\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.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period))\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.SyscallN(proctimeEndPeriod.Addr(), uintptr(period))\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.SyscallN(procWinVerifyTrustEx.Addr(), 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.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo)))\n\treturn\n}\n\nfunc GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {\n\tr0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)))\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc WSACleanup() (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSACleanup.Addr())\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info)))\n\tif r1 != 0 {\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.SyscallN(procWSAEnumProtocolsW.Addr(), 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.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\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.SyscallN(procWSAIoctl.Addr(), 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.SyscallN(procWSALookupServiceBeginW.Addr(), 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.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle))\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.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)))\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.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), 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 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.SyscallN(procWSARecvFrom.Addr(), 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.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), 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 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.SyscallN(procWSASendTo.Addr(), 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.SyscallN(procWSASocketW.Addr(), 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.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data)))\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.SyscallN(procbind.Addr(), 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.SyscallN(procclosesocket.Addr(), uintptr(s))\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.SyscallN(procconnect.Addr(), 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.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name)))\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.SyscallN(procgetpeername.Addr(), 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.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name)))\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.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)))\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.SyscallN(procgetsockname.Addr(), 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.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)))\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.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog))\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.SyscallN(procntohs.Addr(), uintptr(netshort))\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.SyscallN(procrecvfrom.Addr(), 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.SyscallN(procsendto.Addr(), 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.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen))\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.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how))\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.SyscallN(procsocket.Addr(), 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.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSFreeMemory(ptr uintptr) {\n\tsyscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr))\n\treturn\n}\n\nfunc WTSQueryUserToken(session uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token)))\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 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/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## Report Issues / Send Patches\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://go.dev/doc/contribute.\n\nThe git repository is https://go.googlesource.com/term.\n\nThe main issue tracker for the term repository is located at\nhttps://go.dev/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\n// This is intended to be used on a console input handle.\n// See https://learn.microsoft.com/en-us/windows/console/setconsolemode\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)\n\traw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT\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\"fmt\"\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// A History provides a (possibly bounded) queue of input lines read by [Terminal.ReadLine].\ntype History interface {\n\t// Add will be called by [Terminal.ReadLine] to add\n\t// a new, most recent entry to the history.\n\t// It is allowed to drop any entry, including\n\t// the entry being added (e.g., if it's deemed an invalid entry),\n\t// the least-recent entry (e.g., to keep the history bounded),\n\t// or any other entry.\n\tAdd(entry string)\n\n\t// Len returns the number of entries in the history.\n\tLen() int\n\n\t// At returns an entry from the history.\n\t// Index 0 is the most-recently added entry and\n\t// index Len()-1 is the least-recently added entry.\n\t// If index is < 0 or >= Len(), it panics.\n\tAt(idx int) string\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\t//\n\t// This will be disabled during ReadPassword.\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 records and retrieves lines of input read by [ReadLine] which\n\t// a user can retrieve and navigate using the up and down arrow keys.\n\t//\n\t// It is not safe to call ReadLine concurrently with any methods on History.\n\t//\n\t// [NewTerminal] sets this to a default implementation that records the\n\t// last 100 lines of input.\n\tHistory History\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\tHistory:      &stRingBuffer{},\n\t}\n}\n\nconst (\n\tkeyCtrlC     = 3\n\tkeyCtrlD     = 4\n\tkeyCtrlU     = 21\n\tkeyEnter     = '\\r'\n\tkeyLF        = '\\n'\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\tkeyDelete\n\tkeyClearScreen\n\tkeyTranspose\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 20: // ^T\n\t\t\treturn keyTranspose, 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) >= 4 && b[0] == keyEscape && b[1] == '[' && b[2] == '3' && b[3] == '~' {\n\t\treturn keyDelete, b[4:]\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 the 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 the 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// historyAt unlocks the terminal and relocks it while calling History.At.\nfunc (t *Terminal) historyAt(idx int) (string, bool) {\n\tt.lock.Unlock()     // Unlock to avoid deadlock if History methods use the output writer.\n\tdefer t.lock.Lock() // panic in At (or Len) protection.\n\tif idx < 0 || idx >= t.History.Len() {\n\t\treturn \"\", false\n\t}\n\treturn t.History.At(idx), true\n}\n\n// historyAdd unlocks the terminal and relocks it while calling History.Add.\nfunc (t *Terminal) historyAdd(entry string) {\n\tt.lock.Unlock()     // Unlock to avoid deadlock if History methods use the output writer.\n\tdefer t.lock.Lock() // panic in Add protection.\n\tt.History.Add(entry)\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 && key != keyLF {\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.historyAt(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.historyAt(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, keyLF:\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, keyDelete:\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 keyTranspose:\n\t\t// This transposes the two characters around the cursor and advances the cursor. Best-effort.\n\t\tif len(t.line) < 2 || t.pos < 1 {\n\t\t\treturn\n\t\t}\n\t\tswap := t.pos\n\t\tif swap == len(t.line) {\n\t\t\tswap-- // special: at end of line, swap previous two chars\n\t\t}\n\t\tt.line[swap-1], t.line[swap] = t.line[swap], t.line[swap-1]\n\t\tif t.pos < len(t.line) {\n\t\t\tt.pos++\n\t\t}\n\t\tif t.echo {\n\t\t\tt.moveCursorToPos(swap - 1)\n\t\t\tt.writeLine(t.line[swap-1:])\n\t\t\tt.moveCursorToPos(t.pos)\n\t\t}\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.\n//\n// The AutoCompleteCallback is disabled during this call.\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\toldAutoCompleteCallback := t.AutoCompleteCallback\n\tt.AutoCompleteCallback = nil\n\tdefer func() {\n\t\tt.AutoCompleteCallback = oldAutoCompleteCallback\n\t}()\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\t// If we have CR, consume LF if present (CRLF sequence) to avoid returning an extra empty line.\n\t\t\tif key == keyEnter && len(rest) > 0 && rest[0] == keyLF {\n\t\t\t\trest = rest[1:]\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.historyAdd(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\nfunc (s *stRingBuffer) Len() int {\n\treturn s.size\n}\n\n// At 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) At(n int) string {\n\tif n < 0 || n >= s.size {\n\t\tpanic(fmt.Sprintf(\"term: history index [%d] out of range [0,%d)\", n, s.size))\n\t}\n\tindex := s.head - n\n\tif index < 0 {\n\t\tindex += s.max\n\t}\n\treturn s.entries[index]\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"
  }
]